Доработка ботов (советников, индикаторов) vol. 2

ИванМН

Местный знаток
Вот описание кода, который я сделал в чате GPT. Если это, конечно, вам о чем-то может сказать.

Похоже, что этот код представляет собой скрипт для советника MetaTrader 4 (MT4). Советник называется "HFT Arbitrage" и предназначен для высокочастотной торговли (HFT) бинарными опционами.

Давайте разберем основные компоненты скрипта:

  1. Комментарии в заголовке:
    • Код начинается с комментариев, содержащих название советника ("HFT Arbitrage"), информацию об авторских правах и веб-сайт компании (CompanyName), которой принадлежат права на этот советник.
  2. Директивы препроцессора:
    • Директивы препроцессора используются для установки различных свойств и включения необходимых файлов. Некоторые из директив препроцессора в этом скрипте включают:
      • #property version "1.0";: Устанавливает версию советника равной "1.0".
      • #property indicator_chart_window: Указывает, что советник должен быть нарисован на графике.
      • #property strict: Включает строгую проверку типов и синтаксических правил.
  3. Включение внешних файлов:
    • Несколько внешних файлов включены с помощью #include директивы. Эти файлы необходимы для работы советника и предоставляют различные функции и библиотеки, которые использует скрипт.
  4. Глобальные переменные:
    • Скрипт содержит различные глобальные переменные, объявленные с помощью extern ключевого слова. Эти переменные предназначены для изменения пользователем при подключении советника к графику.
    • Примерами некоторых переменных являются pips_u (Частота сигналов на покупку), pips_d (Частота сигналов на продажу) и frequency (Временные рамки в миллисекундах).
  5. Определения функций:
    • Скрипт определяет несколько функций, таких как init(), OnDeinit(), OnCalculate() OnTimer(), Start_Painel() и многое другое.
    • init() Функция инициализирует советника, когда он прикреплен к графику, в то время как OnCalculate() является основной функцией для расчета сигналов на покупку / продажу на основе ценовых движений.
    • OnTimer() Функция представляет собой обработчик событий таймера, который запускается периодически и Start_Painel() используется для создания и обновления панели с информацией о производительности советника.
  6. Определяемые пользователем функции:
    • Скрипт определяет пользовательские функции, такие как mouse_event() и SetCursorPos(), которые, вероятно, используются для имитации событий мыши и положения курсора.
  7. Лицензирование и валидация:
    • Код содержит подтверждение лицензии и проверки, чтобы убедиться, что советник используется на правильной учетной записи или в течение определенного периода времени.
    • Если лицензия недействительна или срок ее действия истек, советник может отображать сообщения об ошибках и перестать функционировать.
  8. Оповещения и уведомления:
    • Советник способен отправлять оповещения, звуковые уведомления и уведомления по электронной почте на основе определенных условий.
    • myAlert()
  9. Панельные и графические операции:
    • Скрипт создает панель на графике для отображения информации о работе советника, включая сигналы на покупку / продажу, частоты и местное время.
ФксМен, это всё я и сам способен увидеть в коде. Ваша проблема решена?
 

FxMen

VIP-участник
ФксМен, это всё я и сам способен увидеть в коде. Ваша проблема решена?
Нет!
Уважаемый ИванМН! Большое спасибо за проделанную работу! Выше пост Capital Plus все объяснил "В общем, сигналы будут различаться" Спасибо и ему!
 

ИванМН

Местный знаток
ФксМен, ещё раз: Вы на скриншоте обозначили проблему: торговые рекомендации на панели и в алёрте противоречат друг другу. Также Вы уточнили, что мы подгоняем торговую рекомендацию в алёрте под рекомендацию в панели. Я это и сделал. Если Вы скачали исправленную мной версию, в ней никакие сигналы различаться не должны. Посидел, прилежно понаблюдал немного на М1 за биткойном - расхождений не заметил: что в панели, то и в алёрте. Если Вы их обнаружите в исправленной мной версии, приложите, пожалуйста, скриншот.
P.S. Одно только глубокомысленное выражение if (0 == 0) чего стоит... но это так, лирика.
 

domusns

