Блог им. mic_pdn

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии

Эпиграф.
Сложность поиска идеальной стратегии робота можно лаконично выразить одной вот этой картинкой

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии

Но не будем о грустном :))

------
И так я неугомонно потрошу все, что только можно :) и по собственному желанию делюсь инфой с сообществом (в надежде, что со мной поделятся не менее ценным-необычным ;) )

   В данный момент я изучаю микро формации «вихри», а так же «анатомию» микро волатильности и пробую найти общие закономерности (которые в последствии скормлю нейронке). Сегодня провел исследование, которым и поделюсь.
------
   Сейчас я формирую фрактальное сворачивание тиковых графиков. Первый уровень прохода алгоритма по сути представляет простую «пилу» строится по принципу: в случае если разница между локальным контр движением от максимума к миниму или наоборот равна и больше 8 шагов цены — появляется новый «зубец». Но этого мало. Я еще запоминаю интервалы между максимумом и минимумом. Проще говоря меня интересует размер «времени», выраженный порядковым номером сделки в общем ордер логе (время — не секунды или микро — а порядковый номер). Так вот меня интересует угол наклона в прямоугольном треугольнике, где высота — реальная высота в шагах цены, а второй катет — время выраженное в разнице порядковых номеров сделок точек экстремумов. Само собой угол не может быть больше 90 градусов :) Я потрошу вот этот вчерашний тиковый график Sih3 


*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии

 В моей программе фрагмент этого графика с построением «пилы волатильности» имеет вот такой вид

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии

 каждая пила (я называю этот элемент внутри робота class.MyFractalInterval) имеет разные характеристики, в частности интересующие в рамках поста параметры: m_H (высота в пунктах цены) и m_dT (ширина в интервалах псевдо-времени) и еще m_angle (угол наклона гипотенузы к горизонтальной оси времени).

то бишь m_angle = Func(m_H, m_dT). Я строю график прямоугольной гистограммы с парами значений (m_H, m_angle) на одном листе (это значит что в текущей паре первый столбец будет m_H а сразу за ним — m_angle, то есть первый столбец связан функциональной зависимостью со вторым!!! это важно для чтения результата по графику!).

Первый график я сортирую по возрастанию m_H(черный, красный m_angle)

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии
  
Второй график я сортирую по убыванию m_angle(красный, m_h — опять же черный!)

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии

И третий график формирую без сортировки — то как в процессе хода графика цены формировались пары значений (m_h, m_angle)

 *** MIC_PDN-Robot. В поисках идеальной тиковой стратегии


Как итог.

  • Очень быстрые (хаотические движения) наблюдаются в начале торгового дня, когда угол наклона между максимумом-минимумом больше 30 градусов и доходит до 80 (практически вертикальное движение, данное движение формируется за счет крупного спреда между бидом и аском — по сути это и есть движение в рамках бид-аск, а не поступательный тренд )
  • Длинные безоткатные движения чаще всего имеют очень малый наклон (высокий черный столбец и сходу за ним очень маленький красный)
  • Чаще (но не закономерность!) чем больше угол — тем быстрее разворот в обратную сторону и наоборот, чем более пологое движение к оси времени — тем скорее всего движение продолжится
  • Максимальное безоткатное движение в тот день было 37 шагов цены
  • Количество интервалов пилы с заданным значением высоты падает по экспоненте) при росте высоты безоткатного движения (говоря проще — мощные безоткатные движения встречаются в разы реже чем мелкие колебания)
  • На последнем графике видно, что высота безоткатных интервалов распределяется близко к «нормальному» распределению (колокообразное чередование высот — черные столбики). Собственно почти тоже самое мы наблюдаем и с углом наклона этих интервалов к оси времени :) (распределение красных столбиков)
В данный момент я создал полную эмуляцию в отладочном режиме своего робота «мэтчинга» сделок по правилам биржи (по рынку не в счет :) здесь скорее всего я исполняю хуже биржи)

У меня при нажатии на клавишу «вправо» или же кнопки «старт/пауза» происходит потиковое перемещение алгоритма (от тика к тику). Каждая выставленная заявка пока она не сработает отображается как и в терминале горизонтальной линией (красная — шорт, зеленая — лонг). Как только исполнится заявка — отображается кружок соответсвующего цвета на месте, где была совершена сделка. Текущий анализируемый тик выделяется перекрестием из голубых линий. То бишь я могу пошагово всегда разобрать конкретное место и улучшить работу своего алгоритма :)  Еще собираюсь добавить случайные и задаваемые руками интервалы графика, в которых робот будет принудительно «блокироваться» на «отправку заявок» и их «исполнение» тем самым я смогу по разному прогнать одно и тоже место так как если бы у брокера на сильной волатильности возникли случайные задержки в отправке-получении-исполнении заявок.

