[Советник] Incognito Scalper

От Rigal, 26 декабря, 2019 в Лаборатория ProfitFX

#51
3 часа назад, FERRARI2009 сказал:
7 часов назад, Rigal сказал:

Перепроверялось

 

в планах на через один релиз сделать начало и длительность сессии в минутах, пооптить вокруг

но в часах идеально 22-24 гмт

Здравствуйте! Я думаю что лучше не просто минуты добавить, а перенести уже готовый планировщик из 12 версии Дженерика - тогда можно будет и до ролловера торги настраивать по дням недели. Вообще есть подозрение, что торги после ролловера лучше, чем до, из-за торговли, в том числе по средам до ролловера (когда выходят решения по процентным ставкам ФРС, выступает глава ФРС и выходят минутки от ФОМК и, соответственно, наблюдаются аномальные движения для данного временного промежутка, особенно для пар с долларом), а также из-за сделок остающихся с вечера пятницы на выходные - торгуя после полуночи эти сделки просто отсекаем. А имея планировщик можем настроить и торги на открытии рынка в понедельник, и на закрытии торгов в пятницу, и по средам до полуночи и посмотреть на истории в какой комбинации для разных пар будет оптимально работать, т.к. торговля в эти периоды имеет свою специфику.

Также при переносе сделок через ролловер очень пригодится функция DisableSLAtRollover также из 12 Дженерика (отключение стоп лосса в заданный промежуток времени в ролловер), особенно для сетов с коротким стопом и при переносе сделок через выходные с дичайшими спредами. Отсутствие этой функции также может ухудшать результаты тестов торгов, начинающихся до ролловера.

Прошу Rigal реализовать эти возможности. Тогда, возможно, сможем изготовить хорошие сеты с началом торгов до ролловера.

1:1 хотел это же предложить...  И именно из 12 Генерика.

/laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/

Тот бот результат большого коллективного труда и нереального количества тестов и торгов - массив данных огромный.

И если не учесть тот опыт...

 

Как бы это не разочаровывающе сформулировать...

Если у вас множество сделок в полночь, то сделки онлайн и их результаты может совпадут лишь на 25%, причем при наличии  фильтров множества сделок не будет вообще.

Я не хочу сказать, что это тестерный грааль, но если множество прибыльных сделок в ролловер, то в онлайн торгах в этой части может не совпасть практически ничего.

 

Подобные боты известны уже много лет и они уже бы давно захватили мир, если бы всё было как в тестере...

И их много приносящих тестерные миллиарды...

Но от половины происходит не так...

Примеров немало, результаты весьма неоднозначны https://alpari.com/ru/invest/pamm/374990/#pamm-return

 

Имхо, даже если дебютная идея действительно удачна, минимум из торгов надо исключать произвольное задаваемое количество минут вокруг ролловера.

Но скорей всего понадобятся все планировщики и фильтры генерика 12.

Между идеей входа и ММ и реальными торгами дистанция очень велика и надо выписать весьма совершенный механизм планирования и управления торгами.

А так да, ММ/РМ в данном боте оригинальный и обязательно надо попробовать дожать его до реальностей реала!

 

Изменено 29 декабря, 2019 пользователем Старик

#52

Также при анализе результатов тестирования, проводившихся Fed77в частности на сете EURCAD, заметил, что советник после срабатывания стоп лосса тут же открывает сделку в этом же направлении, что может привести к повторному стоп лоссу при сильном безоткатном движении на каком-либо новостном форс мажоре. Предлагаю в новой версии советника также ввести 2 новых параметра из 12 генерика, для предотвращения подобных рисков: 

  • pause - пауза после убыточной сделки (минут)
  • sizeloss - размер убытка, при котором включается пауза (в пунктах)

 

Снимок.JPG

Автор#53

По поводу планировщика из генерика - его несложно впаять, но...

Его же невозможно оптить.

Ну, то есть я могу, конечно, разделить на две версии: одна с человеческими временами старта и финиша вида час:минута, а другая для оптимизации... но для оптимизации эта настройка должна быть в формате: одно число отвечает за старт, другое - за длительность.