Активный участник
Доброго дня! Индикатор Yoda Hill - Fechamento2 с закрытым кодом и RSI TMA Centered Bands Alerts Arrows v2 с открытым. С одинаковыми настройками работа RSI TMA отличается от Yoda, RSI TMA подрисовывает, можно подогнать под Yoda... С Уважением.
 

Вложения

  • Yoda Hill - Fechamento2.ex4
    15,2 КБ · Просмотры: 49
  • RSI TMA Centered Bands Alerts Arrows v2.mq4
    6,2 КБ · Просмотры: 25
  • Video_2023-07-31_135633.rar
    4 МБ · Просмотры: 28

ИванМН

Местный знаток
Доброго дня! Индикатор Yoda Hill - Fechamento2 с закрытым кодом и RSI TMA Centered Bands Alerts Arrows v2 с открытым. С одинаковыми настройками работа RSI TMA отличается от Yoda, RSI TMA подрисовывает, можно подогнать под Yoda... С Уважением.
Насколько мне известно (могу ошибаться), всё, что построено на TMA, рисует по определению, это свойство этого индикатора.
 

FxMen

VIP-участник
Доброго дня! Индикатор Yoda Hill - Fechamento2 с закрытым кодом и RSI TMA Centered Bands Alerts Arrows v2 с открытым. С одинаковыми настройками работа RSI TMA отличается от Yoda, RSI TMA подрисовывает, можно подогнать под Yoda... С Уважением.
Вот вам и Йода-Хилл!
rsi.jpg
 

Вложения

  • Hill_no_repaint+Arrows.mq4
    11,5 КБ · Просмотры: 108
Последнее редактирование:

erex

Элитный участник
Последнее редактирование:

PMY

Интересующийся
Доброго времени суток. Помогите вставить в советника функцию времени начала и окончания выставления отложенных ордеров.
 

Вложения

  • ZL_time.mq4
    33,9 КБ · Просмотры: 23

domusns

Активный участник
Да это же грааль! Вечный двигатель! Убивец форы!
Если не рисует, форексу пипец.
Глянем на минутке... Подождем, потом обновим.
Посмотреть вложение 517571
Посмотреть вложение 517572
Вот вам и нонрепейнт...
Понятно что при обновлении всё меняется, котировки меняются даже при переключении тайма... Только вот тестировать надо в режиме реального времени, без обновлений, в очень противном случае результаты всегда будут разные..
 

erex

Элитный участник
Понятно что при обновлении всё меняется, котировки меняются даже при переключении тайма... Только вот тестировать надо в режиме реального времени, без обновлений, в очень противном случае результаты всегда будут разные..
Котировки при переключении ТФ не меняются. Они меняются при появлении новых данных от дц. "В режиме реального времени" (без переключения ТФ) индикатор сажает стрелы куда попало, а после обновления графика просто убирает лишние, оставляя самые "красивые". Это и называется рисовка, которая делает индикатор фактически непригодным к использованию. И это всегда противно.
 

ИванМН

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

Вложения

  • ZL_time.mq4
    34,1 КБ · Просмотры: 27

domusns

Активный участник
Котировки при переключении ТФ не меняются. Они меняются при появлении новых данных от дц. "В режиме реального времени" (без переключения ТФ) индикатор сажает стрелы куда попало, а после обновления графика просто убирает лишние, оставляя самые "красивые". Это и называется рисовка, которая делает индикатор фактически непригодным к использованию. И это всегда противно.
Вот поэтому всё проверяется в режиме реального времени. Вы ведь не будете отрицать что в тестере МТ4 котировки правильные, однако они существенно отличаются от режима реального времени.
 

domusns

Активный участник
Котировки при переключении ТФ не меняются. Они меняются при появлении новых данных от дц. "В режиме реального времени" (без переключения ТФ) индикатор сажает стрелы куда попало, а после обновления графика просто убирает лишние, оставляя самые "красивые". Это и называется рисовка, которая делает индикатор фактически непригодным к использованию. И это всегда противно.
Надо определиться как новые данные дц могут влиять уже на котировки в прошедшем времени...нонсенс...
 

Capital Plus

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

Уже как несколько лет реальные котировки доступны в МТ5. История сохраняется вплоть до Bid и Ask и можно спокойно потестить аппарат любой сложности.

