Zxx, спасибо за труд. Новая фича работает и интересная. Но это чуть не то, что хотелось бы получить от советника. Я протестировал его на паре gbpusd 30-31 мая. Помните ситуацию перед выборами, когда после полуночи появились данные соцопроса. Тогда многие на фунтовых парах словили табун рогатых. В приложении как раз этот отрезок с настройками maxcandle 10 пунктов за 1 свечу (таймфрейм м15), у меня стоят другие настройки, поменял на самые жесткие для примера. В моем случае канал пробился в самом начале движения и фильтр не сработал. Пробовал менять настройки уже на Вашей версии советника. Выставил таймфрейм м1, одну свечу и менял пункты от 5 до 12. Фильтр срабатывал и сделка не открывалась, но всего лишь минуту, что не спасло от стоплоса, а отсрочило его. Очень бы хотелось иметь паузу открытия ордера (30, 60, 90 секунд - не важно) с последующим его запретом (именно запрет важен) после срабатывания фильтра. Не знаю, возможно ли это... Но, честно говоря, обидно ловить стопы после очередного неожиданного твита или коммента политика и последующей шпильки на графике. Такое безобразие начинает происходить все чаще и чаще.
[open source] [Советник] "Generic A-TLP"📌
От Sergey5, 23 апреля, 2016 в Лаборатория ProfitFX
Попробуйте maxcandle = 8 и barcount = 5 на М1. Тестировал за 17 год, котировки альпари: количество сделок уменьшилось с 24 до 16, прибыльность выросла, прибыль тоже выросла, сделка за 31 тоже не открывается. Сет стандартный, из шапки. Тут вопрос подбора параметров, я думаю. Добавлять паузу - много входов потеряется, боюсь.
Добавлено: 30-06-2017 20:20:04
Добавил паузу, пробуйте
Изменено 30 июня, 2017 пользователем Zxx
Пробовал менять настройки уже на Вашей версии советника. Выставил таймфрейм м1, одну свечу и менял пункты от 5 до 12. Фильтр срабатывал и сделка не открывалась, но всего лишь минуту, что не спасло от стоплоса, а отсрочило его. Очень бы хотелось иметь паузу открытия ордера (30, 60, 90 секунд - не важно) с последующим его запретом (именно запрет важен) после срабатывания фильтра. Не знаю, возможно ли это... Но, честно говоря, обидно ловить стопы после очередного неожиданного твита или коммента политика и последующей шпильки на графике.
Это то, что часто называют фильтром текущей волатильности - одна из обычных проверок на допустимость открытия ордера (наряду с фильтром спрэда) в момент появления сигнала на открытие ордера.
Вполне разумная и почти обязательная проверка: цена спокойно пришла к границе канала - или прискакала как лошадь взмыленная.
И если лошадь закусила удила, нам-то чего на неё пытаться влезть?! Пусть сама дальше скачет без нас, дура... :)
Имхо, предложенный tolyayugan алгоритм фильтра и набор переменных фильтра вроде вполне грамотный.
Как по мне, фильтр как отдельный (и не завязанный на имеющиеся параметры бота) и стоит попробовать реализовать.
Все стопы он не поймает - но, блокируя открытие части ордеров, отфильтровать часть стопов на новостях, в том числе с проскальзываниями, вполне в состоянии.
Имхо, нормально выписать и проверить стоит.
Ситуация 18 мая. Снова пара GBPUSD. Кто торгует сетами МНФ и модифицированными с них же, у того в четверг ранний вход по этой паре с 20:30. Через 3 минуты после входа лось прискакал за 52 секунды. В приложении три скрина. Первый - минутный график в это время. Второй - мой стоплос, но в тестере (все сошлось, фильтр maxcandle не сработал). Третий - с советником от уважаемого Zxx. Выставил от балды фильтр на м1, 8 пунктов за 2 свечи, пауза 15 минут. В итоге, после паузы от сработанного фильтра, вместо быстрого минуса два быстрых плюса. Конечно, это вышла подгонка под данную ситуацию, надо тестировать сеты на протяжении продолжительного времени, но фильтр с паузой очень полезен. Спасибо Zxx за работу!!! Может, у кого-то есть еще идеи чтобы улучшить этот момент. Я лично не против, чтобы была возможность поставить задержку на каждый сигнал открытия ордера и протестировать еще так.
Конечно, в полном объеме фильтр волатильности сложноват в программировании и отладке, слишком многое цепляет - но может оказаться полезным.
Но тут бы я учитывал следующие моменты.
1) один хороший пример эффективности фильтра ничего не значит.
Нужны обширные сравнительные тесты торгов с фильтром и без.
2) коллега Zxx выписал де-факто лишь первую половину предложенного вами еще одного фильтра волатильности для генерика.
Эта первая половина вроде автономна - после паузы бот может и должен с нуля решать есть условия для открытия ордера или нет.
И если условий нет (не сохранились), то ордер и не открывать.
Единственным понятным мне недостатком такой реализации есть то, что если останется только лишь уже выписанная часть фильтра волатильности, то (мне кажется) нужно будет задавать достаточно длинные "страхующие" паузы - за время которых и позитивные ситуации (для входа) в торгах могут быть упущены.
3) вторая половина фильтра де-факто тоже автономна и м.б. on|off - хоть и связана с имеющейся первой половиной фильтра волатильности.
Проверка после паузы сколько пипсов цена прошла за время паузы и, если много, то запрет открывать ордера на паре до конца сессии - это то, что лучше делать, но можно и не делать.
Имхо, лучше выписать фильтр целиком - мне он в таком виде кажется комплексным и более осмысленным.
Но корректно выписать вторую половину фильтра волатильности в коде большого бота может оказаться не так и просто.
Старик, спасибо за поддержку. Хочу сказать следующее - наш советник после касания канала смотрит в прошлое и с помощью фильтров принимает решение на открытие сделки. А хочется, чтобы у него была возможность хоть на минуту видеть будущее, и с помощью задержки открытия ордера решить, не обманул ли рынок Генку, не прошил ли канал насквозь.
Исправлена ошибка: при отключении MA-фильтра на выход переставал открывать сделки
Вы же понимаете, что в таком большом боте никак не документированных опций, а тем более фильтров, быть не должно.
Ну и просьба определиться по силам ли вам корректно выписать вторую опциональную часть предложенного фильтра волатильности.
1) Например, если задавать =0 параметр пробега цены за время паузы фильтра волатильности, то вторая половина фильтра волатильности отключена и бот должен продолжать работать как сейчас.
2) Если же параметр >0 и цена за время паузы пробежала меньше заданного в параметре значения, то бот должен продолжать работать как сейчас.
3) Если же параметр >0 и цена за время паузы пробежала больше или равно заданного в параметре значения, то надо на торгуемой паре запрещать открытие новых ордеров до конца действующего/текущего торгового интервала.
я понимаю, что сделать ещё и это, не нарушив в боте ничего, может быть весьма не просто.
но есть основания предполагать, что этот фильтр может действительно существенно улучшить торговые результаты бота.
С задержкой - очень плохо. Даже на секунд(у/ы). Только если использовать её, как стресс-тест для проверки сетов.
К тому же, случаи со стоп-лоссами от быстрых скачков цены в момент открытия сделки - единичны. Гораздо чаще происходят стоп-лоссы от медленных безоткатов.
Подавляющее большинство стоп-лоссов происходит по следующей схеме:
Вся прелесть Generica в том, что совместными усилиями на этом форуме из него слепили очень гибкого советника, который уже сильно отличается от базового варианта. Под гибкостью подразумеваю кучу фильтров входа и выхода, с помощью которых можно лепить совсем разных роботов для разных валютных пар и разных тактик торговли. Если фильтров станет больше, тем лучше он станет. Тактика касания одной грани канала и ожидания движения в другую сторону, как по мне, мало себя оправдала. Намного полезнее фильтровать выход не по каналу, а по другим параметрам. Также касаемо входа в сделку – намного приятнее торговать именно «касание» канала, а не его «пробитие». Поэтому, очень бы хотелось протестировать новый фильтр, если получиться его запилить в советник. Жалко, у самого руки кривые для правки робота.
Как пример, приведу два сета с одинаковыми настройками входа по каналам Болинджера.
В первом варианте сет аналогичен стандартным, с тактикой «после одного касания канала ждем следующего на противоположной стороне».
Во втором варианте использовал почти все фильтры (кроме индикаторных), включая безубыток, хардексит, второго мульта для страховки первого, макскендл от Zxx. Время не подгонялось, оно стандартное, среды включены, стоплос маленький. Тактика настроек – чем быстрее завершить сделку с малой прибылью или в малом минусе.
В итоге результат на выхлопе одинаковый, но кривая намного красивее. Из-за нехватки времени оптимизация только с начала 2016 года, тесты на котировках дукасов, множитель спреда 1,10 – целью было не создание рабочего сета, а демонстрация эффективности фильтров.
GBPUSD_M15_Generic_12.39.5b_без_фильтров.htm
GBPUSD_M15_Generic_12.39.5b_-tolya-_SL-35_ver.1.htm
GBPUSD_M15_Generic_12.39.5b_-tolya-_SL-35_ver.1.set
В итоге результат на выхлопе одинаковый, но кривая намного красивее. Из-за нехватки времени оптимизация только с начала 2016 года, тесты на котировках дукасов, множитель спреда 1,10 – целью было не создание рабочего сета, а демонстрация эффективности фильтров.
Ай, шайтан, зачем обманываешь, скажи правду, мартигэил подключиль? :)
Сразу два в обе стороны - чтобы слива не было. Я думал их никто не найдет >D-b
Ну и просьба определиться по силам ли вам корректно выписать вторую опциональную часть предложенного фильтра волатильности.
1) Например, если задавать =0 параметр пробега цены за время паузы фильтра волатильности, то вторая половина фильтра волатильности отключена и бот должен продолжать работать как сейчас.
2) Если же параметр >0 и цена за время паузы пробежала меньше заданного в параметре значения, то бот должен продолжать работать как сейчас.
3) Если же параметр >0 и цена за время паузы пробежала больше или равно заданного в параметре значения, то надо на торгуемой паре запрещать открытие новых ордеров до конца действующего/текущего торгового интервала.
Навскидку, сделать это несложно, только я не понимаю смысла. Это тот же самый maxcandle и получается. "Пробег цены" = maxcandle, "за время паузы" = barcount, "запрещать открытие новых ордеров до конца действующего/текущего торгового интервала" = CPause установленный часов на 8. Выходит два фильтра maxcandle с разными настройками, которые работаю по-очереди. Одного и достаточно, я считаю, он сохранит нас от первого импульса, а дальше либо он же, либо MDR, либо max_volatility ограничат торговлю, если цена против нас идет. max_volatility очень неплохо с этим справляется, канал же расшрияется, нам главное сразу на импульсе не влететь (пока канал не успел расшириться), а дальше он всё сделает. Нужно просто подбирать эти настройки вместе, а не раздельно.
Меня больше другая торговая ситуация волнует, завтра постараюсь описать загвоздку.
По идее, нужно два maxcandle: один - на короткий период, а другой - на длинный.
Канал обычно пробивается в самом начале движения, поэтому maxcandle не срабатывает.
А задержка - это, типа, micro maxcandle. Но, скорее всего, будет работать редко на каких парах.
Предложенный Фильтр волатильности совсем отдельный фильтр для анализа движения цены в моменте.
Пауза в фильтре волатильности должна задаваться в секундах, а разность цен между началом и концом паузы никаким образом не должна быть привязана к свечам.
CPause вроде подойдет, а остальные параметры бота в этом фильтре волатильности вроде не применимы.
имхо.
P.S. Сглаживание графика прибыли любым образом хорошо - с меньшим риском можно использовать большие лоты.
По идее, нужно два maxcandle: один - на короткий период, а другой - на длинный.
А я что написал? "Выходит два фильтра maxcandle с разными настройками".
P.S. Сглаживание графика прибыли любым образом хорошо - с меньшим риском можно использовать большие лоты.
Sounds good, doesn't work.
Сделка по EURUSD, смотрим величину свопа и комиссию на тике. Это сет со стопом 14 пунктов.
График GBPUSD выпрямился, конечно, но средний выигрыш сильно уменьшился, при том что величина стопа осталась та же самая, лот мы увеличить не можем. За сколько сделок мы выйдем из просадки после лося? Ну и надежность такого результата меньше. На реале на несколько пунктов сделки будут отличаться, поэтому сделки с малым количеством пунктов будут страдать сильнее.
Реальный способ повысить прибыль - не наращивать лот, а выжимать больше пунктов со сделки. Тогда и спреды, и свопы будут не так критичны, а то так и будем бегать от одного брокера к другому, как тараканы. Я буду работать в эту сторону. Приложил один интересный результат, это GBPUSD с тралом.
Изменено 10 июля, 2017 пользователем Zxx
Реальный способ повысить прибыль - не наращивать лот, а выжимать больше пунктов со сделки. Тогда и спреды, и свопы будут не так критичны
Вы правы, но чаще всего, пунктов за сделку в среднем около 6ти и лишь иногда 10ть+.
С таким результатом по пунктам, задирать лот не нужно! Очень интересно...Приложил один интересный результат, это GBPUSD с тралом.
Здравствуйте. 12.39.4 версия. Альпари. Рублёвый счёт. Я словил. Как ?
до этого дня всегда ММ высчитывался нормально.
В поддержке сказали: Вижу только, что у Вас подключена функция "частичное исполнение лимитных ордеров", но она никак не должна влиять.
... на советник.
Может влиять функция "Запись проскальзывания"
Изменено 11 июля, 2017 пользователем Reidar1932
Картинки мизерные, ничего же не видно.
Может, TickValue сервер вернул равным нулю, а тогда, чтобы не было деления на ноль, он принимается равным единице.
На долларовых счетах он, предположим, на EURSGD, равен 0.7, поэтому различие незначительное. А на рублёвых - получится в несколько десятков раз больше, и, вместо деления на большое число - получится деление на 1, и, соответственно, лот получится в несколько десятков раз больше.
Может, TickValue сервер вернул равным нулю, а тогда, чтобы не было деления на ноль, он принимается равным единице.
На долларовых счетах он, предположим, на EURSGD, равен 0.7, поэтому различие незначительное. А на рублёвых - получится в несколько десятков раз больше, и, вместо деления на большое число - получится деление на 1, и, соответственно, лот получится в несколько десятков раз больше.
Неплохо заплатил брокеру, чтобы потом узнать эту информацию :D спасибо))
Исправить как-то возможно или лучше не использовать рублёвые счета? 4 месяца был полёт нормальный и тут на тебе. И еврсгд раньше использовал, никогда такого не было.
Свойства счета описываются несколькими десятками параметров, каждый из которых иногда может быть искажен сервером/терминалом.
Абсолютно все возможные неверные отклики сервера/терминала вряд ли можно предусмотреть и обработать даже теоретически.
Искажение как может иметь, так может не иметь последствий...
Деньги ваши - вам и решать.
Спасибо за ответы. Надеюсь это не произойдет на долларовых счетах. И это не косяк какой-то определенной пары, такой как экзотик еврсгд.
Версия 12.39.6
- Исправлена ошибка с проверкой MDR после 0 часов.
Раньше MDR после 0 часов не проверялся в понедельник - это было не багом, а фичей, в надежде на ловлю гэпов. Естественно, никто это не тестировал, да и гэпы - не так уж и часты. Теперь - проверяется каждый день, но можно включить, как было.
Скорее всего, проверку MDR после 0 нужно включать на всех сетах, и оптимизировать с ней (если кто-то ещё сомневался).
- Теперь, при TickValue = 0, будут повторные попытки.
VirtualSLTP работает только с одним ордером.
А зачем нужны виртуальные SL/TP? Чтобы в ролловер не вышибало?
Есть еще идея для опции: запретить в среду до полуночи открывать сделки в направлении большего свопа. Недавно GBPAUD 8 пунктов в среду заработал и всё съелось тройным свопом. Что думаете?
По поводу направления торговли - почти всегда по результатам оптимизации выходило, что выгоднее торговать в каком-то одном направлении. Объяснение быстро нашлось - почти всегда направление торговли совпадало с направлением меньшего свопа. Но по некоторым парам упорно выходит, что торговать выгоднее против свопа. Тут давненько дискуссия была об этом, якобы на форексе направления торговли равноправны, но статистика пока против.
P.S. Лучше задавать направление одной переменной, иначе возможна комбинация false-false при оптимизации.
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем