Избранное трейдера dimaz07
Settings= { Name = "Zigzag3", -- название индикатора delta=2, -- параметр индикатора line= { { Name = "zigzagline3", Type =TYPE_LINE, Width = 2, Color = RGB(120,90, 140) }, { Name = "upline", Type =TYPE_LINE, Width = 2, Color = RGB(255,0, 0) }, { Name = "lowline", Type =TYPE_LINE, Width = 2, Color = RGB(0,0, 255) } } } function Init() vMin = 0 vMax = 0 vMinindex = 0 vMaxindex = 0 voldMinindex = 0 voldMaxindex = 0 upval = 9999999 lowval = 9999999 upindex = 1 lowindex = 1 veu = nil vel = nil return 3 end function OnCalculate(index) local printz = 0 vsize = Size() if index == 1 then vMin = C(index) vMax = C(index) vMinindex = index vMaxindex = index voldMinindex = index voldMaxindex = index ve = 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 = voldMaxindex vTo = vMinindex printz = 1 if (C(vMinindex) > C(vsize)) and (upval > C(vMinindex) - C(vsize)) then upval = C(vMinindex) - C(vsize) upindex = vMinindex end if (C(vMinindex) < C(vsize)) and (lowval > C(vsize)- C(vMinindex)) then lowval = C(vsize) - C(vMinindex) lowindex = vMinindex end else if vMin > C(index) then vMin = C(index) vMinindex = index vFrom = voldMaxindex vTo = index printz = 0 else vFrom = vMinindex vTo = index printz = 0 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 = voldMinindex vTo = vMaxindex printz = 1 if (C(vMaxindex) > C(vsize)) and (upval > C(vMaxindex) - C(vsize)) then upval = C(vMaxindex) - C(vsize) upindex = vMaxindex end if (C(vMaxindex) < C(vsize)) and (lowval > C(vsize)- C(vMaxindex)) then lowval = C(vsize) - C(vMaxindex) lowindex = vMaxindex end else if vMax < C(index) then vMax = C(index) vMaxindex = index vFrom = voldMinindex vTo = index printz = 0 else vFrom = vMaxindex vTo = index printz = 0 end end end end if (printz == 1) or (Size() == index) then for i = vFrom, vTo do k = (C(vTo)- C(vFrom))/(vTo- vFrom); v = i*k + C(vTo) - vTo*k SetValue(i, 1, v) ve = v end if (Size() == index) then ve = C(index) if voldMaxindex >= voldMinindex then vFrom = voldMaxindex vTo = vMinindex end if voldMaxindex <= voldMinindex then vFrom = voldMinindex vTo = vMaxindex end for i = vFrom, vTo do k = (C(vTo)- C(vFrom))/(vTo- vFrom); v = i*k + C(vTo) - vTo*k SetValue(i, 1, v) end if upindex ~= nil then if C(upindex) > C(index) then for i = upindex, index do SetValue(i, 2, C(upindex)) end veu = C(upindex) end end if lowindex ~= nil then if C(lowindex) < C(index) then for i = lowindex, index do SetValue(i, 3, C(lowindex)) end vel = C(lowindex) end end end end end return ve, veu, vel end
Уважаемые друзья!
Сегодня в 20-00 мск нам уже известный Дмитрий Власов проведет онлайн-встречу, на которой он продолжит рассказ о том, как создать свой собственный индикатор (теперь уже не с помощью кубиков — об этом рассказывал в прошлый раз), а с помощью кода на языке C# Все, кто желает присоединиться и задать ему свои вопросы в 20-00 мск переходите по этой ссылке: meet58696942.adobeconnect.com/tradinglaboratory/
Прямая трансляция:
Приветствую!
В предыдущей статье писал, о целях поиска локального боковика с помощью алгоритма. Расскажу с какими сложностями при этом приходится сталкиваться.
1 Что есть боковик? почему в одном случае мы считаем что это боковик, а в другом похожем случае это не является боковиком?
2 Размер боковика! Локальный боковик может быть как 0.1% от цены так и несколько процентов от цены.
Так же можно описать множество пунктов, но они все смежные будут с выделенными двумя пунктами.
Как определить, что рынок возле той или иной цены остановится и пойдет обратно? только не постфактум, а именно онлайн. Да, мы рисуем уровни руками, или же смотрим на объемы и тд, но изначально никто не знает где и почему цена остановилась. Мы всегда наблюдаем уже постфактум, либо это синусоида цены, либо накопление объемов на уровне и тд. А значит мы с определением боковика всегда будем опаздывать от реального рынка.
Второй же пункт, это границы бокового движения. Пример сбера, последние две три недели он гулял в большом диапазоне от 20300 до 21000 грубо говоря, но при этом были и локальные уровни остановки цены в пределах 100-200р канала. В таком ракурсе получается, что при движении от нижнего канала к верхнему с учетом остановок, можно получать 300-400р с движения если отталкиваться от того, что цена вышла из маленького боковика и движется к большому.
Именно эти сложности приходится преодолевать при алгоритмизации. Ведь алгоритм должен сам определить боковое это движение или вялотекущее направленное.
Пока что не придумал ничего толкового. Есть идея, которую наполовину реализовал
1 проверяю выше закрытие предыдущего или нет, и строю верхний канал по большему значению
2 аналогично для нижнего канала, проверяю ниже мы предыдущего закрытия или нет.
3 слежу за ситуациями при которых верхнее значение канала как и нижнее значение не менялось более 60минут (это уже параметр, можно и без него конечно, через счетчик получив просто силу канала, например что мы 5 часов не вышли за границы, или же например сколько раз «кололи» канал но вернулись в его границы и тд)
4 канал считается не действительным при резком закреплении цены выше его границ, допустим большой минутной свечой закрылись выше/ниже границ
5 границы канала должны меняться после направленного движения и новой остановки
6 размах от верхнего к нижнему значению, не должен превышать Х% от цены
Какие минусы
1 Процент размаха дает возможность смотреть маленький ли канал в данный момент или большой, но это является параметром, а значит может привести к «лудоманству». Каких либо других возможностей поиска локального боковика пока что, не видится возможным, потому остановился на этом
2 Я всегда опаздываю за ценой. Если действовать сразу и брать с первых же баров определение боковика, то будет очень большое количество ложных определений, и соответственно, множество не правильных входов
3 Любые остановы движения цены, ломают логику и идет поиск очередного боковика, обычно это преждевременно получается.
4 Ложное расширение боковика, которое можно определить только постфактумом и нужно перерисовывать границы.
Ниже примеры в картинках
Ложный выход из боковика
Предыдущее мое произведение про продажу крайних опционов было отмечено плюсиками более 50 человек. Меня это удивило и обрадовало, поскольку я не предполагал, что такое большое количество людей на смартлабе не просто интересуются опционами, но и разбираются в некоторых особенностях торговли этим инструментом. До этого у меня было впечатление, что опционами на смартлабе торгуют чуть больше десяти человек.
В продолжение прошлой темы, хочу предложить вам на рассмотрение некоторые рассуждения о том, какие опционы выгоднее продавать.
Определимся с терминами и понятиями, которые будем рассматривать:
[Тэта] - потеря стоимости опциона за определенный промежуток времени [t]
У нас есть текущая волатильность базового актива. Исходя из этой волатильности, мы можем посчитать ожидаемый средний путь, который пройдет цена базового актива за время [t]. Этот путь назовем
Сегодня прокачал статистику, изложенную в теме Вероятность продолжения тренда на часах в 8 основных фьючах. Напомню суть:
После двух, трёх, четырёх и пяти свечей одного цвета вероятность выпадения свечи того же цвета равна примерно 50%.
А если посчитать статистику повторных свечей того же цветас учетом направления SМА (Simple MA), как на рисунке ниже?
Посчитал за 3 года фьюч Газпрома. Он удобен тем, что за 3 года цена погуляла туда-сюда и почти не изменилась:
Для начала рассмотрим, как меняются цены опционов в зависимости от волатильности:
На данном графике 1 – это центральный страйк; Синяя линия – цены опционов на момент вашей продажи; Зеленая линия – цены опционов при увеличении волатильности в 1,5 раза; Красная линия – цены опционов при увеличении волатильности в 2 раза.
На первый взгляд, ничего трагичного не наблюдается
Теперь посмотрим не на сколько увеличиваются цены опционов, а во сколько раз увеличиваются цены.
Всех приветствую!
Первый год публичной алго торговли закончился с результатом +100%.
Первый пост о моем пути к алготрейдингу тут
В этом посте подробно разберу результаты за прошлый год, а также попытаюсь ответить на вопрос – одурачен ли я случайностью?
На рисунке изменение депозита и фьючерса долл./руб.
Все системы торговали на фьючерсе долл./руб. Примерно 75% систем работают на волатильности, остальные пытаются поймать тренд. В начале года затишье, которое к концу марта привело к просадке в 30%. Ну а дальше роботы оседлали взрыв рынка. 8 августа вывел 10% от первоначального депо, в этот же период был удержан НДФЛ на всю сумму накопившегося дохода.
Красным цветом выделил зоны, где алгоритмы не смогли заработать на волатильности. То есть движения были, но они были «плохими». В эти периоды дневные свечи имели большие тени как с верху, так и снизу. Поэтому, не смотря на хорошую волатильность их возило по стопам. Зеленые зоны – экстремально низкая волатильность и сильные просадки.
Settings={ Name="XXX", period=25, line= { { Name="curve", Color=RGB(255,0,0), Type=TYPE_LINE, Width=1 } } } function Init() return 1 end function OnCalculate(index) if index < Settings.period then return nil else for i=index-Settings.period+1, index do do j=1 end for k=1, 10 do do j=1 end end return 2 end endесли второй цикл убираю for k=1, 10 do do j=1 end