Благодаря МТ5 мне не пришлось долго сидеть с тестерными граалями типа WOC и Cash-Profit.

Более того, одна известная и древняя компания по обучению форексу, у которой есть подразделение автоторговли, запостила недавно ролик, где их спец по портфельной автоторговле с великим и важным видом, с воодушевлением до небес показал на МТ4, какой они "собрали" грааль. Я смотрю - ну вижу прям вок или кэш. И как только автор обмолвился, что нужны импульсы цены, сразу понял, что это он. Видимо, в бесконечном болоте форекс-советников, им в своё время он не попался. И, учитывая, что их отдел тоже долго существует, а портфель советников работает долго, было очень смешно и забавно наблюдать за этой картиной. Мол, в разработке истребитель 6-го поколения, ожидайте.

Я им говорю, а чё вы на МТ5 не проверяете? Они мне - у нас 99% качества котировок. Говорю - а в МТ5 - 100% качества котировок, не занимайтесь ерундой и просто протестируйте в режиме реальных тиков. "Приятно" удивитесь.

Всё, больше этой темы они не затрагивали, а на вопросы их клиентов про этот "перфоманс" не отвечают.



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

Capital Plus

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

За короткое время мне попалось несколько заказов с индикатором ТМА и его разновидностью.

Метод, который он использует - мошеннический. При тестировании советников терминал не даёт коду заглянуть в будущее (не говоря об ухищрениях). Но, при первом запуске индикатора он начинает расчёт с самой ранней даты. Таким образом, у индикаторов появляется открытая возможность заглянуть в будущее. А поскольку торговать в индикаторе запрещено, у него есть замечательная возможность расположить сигналы самым удобным образом.

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

И значения в ТМА - изменяются каждый тик, в количестве - равного периоду его средних. В то время как любой стандартный или честный индикатор - рисует только текущее значение, и при закрытии свечи - больше не имеет к нему доступ.



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

MERFY

Местный знаток
За короткое время мне попалось несколько заказов с индикатором ТМА и его разновидностью.

Метод, который он использует - мошеннический. При тестировании советников терминал не даёт коду заглянуть в будущее (не говоря об ухищрениях). Но, при первом запуске индикатора он начинает расчёт с самой ранней даты. Таким образом, у индикаторов появляется открытая возможность заглянуть в будущее. А поскольку торговать в индикаторе запрещено, у него есть замечательная возможность расположить сигналы самым удобным образом.

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

И значения в ТМА - изменяются каждый тик, в количестве - равного периоду его средних. В то время как любой стандартный или честный индикатор - рисует только текущее значение, и при закрытии свечи - больше не имеет к нему доступ.



Новые данные никак не влияют на котировки в прошлом. Только если индикатор захочет помухлевать.
Добрый вечер! Согласен, с вами TMA можно выбросить и использовать просто Кельтнера или Болинджер, толку в разы больше. Какие вообще по опыту вам попадались толковые алгоритмы в индикаторах? Может были опережающие, типо на сонове моментума или что-то похожее?
 

Capital Plus

Активный участник
Добрый вечер! Согласен, с вами TMA можно выбросить и использовать просто Кельтнера или Болинджер, толку в разы больше. Какие вообще по опыту вам попадались толковые алгоритмы в индикаторах? Может были опережающие, типо на сонове моментума или что-то похожее?

Добрый вечер!

Я только недели две назад начал копаться в индикаторах, несколько лет назад забил на них. Думаю, Вам лучше подскажут завсегдатаи форума.

По мне - так это индикаторы дивергенции, ставшие классикой. Разного рода геометрия: индикаторы волн Вульфа, ABCD, Гартли. У них очень высокий показатель ТП:СЛ, когда поймав пару маленьких лосей можно одной хорошей сделкой закрыть неделю или месяц в прибыль.

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

1.png

2.png

3.png


Мультивалютные и мультиТаймфреймовые индикаторы: индикаторы силы, направлений. Они чаще всего бесполезны, но в них есть какой-то смысл.

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

Ну и самые толковые: это готовые механические системы. Комплексные индикаторы, в которых учитываются и паттерны, и сила, и генерируются точки входа.
Я такие постепенно готовлю, чтобы можно было вручную поторговать.
 

erex

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