Подобные вещи насколько я знаю не предоставляет ни одна из существующих платформ.

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии
 

*** MIC_PDN-Robot. В поисках идеальной тиковой стратегии 


внизу белыми буквами выводится отладочная информация в том числе поле Profit, Position (количество контрактов — знак определяет шорт или лонг, может быть 0),  и Price (средневзвешенная цена позиции). Как видим :) дойдя до перекрестия мой алгоритм смог на первых тиках заработать 9 рублей (комиссия пока не учитывается — считается чистый профит в минимальном шаге цены)

Всем удачных торгов и успехов в написании собственных максимально профитных роботов-стратегий! :)
★16
18 комментариев
конечная цель, надеюсь, заработать деньги?;)))
avatar
Гагарин, несомненно :) Больше всего меня интересует сейчас параметр «Profit» )) что можно найти на третьей картинки поста внизу )) белыми буквами. Я сейчас в роботе полностью эмулирую исполнение как рыночных так и лимитных заявок с добавлением случайных задержек, так же если у меня ушла заявка она исполнится по 100% правилам мэтчинга :) то есть если цена равна или меньше входа в шорт, то заявка не исполнится и будет ждать цены на шаг выше :) То есть моя студия эмулирует максимально близко реальную торговлю. Я получил некий алгоритм, который имеет в силу особенностей микро структур те или иные недостатки. В некоторых ситуациях надо просто тупо «ждать» и ничего не анализировать (но надо знать когда это можно сделатЬ! :) опять же с прицелом на возврат цены ;))… в других ситуациях опередить — потому как даже по хистори видно что шла продажа по рынку и если вы заранее не выставили заявку — в реале она не исполнится! и прочие нюансы :)
Дмитрий Интрадей, чой-то мне эта пила сильно графики ренко напомнила.
avatar
Elstoun, :) да идея ренко воплоти для тикового графика ;) все верно
Elstoun, на самом деле за каждым тиком в итоге у меня будет стоять очень много вычислений ) отличных от классического «сравнить цену позиции и текущую цену» :)))
Как это можно использовать?
avatar
Андрей Коган, так же как определенную сумму денег и желание создать бизнес — поможет лишь личная фантазия )))) Сможете распорядится деньгами — создатите бизнес, не сможете — просто потратите ) Так и с информацией: найдете ценное для себя — улучшите систему, не найдете )))) пойдете читать-смотреть «бугагашечки» ;) все ведь просто!
Андрей Коган, если вы торгуете руками :) то эта информация не для вас…
Дмитрий Интрадей, у меня робот. Каждый день подправляю и улучшаю, как движок, так и стратегии.
avatar
Добавил в избранное, потом ознакомлюсь. Нужен грааль
avatar
кстати да… фракталы на минутке и меньших таймфреймах можно торговать однако средняя сделка мала… я помню довел среднюю сделку до 80 и типа должен был иметь примерно 8% в месяц… запустил а реальную торговлю и понял что объем не протащить… даже с 1им контрактом имел частое неисполнение сделок
avatar
ves2010, именно с неисполнением сделок я сейчас и борюсь в эмуляторном режиме, как я описал — заявки надо выставлять с опережением и насколько я разобрался — это вполне достижимая цель хотя бы для 50% случаев, которые при обычных алгоритмах «не срабатывают»
эквиобъемные бары пробовал? объем бара можно сделать адаптируемый… например по прошлому дню… взять объем прошлого дня и поделить на таймфрейм…
avatar
ves2010,? где хоть слово про объем? или вы так называете высоту бара? :)
ves2010, у меня нет привязки ни к объему, ни к реальному времени (а стало быть к какому-то тайм фрейму) — все формируется в пространстве последовательно исполняющихся сделок :) Я считаю что время на бирже фрактально и одни и теже фигуры могут рисоваться как за минуту так и за час, поэтому время скорее искажает, а не помогает :)
Дмитрий Интрадей, вот именно… эквиобъем позволяет отказаться от шкалы времени совсем… а тики имхо искажены единичными сделками
avatar
Дмитрий, где берете тиковые данные?
avatar
ambassador, из квика по DDE протоколу

теги блога Дмитрий Интрадей

....все тэги



UPDONW
Новый дизайн