И напрашивается "стартовая минута дня" и "длительность, минут"

Раздельные дни - да, имеет смысл, наверное.. но тоже не на этап оптимизации. И мне ж хочется понять все эти причины, почему надо так, а не иначе.

Давайте так: в следующей версии я сделаю так, как будет удобно оптить.

А дальше мы обсудим, нужно ли переходить к более удобочитаемому формату и я с удовольствием допилю.

Все эти планировщики - это нетрудоемко, особенно когда есть прекрасный пример генерика перед глазами.

 

А пока свежая версия 1.3.5 с тремя дополнительными опциями, воплощение предложения @ostapbender пару страниц назад.

NextOrderFactor - множитель лота для последующих сделок в ту же сторону.

По умолчанию советник не открывает больше одной сделки. Если эту опцию поставить >0, то он будет открывать. При этом, если сделка такого направления уже есть, новая сделка откроется лотом домноженным на это число.

Можно поставить 1.0, тогда просто будет открываться еще.

Можно поставить ноль - тогда поведение как обычно, пока открытая сделка есть, новых не открываем.

RecoveryLotFactor - множитель после потерь. Домножать будет, пока не выйдет на уровень до потерь (ищет по истории на 20 сделок назад).

RecoveryAllSymbols - включать рекавери всем символам, кто бы из них ни промазал.

 

Прогоны в тестере МТ4 (знаю, знаю, но нет у меня пока ТДС) говорят, что все эти рекавери от лукавого: шансы промазать дважды, хоть и невелики, а ненулевые. Именно такие серийные промахи формируют максимальную просадку. И разумеется, при включенном Рекавери, второй промах теряет заметно больше, что отражается на просадке.

Прибыль растет, график красивее, но и просадка растет тоже.

 

Но тут как: я вам выдал остро отточенный инструмент - а вы решайте, резать, или в шкаф положить. Обе опции выключаемы: рекавери фактор можно поставить в 1.0... тогда он будет писать в логах, что он в просадке, но торговую логику это никак не поменяет.

 

NY Close Scalper_v1.3.5.ex446 скач.

Изменено 29 декабря, 2019 пользователем Rigal

Автор#54
6 минут назад, FERRARI2009 сказал:

Также при анализе результатов тестирования, проводившихся Fed77в частности на сете EURCAD, заметил, что советник после срабатывания стоп лосса тут же открывает сделку в этом же направлении, что может привести к повторному стоп лоссу при сильном безоткатном движении на каком-либо новостном форс мажоре. Предлагаю в новой версии советника также ввести 2 новых параметра из 12 генерика, для предотвращения подобных рисков: 

  • pause - пауза после убыточной сделки (минут)
  • sizeloss - размер убытка, при котором включается пауза (в пунктах)

 

Снимок.JPG

Интересно...

Вообще-то логика эта в советнике есть:

         Print("Last trade was a loss. Increasing WaitMinutesBetweenEntries by 15 minutes."); 
Правда, она работает как пауза между открытиями, а не от закрытия до открытия.

Я покручу в уме.

#55
Цитата

По поводу планировщика из генерика - его несложно впаять, но...

Его же невозможно оптить.

Как раз планировщик из 12 версии Дженерика (в отличии от 11) прекрасно оптится в тестере (см. рисунок). И если его не сложно впаять, то очень надеюсь что вы это сделаете - реально очень функциональная и удобная вещь. Поэтому не имеет смысла делать 2 версии советника - для оптимизации и для торгов. С данным планировщиком получится 1 универсальная версия.

Цитата

Интересно...

Вообще-то логика эта в советнике есть:

         Print("Last trade was a loss. Increasing WaitMinutesBetweenEntries by 15 minutes."); 
Правда, она работает как пауза между открытиями, а не от закрытия до открытия.

Только это уже совершенно другая функция. И, на мой взгляд, паузу между открытиями далеко не всегда имеет смысл держать. По опыту торговли Дженериком могу сказать что иногда бывают подряд несколько быстрых прибыльных сделок - по 2-3 сделки открываются и закрываются в профит в течении 5-10 минут и держать в таком случае паузу аж 15 минут между открытиями ордеров в данных случаях это значит просто упускать профит (для примера привожу скриншот сделок Дженерика с реального счета, где за несколько минут открыты и закрыты 3 сделки по одному инструменту и в одном направлении и все в хорошей прибыли). Предлагаю вывести данную функцию в настройки с возможностью изменения времени между открытиями ордеров (и полным отключением данной функции при 0). И по тестам опять же увидим какой подход эффективнее. Но лично мне кажется, данное время искусственно ограничивать не стоит.

 

 

Снимок.JPG

Снимок 2.JPG

Изменено 29 декабря, 2019 пользователем FERRARI2009

#56
4 часа назад, Rigal сказал:

А пока свежая версия 1.3.5 с тремя дополнительными опциями, воплощение предложения @ostapbender пару страниц назад.

NextOrderFactor - множитель лота для последующих сделок в ту же сторону.

По умолчанию советник не открывает больше одной сделки. Если эту опцию поставить >0, то он будет открывать. При этом, если сделка такого направления уже есть, новая сделка откроется лотом домноженным на это число.

Можно поставить 1.0, тогда просто будет открываться еще.

Можно поставить ноль - тогда поведение как обычно, пока открытая сделка есть, новых не открываем.

RecoveryLotFactor - множитель после потерь. Домножать будет, пока не выйдет на уровень до потерь (ищет по истории на 20 сделок назад).

RecoveryAllSymbols - включать рекавери всем символам, кто бы из них ни промазал.

Но тут как: я вам выдал остро отточенный инструмент - а вы решайте, резать, или в шкаф положить. Обе опции выключаемы: рекавери фактор можно поставить в 1.0... тогда он будет писать в логах, что он в просадке, но торговую логику это никак не поменяет.

 

NY Close Scalper_v1.3.5.ex4 72 \u043a\u0411 · 1 загрузка

Прогнал с RecoveryFactor = 2   в 2-х вариантах для сравнения NextOrderFactor = 0 и 1

 

Первый параметр: множитель лота после лося, пока не выкарабкаемся.

Второй - множитель лота для открытия второй и следующих сделок. 0 - не открывать (поведение предыдущих версий)

1.jpg.1cb2b5ff3318e67647ac4579112bd20b.jpg

1.jpg.d58569640af3dfd0330eb4b08c06f849.jpg

тест NY Close Scalper_v1.3.5 Recovery.rar25 скач. NY Close Scalper_v1.3.5 Recovery+NextOrderFactor.rar29 скач.

Изменено 30 декабря, 2019 пользователем Fed77

#57

У кого-нибудь еще есть такие ошибки?

image.png.18f968bcfa5a88f4c490bb799b49255b.png

image.png.d6ff7e1f50cff1fe0b939a9f6f17ff57.png

url к серверу времени прописан

image.png.0729ff8b224ad8428f49be95797fab86.png

Изменено 30 декабря, 2019 пользователем alexavb

Автор#58
9 часов назад, FERRARI2009 сказал:

Как раз планировщик из 12 версии Дженерика (в отличии от 11) прекрасно оптится в тестере (см. рисунок).

Я, видимо, не донес мысль о том, что значит "удобно оптить".

Давайте, я попробую подробнее.

Скажем, нам хочется посмотреть, как влияет сдвиг начали и конца торгов на 15 минут в обе стороны от сегодняшнего диапазона 22-24

В генерике мне нужно будет сделать так:

image.png.eb624157e73632e0561c215cf0217c4c.png

В итоге он переберет все значения минут, от 0 до 59, для старта и финиша. Мы покроем диапазон с 21:00 до 1:00 в максимуме и 22:59 до 23:59 в минимуме, общее количество пермутаций = 2 х 60 х 2 х 60 = 14400.

Но  ведь мы хотели подвигать старт в пределах 30 минут и финиш в пределах других 30 минут, это должно быть всего 900 пермутаций - зачем нам делать в 15 раз больше?

Можно, конечно, проделать 4 отдельных прогона: с оптимизация первых 15 минут старта, вторых 15 минут старта и то же самое с финишем. Но это будет приближение, потому, что каждая из комбинаций старта не тестируется с каждой из комбинаций финиша. И нужно еще подождать каждого прогона, чтобы проанализировать и запустить следующий.

Кроме того, задание часа и минуты раздельно для старта и финиша рождает противоречивые комбинации.

Пример: мы хотим, чтобы советник торговал 15 минут и хотим найти лучшие 15 минут в интервале с 23:00 до 01:00.

Попробуйте собрать оптимизационный сет для такой задачи и посчитайте сложность (и какие интервалы реально отработают - во многих из комбинаций он проторгует весь день).

 

Я бы сделал так: 23:00 это 1380-я минута дня.

Продолжительность сессии 15 минут.

Мне нужно пробежаться по первому параметру с 1380 до 1500 (или 1485, если я хочу закончить до 01:00)

 

И для первой задачи тоже несложно:

Оптимизируем старт от 1305 до 1335, продолжительность от 90 до 150.

Это 30 * 60 = 1800, почти в 10 раз меньше, чем требуется для дженерика.

И параметры эти непротиворечиво сочетаются.

 

Убедите меня, что я в чем-то неправ, пожалуйста.

Автор#59
9 часов назад, FERRARI2009 сказал:

Только это уже совершенно другая функция. И, на мой взгляд, паузу между открытиями далеко не всегда имеет смысл держать. По опыту торговли Дженериком могу сказать что иногда бывают подряд несколько быстрых прибыльных сделок - по 2-3 сделки открываются и закрываются в профит в течении 5-10 минут и держать в таком случае паузу аж 15 минут между открытиями ордеров в данных случаях это значит просто упускать профит (для примера привожу скриншот сделок Дженерика с реального счета, где за несколько минут открыты и закрыты 3 сделки по одному инструменту и в одном направлении и все в хорошей прибыли). Предлагаю вывести данную функцию в настройки с возможностью изменения времени между открытиями ордеров (и полным отключением данной функции при 0). И по тестам опять же увидим какой подход эффективнее. Но лично мне кажется, данное время искусственно ограничивать не стоит.

 

Собрать и протестировать имеет смысл.

Записал в список задач.

А не могли бы Вы пока протестировать влияние WaitMinutesBetweenEntries на продуктивность и просадку - чтобы понять, есть ли смысл сохранить этот механизм? 

Автор#60
6 часов назад, Fed77 сказал:

Прогнал с RecoveryFactor = 2   в 2-х вариантах для сравнения NextOrderFactor = 0 и 1

 

Первый параметр: множитель лота после лося, пока не выкарабкаемся.

Второй - множитель лота для открытия второй и следующих сделок. 0 - не открывать (поведение предыдущих версий)

1.jpg.1cb2b5ff3318e67647ac4579112bd20b.jpg

1.jpg.d58569640af3dfd0330eb4b08c06f849.jpg

тест NY Close Scalper_v1.3.5 Recovery.rar 1 \u041c\u0411 · 5 загрузок NY Close Scalper_v1.3.5 Recovery+NextOrderFactor.rar 1 \u041c\u0411 · 5 загрузок

Суммируем: просадка удваивается, профит увеличивается на треть.

Откатываемся на логику версии 1.3.4 (удалить рекавери и многоордерность из кода и опций), или оставить? 

#61

Fed77, в сетах у тебя ошибка. Ставишь параметр TesterGMToffset равным "3", а надо ставить "2".

Изменено 30 декабря, 2019 пользователем Bag-76

Автор#62
9 часов назад, Fed77 сказал:

Не ,в личку мне не надо писать, исходниками раскидываться не имею права, это доработки все @Rigal и ему не советую этого делать, то наплодят мошонки клонов и продавать начнут выдавая за свои. Так что пардон, что считаем нужным выложим в закрытом виде для общего пользования

С одной стороны, мне пофигу, кто там что наплодит - они у нас корку хлеба не отнимают

