Блог им. Saro

Случайный статистический алгоритм

       Данная статья, о том, как у меня получаются случайные алгоритмы.


       С небольшой группой, на занятии я как обычно в режиме импровизации обьяснял принцип работы софта TSLab, и чтобы это было не только полезно, но и интересно, в ходе занятия собирал некий скрипт. Естественно импровизация импровизацией, но алгоритм старался насытить «мозгами», а не просто так собрать ради красивой эквити (как и обычно в импровизации я не знал будет эквити растущей или падающей) 
      

        Кратко логика алгоритма:

        Вход по движению цены после импульса, в качестве имульса взял резкий рост/падение на 5-ти минутном таймфрейме, растущая свеча от открытия до закрытия должна пройти хотя бы 400п а падающая хотя бы 650, цифры брал на обум, с мыслью о том, что растет рынок обычно медленнее, чем падает. 
         Понимая, что частенько на рынке рисуется боковик, сильный боковик, после которого в принципе любая свеча на выходе рисуется большой, но при этом часто возвращается в русло боковика, решил добавить небольшой фильтр. В качестве фильтра использовал ЛИНИЮ, FAMA! Важно понимать, что для меня и для алгоритма это не индикатор, а линия, исходя из движений которой, фильтруются сделки. (периоды даже не посмотрел какие стоят стандартные). 

         Итак, FAMA! Во-первых, по данной линии мы определили, есть ли на рынке направленность какая то или же в основном боковик.  Для этого я использовал скорость изменения данной линии, если она меняется стремительно, значит движение есть, если линия пологая, то или затухает движение или остановилось.  (ниже скрин, чтобы понимали как меняется линия) И конечно же, если стремительно меняется вниз, значит шортовая зона, вверх, соответственно, лонговая. 
Случайный статистический алгоритм
 
           Следующийм шагом, необходимо ограничить свои риски, так как торговать на редких рыночных вариациях, значит закрывать сделки в неограниченно возможный убыток или если повезет, то в прибыль. Но естественно лучше синица в руках, и тогда сделали стоп/тейк. Итак, мы входим по движению цены, значит расчитываем на продолжительный рост/падение, поэтому тейк можно ставить большой (в несколько раз больше стопа). По нашей логике либо будет тейк, либо стоп, но стоп может быть в двух вариантах, или на рынке продолжится боковик, или рынок развернулся в другую сторону, а значит размер тейк профита минимум должен быть стоп*3, и это только потому, что по моей логике сделки имеют положительное матожидание. Оптимально для себя выбрал 1000 стоп и 4000-5000 тейк, ибо это или планка или пару дней в позе. Компилируем, и получается положительный результат на графике:
Случайный статистический алгоритм
            Имея на истории стабильную статистику, тейк/стопов, можно уже менять размер позиции относительно эквити, и работать с просадками. Итак можно менять размер позиции относительно убытков:
            1 прибыльная сделка перекрывает 4 убыточные (с учетом того, что тейк в 5 раз больше стопа) косты по ним и в целом совокупно дает плюс, но если убтков больше 4 подряд, что делать? +1 лот итого получается после 4 убытков мы открываем 2 лота и в случае прибыльной сделки закроем совокупно больше плюс чем были убытки. Естественно при продолжении тенденции убытков мы получаем больше просадку и теперь уже после 4 убыточных с двойным объемом либо удвоить надо позицию либо делать наращивание +1 после 2 убытков подряд с двойным объемом и тд и тп. Лучше конечно +1+2+3 и тд делать чем удваивать! Вот что получилось:
Случайный статистический алгоритм
       На эквити четко прослеживается момент резкой разницы между короткими и длинными позициями. Да обьяснить это легко, на шортах мы чаще забираем прибыль после серии убыточных сделок, что дает резкий рост эквити, при падении рынка.
 
В целом это и вся основная мысль! Делая стратегии, думайте более широко, а не только чтобы получить красивую эквити на истории подбором периода индикатора.


