Мультивалютный open source советник - Beat The Market 2.0

От lsv107, 29 мая, 2020 в Лаборатория ProfitFX

#151
1 минуту назад, Greem4ik сказал:

Да это была сделано по моей просьбе. К сожаления результат данного внедрения оказался примерно такой же как и был (это лично на моем счете) У меня на Тикмиле при пинге 1,65мс оредра закрываются примерно 400мс... а если их 10 примерно, то при поступление сигнала на закрытие можно потерять часть прибыли пока они все закроются, хотя так же можно и увеличить прибыль.

Я к сожаления не могу найти тот советник/скрипт, он точно был я его на реале тестировал он 20 сделок по разным парам почти мгновенно закрывал 

 

 

Очень простое объяснение на скриншоте ниже.

Я замеряю, сколько времени занимает закрыть ордер

image.png.2394f4820c6564512befd006501ca5c5.png

 

Это как раз тоже на тикмилле, вот тут:

image.png.a11c273413d32fbd093028b4900a405e.png

 

Не парьтесь искать этот скрипт.

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

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

 

#152

Спасибо за разъяснение.

Хотя немного странно почему так долго открывает, хотя у Вас пинг в два раза ниже чем у меня, и VIP счет, и на сайте тикмила написано что среднее время открытия ордера 200мс. Но впринцепи это не смертельно.

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

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

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

Спасибо за разъяснение.

Хотя немного странно почему так долго открывает, хотя у Вас пинг в два раза ниже чем у меня, и VIP счет, и на сайте тикмила написано что среднее время открытия ордера 200мс. Но впринцепи это не смертельно.

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

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

ну ваши 5п - это вошел, или не вошел в конкретной точке.

И, собственно, дальше может, или не может войти в другой.

#154

Ну так как данные поступают с Н4, я не думал что "эти 5 пунктов" будет так влиять на результат. 

В целом работа советника нравится, получается хорошая диверсификация позиций, а с фильтром будет еще лучше)

#155

Добавил фильтр входов в одном направлении по валютам

Два параметра:

Макс кол-во ордеров в одном направлении по валюте

С этим все просто: если ноль - не применяем.

Если не ноль: считаем все сделки этого советника, раскидываем их в покупки и продажи конкретной валюты

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

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

 

Ограничение  по сумме ордеров по валютам  пары

Тут немного более комплексная логика - если кому хочется отбалансировать общую позицию в рынке.

Если ноль - тоже игнорируется.

Считаем и разбиваем открытые ордера, как описано выше.

Далее, суммируем количество открытых ордеров по базовой валюте в заданном направлении с количеством открытых ордеров по второй валюте в обратном направлении и сравниваем сумму с лимитом.

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

 

Приведу пример:

Мы хотим открыть покупку по USDJPY

При этом у нас есть уже покупки по USDCAD, USDCHF и продажи по EURUSD и GBPUSD

А по японцу у нас есть продажи по AUDJPY, GBPJPY, CHFJPY и CADJPY.

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

 

Если выставить лимит первого типа в 3,  он отфильтрует эту позицию по превышению количества покупок доллара.

 

А лимит второго типа сложит 4 по первой валюте с минус четырьмя по второй - получаем ноль, лимит второго типа такую сделку разрешит - ее совокупный вклад в позицию нейтрален.

 

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

 

Оба параметра работают независимо и не противоречат друг другу: если хоть один из них превышен, сделка не состоится.

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

 

В качестве бонуса я переключил советник на цикл 50мс (вместо исходной 1с). Теперь он будет все пересчитывать каждые 50 мс.

Убрал sleep после получения сигнала - не понимаю, зачем нужно спать посреди рабочего цикла. И если в этом была какая-то польза, нужно выбрать другое решение. Sleep - это костыль,  которому в коде, как правило, не место.

 

Всем профитов и делитесь наблюдениями и результатами 

Beat The Market 2.1.1 Rigal mod.mq436 скач.

Изменено 13 ноября, 2020 пользователем Rigal

#156
21 час назад, ademen сказал:

Скорее всего человек пользуется библиотекой, как эта к примеру https://www.mql5.com/ru/code/1787

Очевидно.

При этом ни одна из библиотек, которые я пока встречал, не позволяет мигрировать малой кровью

Например, библиотека по вашей ссылке, не обрабатывает логику работы с ордерами совсем и это явно упоминается в тексте.

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

для того, чтобы миграция была несложной, нужно выписать слой, который адаптирует новую логику МТ5,  оборачивая ее в работу с ордерами в стиле МТ4.

То есть собирать у терминала всю информацию об ордерах и сделках, связывать ее в МТ4-поддобные структуры и отдавать по запросу.

Ничего невозможного, но я, например, не хочу тратить на это время - я пока не уперся в необходимость освоить МТ5

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

Изменено 14 ноября, 2020 пользователем Rigal

#157

Вот у меня как обычно:  сперва я с утра напишу, что "не хочу тратить на это время", а потом к полуночи набросаю черновик.

Спойлер

image.thumb.png.ca31b35aae88e6f110c7bd4e7390a14f.png

Черт ногу сломит в этом МТ5

Например,  я не добился, чтобы индикаторы рисовали стрелочки пока.

Значения выдаются, а стрелочки не рисуются.

И на скриншоте видно, что советник, хоть и торгует, но как-то не очень ожидаемо: открыл с десяток покупок и ни одной продажи пока.

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

Ну, или я постепенно отлажу, когда будет время.

#158

@Rigal вопрос по параметрам.

Трал прибыли - здесь понятно, вид активации трала.

Минимальная прибыль в процентах для включения трала: если в предыдущем установить в валюте, то будет ли этот работать вообще, или переключится в валютный режим?

Старт трала в валюте: если есть параметр выше зачем тогда этот?

#159
1 минуту назад, BotPro сказал:

@Rigal вопрос по параметрам.

Трал прибыли - здесь понятно, вид активации трала.

Минимальная прибыль в процентах для включения трала: если в предыдущем установить в валюте, то будет ли этот работать вообще, или переключится в валютный режим?

Старт трала в валюте: если есть параметр выше зачем тогда этот?

Это не ко мне вопрос. Это к автору.

Хотя, я полагаю, можно прояснить в тесте.

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

Черт ногу сломит в этом МТ5

Например,  я не добился, чтобы индикаторы рисовали стрелочки пока.

Значения выдаются, а стрелочки не рисуются.

И на скриншоте видно, что советник, хоть и торгует, но как-то не очень ожидаемо: открыл с десяток покупок и ни одной продажи пока.

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

Ну, или я постепенно отлажу, когда будет время.

За не имением другого, это уже неплохой результат, правда на скрине тайм фрейм Н1 и как то странно что на 1 графике несколько сделок одновременно открытых. Или это так показывает тестер в мульти режиме? 

Я пока буду тестировать Вашу мт4 версию, как фильтр сработает так отпишусь

#161
42 минуты назад, Greem4ik сказал:

За не имением другого, это уже неплохой результат, правда на скрине тайм фрейм Н1 и как то странно что на 1 графике несколько сделок одновременно открытых. Или это так показывает тестер в мульти режиме? 

Я пока буду тестировать Вашу мт4 версию, как фильтр сработает так отпишусь

Это, конечно, мультирежим. Открыты сделки по десятку пар

так, или иначе, я пока запарковал задачу

#162
8 часов назад, BotPro сказал:

@Rigal вопрос по параметрам.

Трал прибыли - здесь понятно, вид активации трала.

Минимальная прибыль в процентах для включения трала: если в предыдущем установить в валюте, то будет ли этот работать вообще, или переключится в валютный режим?

Старт трала в валюте: если есть параметр выше зачем тогда этот?

Обычно надо читать буквально что написано.

Прибыль в моменте видна в деньгах (+$) и эти же +$ можно измерять в %% от баланса.

Соответственно трал стартует при достижении определенной суммы(+$$) прибыли или пропорциональной прибыли в %% от баланса.

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

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

 

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

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

#163
1 час назад, Старик сказал:

Обычно надо читать буквально что написано.

Коллега, я 2-3 раза прочитал pdf вложение, и только потом задал вопрос сюда. Если бы всё так было просто - смысл задавать отпал.

 

И вы забавно ответили. Сначала говорите, что я задал странный вопрос. Затем сами же пишите, что ситуация странная.

#164

Ну да, обсуждение забавное выходит... |da|:)

Вы надергали парные параметры из описания по одному - а я отвечаю на основе вашей частичной информацииfcplm

 

У параметров в ботах грубо 2 уровня понимания:

- что и как в конкретный параметр писать/задавать и

- есть ли какие-то особенности применения часто вполне банального параметра в конкретном боте.

 

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

И что надо задавать значение лишь одного параметра - второй=0.

Ну это вроде прямо следует из вашего вопроса, наиболее логично и очевидно.  Формально.

 

Но новое полное описание (наконец-то глянул:) ) такое

Screenshot_6.png

 

И здесь совершенно однозначно указывается, что тралится прибыль/убытки всех ордеров на всех графиках счета.

Такой всеобщий трал возможен только в деньгах - которые можно задать как %% от баланса или прямо деньги.

По сути это один и тот же трал в деньгах - но для удобства пользователя выбор указывать %% или сумму.

 

В первом параметре "Трал прибыли" вы должны выбрать вариант управления тралом - в %% или деньгах.

Это альтернатива: вы будете использовать или верхнюю пару настроек трала (в %%) - или нижнюю в деньгах.

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

Теперь, надеюсь, разобрались. :)

Изменено 16 ноября, 2020 пользователем Старик

#165

@Rigal После активации новых двух функции загрузка ЦП выросло до 90-100% =) Хотя ВПС не слабый. Не связано ли это с "В качестве бонуса я переключил советник на цикл 50мс (вместо исходной 1с). Теперь он будет все пересчитывать каждые 50 мс."

Если нет, то буду искать проблему у себя. Спасибо

 

#166
14 минут назад, Greem4ik сказал:

@Rigal После активации новых двух функции загрузка ЦП выросло до 90-100% =) Хотя ВПС не слабый. Не связано ли это с "В качестве бонуса я переключил советник на цикл 50мс (вместо исходной 1с). Теперь он будет все пересчитывать каждые 50 мс."

Если нет, то буду искать проблему у себя. Спасибо

 

Связано наверняка. 

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

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

 

Выставьте частоту, которая не будет грузить ваш процессор сильнее, чем вы готовы терпеть :)

 

Beat The Market 2.1.2 Rigal mod.mq429 скач.

#167

@Rigal День добрый.

У меня в настройках стоят такие параметры:

Макс кол-во ордеров в одном направлении по валюте = 2

Ограничение  по сумме ордеров по валютам  пары = 4

Результат на скрине, как я понимаю последний ордер не должен был открываться( USDCHF) так как стоит ограничение по направления = 2.  Или я неправильно понял?
Спасибо

filter.jpg

#168
7 часов назад, Greem4ik сказал:

@Rigal День добрый.

У меня в настройках стоят такие параметры:

Макс кол-во ордеров в одном направлении по валюте = 2

Ограничение  по сумме ордеров по валютам  пары = 4

Результат на скрине, как я понимаю последний ордер не должен был открываться( USDCHF) так как стоит ограничение по направления = 2.  Или я неправильно понял?
Спасибо

filter.jpg

Вообще говоря, не должен, да. Я гляну.

#169
10 часов назад, Rigal сказал:

Вообще говоря, не должен, да. Я гляну.

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

В данном случае кто-то дернул мой палец, и вместо умножения в одном месте появился плюс.

 

Чтобы отловить это, я покрыл свой класс учета позиций тестами и проверил, как оно отрабатывает (и получил абсурдные результаты).

 

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

Beat The Market 2.1.3 Rigal mod.mq446 скач.

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

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

В данном случае кто-то дернул мой палец, и вместо умножения в одном месте появился плюс.

 

Чтобы отловить это, я покрыл свой класс учета позиций тестами и проверил, как оно отрабатывает (и получил абсурдные результаты).

 

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

Beat The Market 2.1.3 Rigal mod.mq4 320 \u043a\u0411 · 5 загрузок

Добрый день Коллеги 

А есть сет под этот мод? А можно протестить в мт4? Сорри, за глупые вопросы, я новичок. 

 

#171
8 минут назад, Rabinovich сказал:

Добрый день Коллеги 

А есть сет под этот мод? А можно протестить в мт4? Сорри, за глупые вопросы, я новичок. 

 

В шапке есть архив, в котором есть описание настроек. Можно под себя настроить. Лучше начать с минимальных значений. Имеется ввиду по профиту. Чтобы понять: выдерживает ли банк и в целом как отрабатывает на вашем брокере.

Изменено 18 ноября, 2020 пользователем BotPro

#172

Раз 3й уже читаю полностью инструкцию. В предыдущий раз снял с торгов, с демки, а сохранить нужно было сет.

В общем, решил вот так настроить советника.

 

Так понял, что ТП там, как такового, нет, или я иначе понял. Однако есть параметр старта трала и шага, 5 и 0,5 соответственно в сете установлены. Получается, что из прочитанного ясно стало, что при достижении определенной прибыли он тралит прибыль на указанную величину в валюте, а если цена заходит за "точку трала" на N%, в сете 25 поставлено, то советник закрывает все ордера.

 

Также в сете отключил СЛ. Интересно проверить какая просадка будет. Пар указано где-то 22, выбраны согласно таблице робо и текущего мониторинга спреда с сайта тлап.

 

Пара моментов вызывали вопросы: где четкий ТП в пипах/пунктах (например, как в челленджере, скажем) и что лучше - TMA или канал регрессии. Хотя прочитал о канале регрессии в инете пару статей объемных, перед выбором: там сказано что он лучше подойдет для долгосрока, чем для внутри дня, тем более для торгов на М15. Поставил ТМА. Многие параметры индикаторов и ТМА блока без изменений. Bolindger Band оставил таким же, на "возвращение в канал". Думаю у этого метода больше шансов на успех, чем у пробоя полосы: исключением из этого служит тренд по евро доллару 2017 года (хотя трудно сказать как BTM Riga mod отработал бы в мультивалютном в тот период); при пробое полосы есть риск также нарваться на SFP, т.е. ложный пробой, в этом случае sfp будет выступать в + к возвращению в канал.

 

Как-то так :) Есть полезные мысли по улучшению - пишите сюда |da|

BTM Rigal Mod 1.set26 скач.

#173
1 час назад, BotPro сказал:

Раз 3й уже читаю полностью инструкцию. В предыдущий раз снял с торгов, с демки, а сохранить нужно было сет.

В общем, решил вот так настроить советника.

 

Так понял, что ТП там, как такового, нет, или я иначе понял. Однако есть параметр старта трала и шага, 5 и 0,5 соответственно в сете установлены. Получается, что из прочитанного ясно стало, что при достижении определенной прибыли он тралит прибыль на указанную величину в валюте, а если цена заходит за "точку трала" на N%, в сете 25 поставлено, то советник закрывает все ордера.

 

Также в сете отключил СЛ. Интересно проверить какая просадка будет. Пар указано где-то 22, выбраны согласно таблице робо и текущего мониторинга спреда с сайта тлап.

 

Пара моментов вызывали вопросы: где четкий ТП в пипах/пунктах (например, как в челленджере, скажем) и что лучше - TMA или канал регрессии. Хотя прочитал о канале регрессии в инете пару статей объемных, перед выбором: там сказано что он лучше подойдет для долгосрока, чем для внутри дня, тем более для торгов на М15. Поставил ТМА. Многие параметры индикаторов и ТМА блока без изменений. Bolindger Band оставил таким же, на "возвращение в канал". Думаю у этого метода больше шансов на успех, чем у пробоя полосы: исключением из этого служит тренд по евро доллару 2017 года (хотя трудно сказать как BTM Riga mod отработал бы в мультивалютном в тот период); при пробое полосы есть риск также нарваться на SFP, т.е. ложный пробой, в этом случае sfp будет выступать в + к возвращению в канал.

 

Как-то так :) Есть полезные мысли по улучшению - пишите сюда |da|

BTM Rigal Mod 1.set 3 \u043a\u0411 · 2 загрузки

А можно прогнать в тесте этот сет в мт4? Я пробовал, ни че не получается, сделок нет. ?

#174
14 минут назад, Rabinovich сказал:

А можно прогнать в тесте этот сет в мт4? Я пробовал, ни че не получается, сделок нет. ?

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

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

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

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

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

Можно на реал? А сколько мин дп и сколько потенциальная просадка? 

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

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