Блог им. alexv1975

Алгоритм. Первые оптимизации

Идея алгоритма внутридневной торговли, которую пытаюсь реализовать, достаточно проста. Есть внутридневные уровни цены и поведение цены у значимых внутридневных уровней, подкрепленное дополнительными индикаторами иногда перевешивает чашу весов в трейдинге в Вашу сторону. А положительное мат.ожидание на большом количестве трейдов делает кривую счета восходящей.
На первом этапе тестирования столкнулся с двумя проблемами:
а) Определение значимых внутридневных уровней
б) Количество собранных стопов за день (размер стопа менял от 300 до 500п на большем стопе даже хуже).
 
Кажется, что вопросы разные, но при изучении где именно собирает стопы, оказалось, что прежде всего проблема попадания на несколько стопов за час – это проблема определения уровня. Алгоритм пробойно/отбойный, т.е. не состоялся пробой уровня и есть достаточная сила сигнала для отката – позиция открывается на отбой, состоялся прорыв, подтвержденный краткосрочными индикаторами, позиция открывается на поддержание пробоя. Есть еще фильтр ложных движений, который пытается учитывать внутридневную динамику цены и варьирует силу сигнала для лонга и шорта в зависимости от текущей ситуации.
 
Для определения уровней на текущий торговый день попробовал использовать уровни Камариллы. Сразу столкнулся с проблемой большого диапазона между 3-4-5 Камариллой, где цена по долгу может задерживаться, без касания этих уровней, а также запиливанием вокруг Камариллы 1-2.  Потом была попытка не мудрствовать, а просто взять круглые уровни 147000, 148000, 149000 и т.д. Но оказалось, что движение пробойное начинается или чуть ниже/выше уровня и часто сопровождается возвратным запиливанием вокруг этих уровней на 200-300п, что при коротком стопе опять делает алгоритм убыточным.
 
Да, можно сидеть у монитора и выставлять руками горизонтальные уровни, но, во-первых, это субъективно, во-вторых, алгоритм для того и пишется, чтобы он сам в автоматическом режиме фильтровал лишнее и оставлял ценное без вмешательства человеческой психологии.
 
В итоге сделал следующий код, если на уровне собрано 2 стопа, то данный уровень из внутридневного расчета убираю, а т.к. стопы у меня собирает по 300п (плюс запас цены в расчете при определении пробой/отбой), то вместо удаленного уровня появляются 2 новых с отклонением 500п от начального. Далее фильтрация, чтобы исключить уровни, расстояние между которыми менее 800-1000п. И можно надеяться, что теперь при запиливании в текущем узком диапазоне на 500-600п, расчет на пробой/отбой будет вестись у нужной нижней/верхней границы диапазона.
 
Если кто подскажет еще пути улучшения – буду рад. 
★25
18 комментариев
как минимум — переходи с фиксированных отступов на ADR
avatar
ATR, конечно же, опечатался.
avatar
Александр Малофеев,
Спасибо за подсказку, про АТR тоже думал. Особенно хорошо ATR на низкой волатиле границы рэнджа показывает. Попробую добавить как критерий при фильтре уровней.
avatar
может код попроще позиция открывается в моменте если следующий момент убыточный то принудительное закрытие если прибыль то стоп в безубыток и подтягивать его типа трейлинг вопрос с тайм-аут а момент открытия позиции это случайное значение времени имх чем проще код чем меньше условий тем лучше главное чтоб скоростной был
avatar
avanes555,
трейлинг есть. закрытие в б/у есть, т.е. если профит ушел в минус ненамного, а потом вернулся, то проверяются условия на момент возврата и решает алгоритм держать или закрывать в б/у.
А вот чем проще код, тем лучше — не поспорить. Как лишнее выкидываешь и работает намного предсказуемее.
avatar
значимые уровни сыпятся как песок внутри дня мож на ртс так не знаю но это не ориентир лучше уж два кода вверх и вниз и самому подключать попеременно
avatar
уровни камариллы — индикатор… а значит идея не гуд… я тестил камариллу… получил отличный результат в индексе, однако валюту и отдельные акции торгует плохо…
avatar
ves2010,
когда ценник у камариллы ходит — получается хороший результат. как только уровень камариллы попадает на середину ренджа, а такое бывает и не редко — алгоритм начинает запиливаться на стопах. можно конечно, попробовать вернуть уровни камарилла +фильтр добавить. Потестю, посмотрю.
avatar
Подсказываю путь улучшения: начни с разработки хорошей (работающей) стратегии.
avatar
mobius,
стратегия работающая есть. тактику отрабатываю кодом.
avatar
как вариант — разделить алгоритм на 2 независимых робота:
1.пробойный — входим, если уровень прошит на n пунктов
2.отбойный — входим, если произошёл отбой от уровня на n пунктов
т.о. каждый алгоритм будет проще сам по себе и его будет легче заточить под одну конкретную задачу ;)
avatar
MSH,
Наверное разобью алгоритм. Только по другому немного.
1. Поиск хай/лоу — отбойный
2. Уровни — пробойный
Посмотрю что получится. Худший вариант это постоянное обновление лоу или хая, но тут можно подумать при каких условиях ограничивать поиск хай/лоу
avatar
alexv1975, так у тебя ещё и хай лоу сюда было замешано? т.е. и уровни и хай\лоу? ну тогда конечно нужно разделить — иначе оптимизировать тяжело =)
avatar
MSH,
так уровни у меня в процессе добавляются. и хай и лоу тоже в расчет попадают. вроде есть идея как изменить. пока получается так: много уровней = много сделок = много стопов. попытка разрядить уровни через 800-1000п все равно оставляет много уровней. Сделаю так: хай/лоу дневной обновляемый с фильтрацией на ложные пробои. На 2х уровнях проще будет оттестить.
avatar
Ах да, ещё можно попробовать фильтр по времени добавить — исключить обеденное время, чтобы не запиливало
avatar
MSH,
сделал проще. 2 уровня хай/лоу обновляемые по мере движения рынка. в зависимости от внутридневной динамики на отбой и пробой сигналы разные. плюс оставил среднедневную цену. итого 3 уровня. Вечером затестю.
avatar
Все кто откликнулся — спасибо. Заплюсил в профиль (если кого раньше не заплюсил).
avatar
alexv1975, и тебе + в профиль )
avatar

теги блога alexv1975

....все тэги



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