С другой - мы работаем. Инвестируем наше время и способности (и деньги, кстати - ТДС, сервера, все вот это вот).

Многие ночами, в свободное от основного занятия время, отрывая у семьи :)

Я с удовольствием поделюсь с людьми, которые вносят активный вклад в этот процесс.

Я не хочу превращать наш с вами труд в источник дохода нечистоплотных ленивых балбесов, которые не ударили палец о палец, чтобы помочь нам добиться результата.

Как-то так.

#63
17 минут назад, Rigal сказал:

А не могли бы Вы пока протестировать влияние WaitMinutesBetweenEntries на продуктивность и просадку - чтобы понять, есть ли смысл сохранить этот механизм? 

Механизм работает. Прогнал только, что с нулевым значением.

Сейчас ещё пару прогонов сделаю и выложу.

Автор#64
3 часа назад, alexavb сказал:

У кого-нибудь еще есть такие ошибки?

image.png.18f968bcfa5a88f4c490bb799b49255b.png

image.png.d6ff7e1f50cff1fe0b939a9f6f17ff57.png

url к серверу времени прописан

image.png.0729ff8b224ad8428f49be95797fab86.png

Это интересно. Я добрался наконец до дома, сейчас гляну.

 

#65
34 минуты назад, Rigal сказал:

А не могли бы Вы пока протестировать влияние WaitMinutesBetweenEntries на продуктивность и просадку - чтобы понять, есть ли смысл сохранить этот механизм? 

Провёл тесты со значениями "0", "15" и "60".

Увеличение значения даёт уменьшение количества сделок, уменьшение прибыли, но и уменьшение просадки. Также становится выше профит-фактор.

Определённо, в параметре есть смысл.

WMBE.zip27 скач.

Автор#66
2 минуты назад, Bag-76 сказал:

Провёл тесты со значениями "0", "15" и "60".

Увеличение значения даёт уменьшение количества сделок, уменьшение прибыли, но и уменьшение просадки. Также становится выше профит-фактор.

Определённо, в параметре есть смысл.

WMBE.zip 57 \u043a\u0411 · 0 загрузок

60 выглядит наиболее осмысленно на приведенных данных: профит практически не упал, а просадка на 30% меньше.

Автор#67

Друзья, а есть у кого индикатор спреда, такой, чтобы можно было кинуть на график и видеть историю (мин, макс, среднее на бар) и текущее значение?

Мне попадались какие-то уродливые поделки на маркете, но нужно что-то рабочее, желательно, чтобы он в файл писал.

Для такого советника абсолютный маст хэв.

#68
2 минуты назад, Rigal сказал:

Друзья, а есть у кого индикатор спреда, такой, чтобы можно было кинуть на график и видеть историю (мин, макс, среднее на бар) и текущее значение?

Мне попадались какие-то уродливые поделки на маркете, но нужно что-то рабочее, желательно, чтобы он в файл писал.

Для такого советника абсолютный маст хэв.

 

Spread & Sessions Indicator.ex453 скач.

Автор#69
2 минуты назад, Bag-76 сказал:

Вау, FapTurbo... взрыв в прошлое :)

Первый и единственный советник, за который я заплатил деньги в далеком 2009-м.

Спасибо за индикатор, дружище.

#70
1 час назад, Rigal сказал:

Суммируем: просадка удваивается, профит увеличивается на треть.

Откатываемся на логику версии 1.3.4 (удалить рекавери и многоордерность из кода и опций), или оставить? 

многоордерность вряд ли приживется, но пока лучше оставить (бывает полезен коэф понижения лота следующего/очередного ордера в направлении плюса, борзеть не стоит).

а вот рековери случается оправдывается - только не целочисленный, это слишком грубо.  Точно должна быть возможность задать коэффициент 1.3-1.5.

 

Но хрен знает как оно всё в данном боте с его ТП/СЛ/винрейтом работать будет, тут логика покалеченная и все надо изучать с нуля...

Напомню, что пока что мы в тестере - как оно будет работать на разных счетах разных ДЦ, можно только строить тьму догадок.

 

 

Цитата

Вау, FapTurbo... взрыв в прошлое :)

Первый и единственный советник, за который я заплатил деньги в далеком 2009-м.

Абсолютно аналогично! =))

Только еще и деньги в 30 дней назад истребовал и получил.

Изменено 30 декабря, 2019 пользователем Старик

Автор#71
27 минут назад, Старик сказал:

Абсолютно аналогично! =))

Только еще и деньги в 30 дней назад истребовал и получил.

А мне этот зверек (уже к тому времени декомпилированный и переписанный) удвоил депозит за полгода.

Но это все дела прошлые.

Проблема, которую зарепортил @alexavb выше воспроизводится. Дурацкая неточность вычислений с плавающей точкой - расхождение между TimeGMT и TimeCurrent  в одну секунду, как видно из скриншота, дает такой эффект.

В свое оправдание скажу, что это кусок оригинальной логики.

Поправил, подбросил версию, в аттаче - протестируйте на демо плиз, не в тестере.

 

 

NY Close Scalper_v1.3.6.ex440 скач.

#72

@Rigal пока ошибка не появляется. стоит на демо

#73
В 28.12.2019 в 15:03, Rigal сказал:

В советнике примитивная логика работы с Daylight Saving Time (переходом на летнее время)

Он знает правильные даты перехода с 2010 по 2030 (!) годы.

Попробуй прикрепить такой DST в код, там минимум расчетов

Индикатор спреда такой могу еще предложить.

По поводу разбития времени тестов по дням недели - это как то бесмысленно и попахивает как подгонкой, так и огромной кучей результатов для оптимизации. 
В свое время я писал свою версию генетика, где указывал 3 параметра: Час и минуты начала торгов, а также продолжительность этой торговли в часах. Но по результатам тестирования я бы не сказал, что такой метод дал лучше результаты, чем обычное выставление времени в часах и минутах. Поэтому попробовать можно только для уменьшения количества параметров оптимизации. Время ролловера я бы вообще не оптимизировал, просто забить его с 23-50 до 0-30 (к примеру) и забыть.
Вообще, когда я ковыряю чужой код я стараюсь как можно больше действитеельно лишних параметров убрать из советника, чтобы потом переосмыслить код и если нужно - вернуть. Чем меньше параметров для опта - тем более интересные и не подогнанные под историю результаты могут получиться.

DST.mq419 скач. Spread Detected by ReVeR v1.11 for Forum.ex428 скач.

Автор#74
10 минут назад, Rever27 сказал:

Попробуй прикрепить такой DST в код, там минимум расчетов

они сделали изящнее, я вынужден признать:

   if (IsSummerTime(TimeCurrent() - gmtOffset * SECONDS_IN_HOUR)){
      gmtStartHour = (gmtStartHour + 23) % 24;
      gmtEndHour = (gmtEndHour + 23) % 24;
   }
При этом функция IsSummerTime была построена на 30 if() стейтментах, где в зависимости от года выбирались даты перехода на летнее время и назад.

Мне порой неясно, как один и тот же человек может написать два таких разных куска - но, может, там и не один был...

Я свернул в массив с отступом в 2010, две строчки вышло.

 

Я пока отложу более подробное изучение вопроса DST, оно вроде терпит и полностью покрыто тестами.

#75
2 минуты назад, Rigal сказал:

Я пока отложу более подробное изучение вопроса DST, оно вроде терпит и полностью покрыто тестами.

Просто у разных брокеров переход в разные дни происходит - по Нью Йорку и по Европе. Альпари торгуют по Европе по EST, а вот тикмилл по нью йорку. Я когда писал очередной советник столкнулся с этой проблемой, что у коллеги брокер переходил в одно время, у меня в другое, поэтому и написали такой вариант. Соответственно, если в TDS человек оптимизирует по времени перехода нью йорка, то пользователь, торгующий по времени европы должен обязательно прогнать готовый сет со своими настройками. Это не так критично, разница в 2 недели, но все равно нужно об этом помнить.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025