Избранное трейдера sam

по

Новый индикатор Zigzag на lua под quik

Создал свой индикатор зигзаг
Предлагаю его для ознакомления
при установке имя индикатора будет Zigzag
параметр delta задает в % плечо индикатора
цель данного индикатора — помочь быстро найти значимые уровни

планирую этот совместить с предыдущим: https://smart-lab.ru/blog/528924.php
и сделать адаптивный STATDIV

в дальнейшем в зигзаг добавлю отображение уровней

файл индикатора:
https://dropmefiles.com/WyjM2

выглядит на графике так:
Новый индикатор Zigzag на lua под quik





сам код индикатора:

Settings=              
        {                          
            Name = "Zigzag",   -- название индикатора
            delta=3,                  -- параметр индикатора                          
            line=                                     
                {                               
                    {  
                        Name = "zigzagline",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(120,90, 140)
                    }
                }
       }


function Init()

    vMin = 0
    vMax = 0
    vMinindex = 0
    vMaxindex = 0
    voldMinindex = 0
    voldMaxindex = 0

  return 1
end


function OnCalculate(index)
  
  if index == 1 then
    vMin = C(index)
    vMax = C(index)
    vMinindex = index
    vMaxindex = index
    voldMinindex = index
    voldMaxindex = index
    v = C(index)  
  else
         
    if voldMaxindex >= voldMinindex then
      if C(index) > (1 + Settings.delta/100)*vMin then
        vMin = C(index)  
        vMax = C(index) 
        vMaxindex = index
        voldMinindex = vMinindex 
        vFrom = vMinindex  
      else     
        if vMin > C(index) then
          vMin = C(index)
          vMinindex = index
          vFrom = voldMaxindex      
       else
          vFrom = vMinindex 
        end 
      end
    else
     
    if voldMaxindex <= voldMinindex then
      if C(index) < (1 - Settings.delta/100)*vMax then
        vMax = C(index) 
        vMin = C(index)  
        vMinindex = index
        voldMaxindex = vMaxindex
        vFrom = vMaxindex
      else 
        if vMax < C(index) then
          vMax = C(index)
          vMaxindex = index
          vFrom = voldMinindex    
       else  
          vFrom = vMaxindex          
        end
      end  
    end
    end
 
    for i = vFrom, index do
      k = (C(index)- C(vFrom))/(index- vFrom);
      v = i*k + C(index) - index*k
      SetValue(i, 1, v)
    end   
 
  end   

end

Советы столетнего хирурга. Ф.Углов. Рецензия

Ф. Г. Углов занесён в Книгу рекордов Гиннесса.
Выдающийся хирург, учёный и педагог.
Одним из первых в стране успешно выполнил множество сложнейших операций.
Очень светлый и достойный человек



( Читать дальше )

Вероятность продолжения тренда на часах в 8 основных фьючах.

Сегодня, в рамках математических изысканий, посчитал, как часто после 2,3,4,5 часовых свечей одного цвета случается свеча того же цвета. Для лучшего понимания нарисовал картинки с белыми свечами:

Вероятность продолжения тренда на часах в 8 основных фьючах.
Расчет сделал за два года — с начала 2017 по конец 2018. Общее количество часовых свечей получилось чуть больше 7000. Результаты в таблице:

Вероятность продолжения тренда на часах в 8 основных фьючах.

( Читать дальше )

STATDIV3 доработанный индикатор для quik на языке lua

если индикатор больше 0, то покупаем, если ниже то продаем

скачать можно здесь:dropmefiles.com/09FCu
как устанавливать смотрите предыдущие статьи: https://smart-lab.ru/blog/528424.php
название STATDIV3 это доработанный STATDIV


поведение индикатора на графике:
STATDIV3 доработанный индикатор для quik на языке lua


сам код индикатора:
Settings={
Name="STATDIV3",
period=50,
  line=
  {
    {
      Name="curve",
      Color=RGB(0,0,255),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="line",
      Color=RGB(255,0,0),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="MA",
      Color=RGB(0,0,255),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="MA2",
      Color=RGB(0,128,128),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="line2",
      Color=RGB(0,0,255),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="line3",
      Color=RGB(0,128,128),
      Type=TYPE_LINE,
      Width=1
    }
  } 
}

function Init()
  cache_ind={}
  cache_ind2={}
  cache_ind3={}
  return 2
end

function OnCalculate(index)
  if index < Settings.period then
    return nil
  else
    local sum1=0
    local sum2=0
    local sum0=0
    local sum02=0
    local sum03=0
    for i=index-Settings.period+1, index do  
    do
      if C(i) > O(i) then
        sum1 = sum1 + C(i) - O(i)
        sum2 = sum2 + C(i) - O(i)
      else
        sum2 = sum2 + O(i) - C(i)
      end  
    end 
    cache_ind[index] = sum1/sum2    
    if index > Settings.period+12 then 
--[[
      sum0 = 1*cache_ind[index]+
            (1)*cache_ind[index-1]+
            (1)*cache_ind[index-2]+
            (1)*cache_ind[index-3]+
            (1)*cache_ind[index-4]+
            (1)*cache_ind[index-5]+
            (1)*cache_ind[index-6]+
            (1)*cache_ind[index-7]+
            (1)*cache_ind[index-8]+
            (1/2)*cache_ind[index-9]+
            (1/3)*cache_ind[index-10]+
            (1/4)*cache_ind[index-11]+
            (1/5)*cache_ind[index-12]
--]]
      sum0 = 1*cache_ind[index]+
            (1/2)*cache_ind[index-1]+
            (1/3)*cache_ind[index-2]+
            (1/4)*cache_ind[index-3]+
            (1/5)*cache_ind[index-4]+
            (1/6)*cache_ind[index-5]+
            (1/7)*cache_ind[index-6]+
            (1/8)*cache_ind[index-7]+
            (1/9)*cache_ind[index-8]+
            (1/10)*cache_ind[index-9]+
            (1/11)*cache_ind[index-10]+
            (1/12)*cache_ind[index-11]+
            (1/13)*cache_ind[index-12]

    end
--[[
    sum0 = sum0/(1+1+1+1+1+1+1+1+1+1/2+1/3+1/4+1/5)
--]]
    sum0 = sum0/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13)

       
    cache_ind2[index] = sum0
    if index > Settings.period+50 then   
      sum02 = 1*cache_ind2[index]+
            (1)*cache_ind2[index-1]+
            (1)*cache_ind2[index-2]+
            (1)*cache_ind2[index-3]+
            (1)*cache_ind2[index-4]+
            (1)*cache_ind2[index-5]+
            (1)*cache_ind2[index-6]+
            (1)*cache_ind2[index-7]+
            (1/2)*cache_ind2[index-8]+
            (1/3)*cache_ind2[index-9]+
            (1/4)*cache_ind2[index-10]+
            (1/5)*cache_ind2[index-11]+
            (1/6)*cache_ind2[index-12]
--[[
      sum02 = 1*cache_ind2[index]+
            (1/2)*cache_ind2[index-1]+
            (1/3)*cache_ind2[index-2]+
            (1/4)*cache_ind2[index-3]+
            (1/5)*cache_ind2[index-4]+
            (1/6)*cache_ind2[index-5]+
            (1/7)*cache_ind2[index-6]+
            (1/8)*cache_ind2[index-7]+
            (1/9)*cache_ind2[index-8]+
            (1/10)*cache_ind2[index-9]+
            (1/11)*cache_ind2[index-10]+
            (1/12)*cache_ind2[index-11]+
            (1/13)*cache_ind2[index-12]
--]]
    end
    sum02 = sum02/(1+1+1+1+1+1+1+1+1/2+1/3+1/4+1/5+1/6)
--[[
    sum02 = sum02/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13)
--]]
    cache_ind3[index] = sum0 - sum02
    if index > Settings.period+50 then   
      sum03 = 1*cache_ind3[index]+
            (1/2)*cache_ind3[index-1]+
            (1/3)*cache_ind3[index-2]+
            (1/4)*cache_ind3[index-3]+
            (1/5)*cache_ind3[index-4]+
            (1/6)*cache_ind3[index-5]+
            (1/7)*cache_ind3[index-6]+
            (1/8)*cache_ind3[index-7]+
            (1/9)*cache_ind3[index-8]+
            (1/10)*cache_ind3[index-9]+
            (1/11)*cache_ind3[index-10]+
            (1/12)*cache_ind3[index-11]+
            (1/13)*cache_ind3[index-12]
    end
    sum03 = sum03/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13)

  end  

  if sum1/sum2 > 0.5 and sum03 > 0 then
    sum1 = sum03
  else
    if sum1/sum2 < 0.5 and sum03 < 0 then
      sum1 = sum03 
    else 
      sum1 = 0
    end
  end

  return sum1, 0
end

end
 всем удачи!
  • обсудить на форуме:
  • Quik Lua

Несколько фактов об инвестировании, которые стоило бы знать каждому

На ZeroHedge выложили хорошую подборку фактов об истории американского фондового рынка. Я перевел самое важное из этой подборки, то что стоило бы знать и помнить каждому начинающему инвестору (да и спекулянту тоже). Прочтите, оно того стоит. И помните —  вещи не всегда такие, какими они нам кажутся…

  1. Начиная с 1916 года Доу покорял новые максимумы в течение менее чем 5% всех торговых дней. Но это не помешало ему вырасти на 25 568% за все это время. -В 95% торгового времени, когда ваш портфель находится в акциях вы теряете. Чем меньше вы будете смотреть на графики — тем лучше.
  2. Доу находился на 40% и ниже от своих максимумов чаще, чем в пределах 2%-го отклонения от них (20,6% торговых дней против 18,4% торговых дней). —No pain no gain («Без боли нет прибыли»).
  3. За 10 лет, начиная с 1970 года, Доу вырос на 38 пунктов. -Смотри выше.
  4. На минимумах рынка в 2009 году американские акции находились там же, где они были в 1996 году. -Акции находятся в долгосрочном росте. Очень долгосрочном. Обычно. Ну хотя бы иногда.


( Читать дальше )

тестирование системы BWS

Здесь был пост про тестирование системы BWS, к сожалению, расчеты были произведены некорректно, пост удален. Приношу извинения.

 


Исповедь говнотрейдера

Вот и подошёл к концу мой недолгий путь в трейдинге. Всем привет. Алексей. 27 лет. Высшее образование. Служил в армии. Работаю «на заводе».

Итак, меня хватило ровно на 6 месяцев. Я очень устал и очень разочарован.

Начал за здравие. Понимал, что впереди долгая, упорная работа, постоянная работа над ошибками, поиск моментов, которые можно улучшить в своей торговле, бла бла бла, ибо трейдинг – это тяжелый труд и только профессионализм и мастерство позволят добиться успеха, бла бла.

За эти полгода прочитаны десятки книг, просмотрены сотни часов обучающих материалов известных тренеров. По 8-10 часов каждый день в рынке перед монитором на основной работе и потом вечером дома. Ведение журнала сделок и дневника трейдера, поиск работающих формаций, скриншоты и видео своих сделок.

В итоге так ничему и не научился. Полное непонимание рынка. В голове бардак.

Работал сначала на РТС, потом на нефти. Резал убытки, пытался давать прибыли течь. Когда давал прибыли течь, всегда выбивало обратным ходом по безубытку. Ну а в основном стопы, стопы, стопы.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн