Сегодня мы выдвинем несколько гипотез и проверим их на бэктестах.
Гипотеза: торговать можно во всех фазах рынка, нужно лишь правильно определять эти фазы и использовать переключатель стратегий.
Как мы знаем, существует 3 фазы рынка: растущий тренд, падающий тренд и флет.
На трендах, очевидно, нужно использовать трендследящие стратегии, а на флете контртрендовые. И нужно вовремя переключаться между этими стратегиями.
На первый взгляд всё просто. Но об эту задачу обломали свои копья миллионы трейдеров, так как есть один подвох, который не позволяет при данном подходе сделать своевременный переключатель стратегий. То есть, если мы торгуем контртренд и вдруг начался тренд, то наша текущая позиция будет направлена против движения тренда. И убыток будет только нарастать.
Переключаться на трендследящую стратегию теперь можно будет лишь зафиксировав убыток, чего делать совсем не хочется. И, более того, переключившись на трендследящую стратегию нет никакой гарантии что рынок тут же не перейдет во флете или вернётся к прежним ценам. Что приведет ещё к большим убыткам. Так торговать не имеет смысла.
Settings= { Name = "AT-obl_can", -- название индикатора delta=2.0, -- параметр индикатора rep=5, shif=0, wt=1, line= { { Name = "ln1", Type =TYPE_LINE, Width = 2, Color = RGB(255, 0, 0) }, { Name = "ln2", Type =TYPE_LINE, Width = 2, Color = RGB(255, 0, 0) } } } function Init() vMin = 0 vMax = 0 vMinindex = 0 vMaxindex = 0 voldMinindex = 0 voldMaxindex = 0 return 2 end function OnCalculate(index) rep = Settings.rep shif = Settings.shif wt = Settings.wt sz = Size()-shif if index <= sz then 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 vMin~=nil 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 --end else if voldMaxindex <= voldMinindex then --if vMax~=nil 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 end --if vFrom~=nil then --[[ 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 if index == sz then for k = 1, 2 do vf = 1 vs = 0 if k == 1 then if vMinindex < vMaxindex then vf = vMinindex vs = vMaxindex up = 0 elseif vMinindex > vMaxindex then vs = vMinindex vf = vMaxindex up = 1 end elseif k == 2 then if voldMinindex < voldMaxindex then vf = voldMinindex vs = voldMaxindex up = 0 elseif voldMinindex > voldMaxindex then vs = voldMinindex vf = voldMaxindex up = 1 end end n = 0 xy = 0 x = 0 y = 0 xx = 0 m = 0 for i = vf, vs do m = m +1 n = n + 1*(1+wt*m) xy = xy + i*C(i)*(1+wt*m) x = x + i*(1+wt*m) y = y + C(i)*(1+wt*m) xx = xx + i*i*(1+wt*m) end if (n*xx - x*x) ~= 0 and n ~= 0 then a = (n*xy - x*y)/(n*xx - x*x) b = (y - a*x)/n for j = 1, rep do n = 0 xy = 0 x = 0 y = 0 xx = 0 m = 0 for i = vf, vs do v = a*i + b clc = 0 if up == 1 and C(i) > v then clc = 1 end if up == 0 and C(i) < v then clc = 1 end if clc == 1 then m = m + 1 n = n + 1*(1+wt*m) xy = xy + i*C(i)*(1+wt*m) x = x + i*(1+wt*m) y = y + C(i)*(1+wt*m) xx = xx + i*i*(1+wt*m) end end --[[--]] if (n*xx - x*x) ~= 0 and n ~= 0 and n > 2 then a = (n*xy - x*y)/(n*xx - x*x) b = (y - a*x)/n --[[ --]] end end for i = vf, sz do v = a*i + b if up == 1 and v >= C(vs) or up == 0 and v <= C(vs) then SetValue(i, k, v) end end end end end end end end
Приветствую, глубокоуважаемые алготрейдеры.
Представляю вам довольно простую в понимании, и в осуществлении схему позволяющую из одного посредственного торгующего алгоритма построить целую торговую систему работающую на всех тикетах и рынках.
Что необходимо:
1. Подмешиваем шум (осуществляем дизеринг) в проверенный в работе алгоритм в виде внесения дополнительных данных: немного изменяем переменные, параметры, индикаторы, но в пределах работоспособности. Таким образом получаем несколько алгоритмов незначительно отличающиеся друг от друга на основе одного базового, в нашем примере будет 6( количество может быть любое). Оптимизируем их без комиссии что бы не уменьшать количество сделок, так как работа отдельного алгоритма нас не интересует.
Основной обработчик РТС:
Обработчик SI:
Привет смартлабовцы коллеги.
Прошла кварталка, сегодня заключительные экспиры. Ну как вам? Есть какие нибудь итоги? Я бы хотел отметить несколько нюансов:
1) Срочка биржи вместе со своим комитетом, как мне кажется, совершенно по свински отнеслась к участникам, причем к тем, которые годами несут ей денежку. Напомнило ситуацию с фьючем вида SnP, когда посреди дороги были изменены правила и досрочно исполнены фьючи. Так же и сейчас, вдруг неожиданно за 10 дней до кварталки были поменяны тарифы на исполнение. Я вполне допускаю, что если впрямую предъявить это бирже, то как всегда в ее стиле, менеджмент отвертится, что где то там, на каком то пресс релизе фиг знает какой давности была маленькая заметка про изменение тарифов. Но по факту мы получили, что многие держатели поз были неприятно удивлены. А именно, ситуация:
Представим, что некий трейдер, собирает серьезные конструкции на разное кол-во ног >= 2. Либо просто предоставляет ликвидность и котирует стаканы для ЛЧИ'истов. Различного рода комисс закладывается в модель и с его расчетом выставляются заявки и набираются позы. Предположим, что этот трейдер сидит с фьючами и опционами 12.21 аж с июля и добирает ноги еще 3 месяца. И тут бац, за 10 дней до экспиры ему заявляют, что в его модель залезут еще дополнительно воооот такой ручищей и изымут часть прибыли. Допуская, что многие позы берутся/даются с минимальной наценкой и учитывая насколько изменился комис, приходим к выводу, что все, что наработывалось за 3 месяца вам предложили обнулить или даже местами завести в минус. Утак вот.
2) Сам комисс. Пока ситуация такая. Еще не совсем детально изучил все, но судя по тому, как все прошло, за страйки, которые поглубже в деньгах, снимут космос сколько денег. Косты в этой части увеличились в 2-3 раза, тут даже вопрос не сколько раздвинуть спред в заявках, сколько отключить все страты, которые связанны с какими то дальними краями.
Какие ваши выводы, если уже подсчитали что к чему?
P.S. Отдельный привет ежегодному новогоднему трейдеру, заходящий на миллиард. Похоже комисс теперь для вас будет космический.
Удачи.
Не будем нарушать традицию о публикации моей торговли в период ЛЧИ. Но этот год особенный, я все-таки выставил один из счетов, на которых торгую, в ЛЧИ. Не буду «наводить тень на плетень» относительно того, чей это счет. Это счет моих родителей, к сожалению, с 20 сентября, только отца. Чем мне он дорог? А тем, что в 2006-м на него было занесено 600 тыс., из которых в 2007-м 250 тыс. было вложено в фирму, которая создавалась на руинах Риск-инвеста, а 550 тыс. «с хвостиком» в сентябре попало на счет, открытый отцом с моей подачи в Церихе. Больше вводов-выводов на этом счете не было. Отец несколько раз предлагал довнести в 2011-2013, но в эти годы я практически не зарабатывал и потому отвечал, что лучше в Сбербанк. А потом отца «ушли» на пенсию в 80 лет и мы к этому вопросу больше не возвращались.
Отмечу, что торговал я на этом счете с риском 15% до 10 ноября 2017, а не 25%, как на своем в 2007-2012-м (до 11 июля), и не подключал треть к автоследованию Форума в январе 2015-августе 2016-го. И только с 10 ноября 2017-го оба счета торгуются с одинаковым риском 25% и с этого времени их доходности практически совпадают.