P.S. Adriano Chelentano-Mina – Acqua e Sale красивая песенка для души!
★27
33 комментария
rencontres.ru
Фото красивых девушек 18 Москва
avatar
Как бы вам создать сервис, делающий стабильно 20-25% годовых для всех желающих. Вы бы всех пенсов сбера к себе перетащили и это самое малое, что можно себе представить:)
avatar
Nemo_2000, да мысль правильная. Еще с универа писал модель подобную открытому фонду, куда каждый вносит свою часть и получает на эту часть доход/убыток. Но нужно столько всякой бумажной волокиты пройти… Короче уровнем выше стать необходимо))
А так уже есть подобная модель в америке, индекс миллиардеров. В следующем году обещают возможность автоматических сделок по данному индексу.
1 т.к есть лимитники выкинь первую и последнюю минуту торгов… имхо у тя внутри гэпов работает
2 нет итоговой таблицы
3 надо было тестить на постоянной сумме. т.к стоимость контракта меняется на интервале тестирования в 3 раза…
avatar
4 я бы еще фильтр по объемам воткнул… типа если свеча большая + объем не меньше…
avatar
ves2010, Алгоритм не сложный я его описал полностью,)) можно самостоятельно внести. Тут смысл в методах)) а алгоритм прост.
Микаелян Саро, никуя не прост… очень сложный бот… кроме того жаль что ты не видишь реальных проблем этого алгоритма… я бы советовал всем смотреть поле оптимизации и делать ряд выводов
avatar
ves2010, я готов подисскутировать по всем возможным проблемам алгоритма.
по поводу поля оптимизации, тоже не совсем понятно.
Микаелян Саро,
1 есть параметр оптимизации… например ты перебираешь машку от 1 до 1000… с шагом 2… в результате у тебя тестировщик выдает 500 вариантов те поле оптимизации… ты смотришь их все? явно нет ты просто выбираешь наиболее удобный… а ведь там много интересного… по полю сразу видно устойчивость и насколько результат случаен… кроме того иногда бывает выгоднее торговать отрицательный результат ;-)… он может быть более стабильным… что зачастую бывает при парном трейдинге или арбитраже… если тестить с комиссами и проскальзываниями поле искажается и ничего там не увидишь…
avatar
ves2010, Тут спорить не буду, честно сказать не пользуюсь полем оптимизации. ))
ves2010, тслаб не даёт возможность построить такое поле.
avatar
ves2010, Всегда по делу)))
1 смысл выкинуть есть но не такой важный. это рутинно и каждый сделать может, я просто поставил 100п проскальзования (200 на круг) это перекрывает возможное попадание в гэпы (лучше с проскальзованием чем отсеиванием)
2 итоговой таблицы всмысле вкладку результаты?
3 тест не на сумме идет а количество контрактов, сумму если по го делать то получится хаос так как ГО надо вручную считать по формуле и зашивать в алгоритм.
Микаелян Саро,
1 ошибка тестить с комиссами и проскальзваниями… они легко считаются отдельно и просто вычитаются из профита… тестя с комиссами-проскальзываниями ты убиваешь важную возможность посмотреть все поле результатов оптимизаций без искажений… достаточно взглянуть на все это поле результатов и сразу ясно граль или какашка…
2 угу… там много интересного…
3 привязка к го??? в 2008г на котором ты тестишь го было от 70-140% стоимости базового актива… было например дешевле акции ГМК покупать чем фьюч на него…
на одном контракте тестить ошибка если актив изменяется значительно в стоимости на интервале тестирования… т.к сам прикинь… профит 1000пунктов при стоимости 45000 пунктов, это не те же 1000 пунктов при стоимости 150000 пунктов… это не так очевидно, тк при стоимости 45000 пунктов была бешенная вола, а если бы не была?
avatar
ves2010, 1 это не назвать ошибкой так как у всех свои методы.
screencast.com/t/ElUxuFavaVTS с нарастанием лотов и +фильтр объема вкрутил как просилось выше в коментах
screencast.com/t/2L1uW3iom6 без наращивания
screencast.com/t/IOdB56W0pLL без комиссии
screencast.com/t/PoCZhlfuKiGQ без комиссии но с наращиванием лотов
3 рынок за 5 лет был и в зоне повышенной волатильности и в зоне паршивого боковика как последние годы, и это на эквити четко видно, сравнивать 1000 при стоимости в 45000 да конечно не верно, но я результат не меряю в процентах а в пунктах рисую. какая разница стоимость фуча какая если в пунктах результат?
Да с точки зрения более глубокого анализа естественно верно говоришь, но как программа считает так я и выкладываю, переделывать и вручную вбивать в тот же эксель и тд для меня будет лишней тратой времени.

P.S. хотел извиниться, писал что 200п на круг проскальзование учел но ошибся, на самом деле 100п на круг.
ves2010, а мне одному кажеццо что если в отдельных позициях может быть 2-3-4 сайз то и доху надо считать не на один а на макс число?
avatar
quant_trader, это тонкий вопрос… имхо надо всреднем смотреть…
avatar
Всё бы хорошо, но импульс первый свечи очень часто «песня ниочём».
Возможно ошибаюсь, но импульсные схемы года 2 как не работают…
Николай Лазарев, Естественно что сам факт имульсной свечи ни о чем не говорит, НО это часть входа. то есть как факт, без фильтра, просто по импульсу в три раза меньше прибыль, в три раза больше сделок (логично что на костах алгоритм просто задыхается). эквити боковая и не растущая. и это естественно для простого импульса, именно по этому импульс является частью алгоритма, который задает грубо говоря направление.
Микаелян Саро, А с помощью той же FAMA фильтруй тренд/флет. Быстро меняется — тренд, медленно — флет.
Николай Лазарев, так и сделанно в алго))
Можно ещё добавить доп условие: открывать лонг после чёрной свечи, шорт — после белой, т.е. после откупашек скорострельщиков.
а если, скажем, 20 убыточных сделок подряд (а в определённые дни это может быть запросто), как быть с усреднением?
avatar
Андрей Коган, в целом на истории было 25 подряд убыточных сделок, с учетом механизма усреднения, было набранно 8 контрактов. по сути это все можно ограничить к примеру определив себе не набирать больше чем, и тд.
Микаелян Саро, мне кажется, лучше ограничить максимальный убыток на день.

Но, в целом, так и получается, если сделать тейк-профит = 4-5 (а лучше 10-20) стоп-лоссам, на длинной дистанции всегда будет прибыль, а какой индикатор использовать — не так уж и важно. Проблемы начнутся, когда пойдут недели с непрерывными убытками.
avatar
Андрей Коган, ну 10-20 это еще рынок должен уметь преодолевать. а в целом да верно!
Как-то это все на подгонку смахивает.
avatar
anatolyutkin, Нее, это случайный алгоритм. на самом деле, удачно сложившиеся во едино логические условия. в подгонке я могу нарисовать в разы большую прибыль и меньшие просадки и тд.
finstrateg, да на кубиках, но я не имею привычки раздавать алгоритмы, то есть, все можно самостоятельно собрать.
finstrateg, Запаздывание естественно будет, так как данные расчитываются на основе предыдущих свечек. То есть нельзя увидеть будет сейчас резкое движение или боковик начнется, до того как произойдет это движение или сформируется боковик.

теги блога Микаелян Саро

....все тэги



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