Первый алгоритмический проект: правило, данные и фактическое состояние
Первый алгоритмический проект может записывать сигналы, считать объем или проверять экспозицию без размещения сделки. Начните с одной операции, результат которой можете объяснить и проверить. До разрешения отправки ордеров определите входную информацию, правило и поведение программы. Автоматизация не доказывает прибыльность стратегии.
Какая задача передается программе
Разделяйте выбор сигналов, исполнение уже принятого решения, управление позицией и отчетность. Программа, дробящая существующую заявку, решает другую задачу, чем робот, выбирающий входы. Отчет BIS 2020 года об алгоритмах исполнения FX рассматривает исполнение, структуру рынка и риски, а не доходность конкретного розничного робота. В нем EA означает execution algorithm, алгоритм исполнения; в MetaTrader EA — Expert Advisor, советник. Совпадение сокращения не делает задачи одинаковыми.
Зафиксируйте инструмент, источник данных, рабочее время, момент решения, входы, выходы, объем, предел экспозиции и поведение при существующей позиции. Выбор этих условий и надзор остаются у человека. Программа может исключить одну ручную ошибку и добавить другую, например дублирующий запрос после перезапуска. Корректность кода и экономический результат правила проверяют отдельно.
Инструмент выбирается под задачу
Для уведомления может хватить оповещения. Штатные оповещения MT5 сравнивают цену, объем последней сделки или время с заданным значением; это не произвольный редактор условия «средняя и ATR». Для собственного правила может потребоваться индикатор или советник. Программный Alert в MQL5 — другой механизм уведомления. MQL5 работает в среде MT5, Python может анализировать данные или использовать документированное соединение. Обязательной лестницы от оповещений к MQL5, Python и FIX нет.
Выберите среду по счету, данным и операции. Не предполагаются стандартное число строк кода, срок создания, задержка или доступ к API на любом продукте брокера. Основы советников MQL5 на английском, исследование Forex на Python на английском и сравнение MQL5 и Python на английском описывают разные рабочие процессы. Переписывать одну идею на обоих языках необязательно.
Третью цену среднего нельзя угадать
Правило требует ровно три завершенных исторических закрытия: x, 100, 102 от старого к новому. Пришли только 100 и 102; x — неизвестная более ранняя цена, а не будущая. Прокрутите схему по горизонтали.
При x=98 среднее равно (98 + 100 + 102)/3 = 100, и 102 > 100. При x=106 оно равно 308/3 ≈ 102.667, и условие «последняя цена выше среднего» не выполнено. Среднее только двух известных цен 101 меняет правило; подстановка нуля создает фиктивный третий вход. Программа записывает неполные данные и не выдает решение. При повторной успешной загрузке проверьте, что получены именно требовавшиеся бары. CopyRates в MQL5 возвращает число скопированных записей или ошибку и может иметь частично доступные данные. Здесь рассматривается полнота, а не направление индексации массива.
Дополнительная проверка: граница неизвестной цены
Для того же упражнения 102 > (x + 100 + 102)/3 равносильно x < 104. При x=104 среднее равно 102: равенство не проходит строгое «выше». Но неизвестный x нельзя объявить меньше 104 или равным 104 без данных. Поэтому даже найденная граница не превращает отсутствующий вход в подтвержденный отказ или сигнал. Это алгебра на заданной модели, не восстановленная котировка.
Навыки и проверка среды
Нужны программирование, обработка данных, расчет размера и статистическое мышление в объеме операций проекта. Короткая кривая счета описывает выборку, а не доказывает будущую доходность. Планируйте представительные данные, отдельную оценку вне подбора и проверку поведения на демо. Изменить параметр без синтаксической ошибки недостаточно для проверки исполнения и состояния программы.
MQL5 использует терминал MT5; Python может работать через него или через другие документированные интерфейсы. Полная задержка зависит от кода, размещения, сети и исполнения брокера. Единицы миллисекунд не гарантируются. Лицензии, данные, инфраструктура и время требуют собственной таблицы расходов, даже если язык бесплатен.
От идеи к проверяемому примеру
Для условного пересечения EUR/USD H1 заранее определите EMA, SMA, ATR, момент сигнала, стоп и цель. Сначала сравните ручные и автоматические решения по тем же датам и данным. Пятилетний автоматический тест не обязан повторять шестимесячную ручную выборку: периоды и источники различаются. Разберите расхождения одинакового периода, добавьте расходы, затем оцените замороженное правило на других данных.
Автономная спецификация может использовать EMA 21, SMA 55 и выбранную дистанцию ATR. Запишите, используются ли закрытые H1-бары и когда допускается оценка. Сначала записывайте сигнал без ордеров. Проверьте один сигнал, корректное отсутствие сигнала, смену бара, недостающую историю и уже открытую позицию. Отсутствующий вход не является корректным результатом «не входить».
Отдельная модель объема: текущие средства 10 000 USD, выбранный начальный бюджет ценовой потери 0.5%, стоп 25 пипсов, пипс EUR/USD=0.0001. При контракте 100 000 EUR на стандартный лот стоимость пипса равна 10 USD на лот. Бюджет 50 USD дает 50/(25 × 10)=0.20 лота, то есть экспозицию 20 000 EUR. Это не рекомендация риска; номинал, маржа и плановая потеря — разные величины. До приведения к разрешенному шагу учтите комиссию и исполнение. Обычный стоп может исполниться иначе при разрыве: 50 USD не являются безусловным пределом потери.
Успех на данных подбора может быть следствием выбора вариантов. Еще одна ошибка — смешать правильные котировки разных моментов. В условном t1 Bid/Ask=1.1000/1.1002, в t2 — 1.1010/1.1012. При пипсе 0.0001 оба спреда равны 2 пипсам. Но Ask из t1 и Bid из t2 дают (1.1002 − 1.1010)/0.0001 = −8 пипсов. Фильтр «спред < 2.5» ошибочно пропустит эту искусственную величину; отрицательный рыночный спред здесь не наблюдался.
SymbolInfoTick возвращает цены и время обновления в одной структуре MqlTick. Проверьте успех и используйте сохраненные поля одной структуры. Добавьте намеренно смешанный тест из двух меняющихся, но по отдельности правильных записей. Согласованная котировка — проверка данных, не глубины ликвидности или будущей цены исполнения.
Код, данные и экономический результат проверяются отдельно
Проект может ошибаться в правиле, коде, данных, исполнении или эксплуатации. Здесь нет доказанного рейтинга двух главных причин неудач; ошибки программы нельзя исключать. После неоднозначного ответа на ордер проверьте фактические ордера, сделки и позиции до повтора. Возврат true из OrderSend сам по себе не означает исполненную сделку. Сохраняйте код ответа, последующие события, версию правила, время информации и причину действия или отказа от оценки.
Для теста нужны данные продукта, расходы и хронология. Сохраняйте все попытки и неудачные отчеты. Изменение правила после просмотра отдельной проверочной выборки превращает этот период в данные разработки. Поиск торгового преимущества на английском рассматривает процедуру оценки, не гарантированное улучшение шансов.
В условных 100 сделках сорок выигрышей по +2R дают 80R, шестьдесят потерь по −1R — 60R. Среднее равно (80 − 60)/100 = +0.2R до расходов, профит-фактор 80/60 ≈ 1.33. Доля выигрышей 40% — другая величина. Это выбранная арифметика, не проверенная стратегия и не прогноз следующей выборки. Для дополнительной проверки зададим полный расход каждой сделки 0.25R: всего 25R, чистый итог −5R и среднее −0.05R. Положительный валовой результат сам не доказывает положительного чистого результата.
Составьте таблицу расходов на данные, размещение, лицензии и время. Права доступа, цены провайдеров и восстановление зависят от среды. Проверьте перезапуск и отключение; VPS не отменяет надзор и все отказы. Платформы и инструменты ForexMechanics на английском — отдельный материал.
Что проверить самостоятельно
- Выберите одну операцию и опишите данные, время, правило, результат и причины приостановки. Достоверный журнал сигналов может быть завершенным первым проектом.
- Проверьте полноту истории и согласованность котировки на небольших объяснимых случаях. Различайте текущий и завершенные бары, сохраняйте время каждого входа решения.
- Если проекту нужны ордера, добавляйте их в явно определенной демо-среде. Проверяйте принятый запрос, отказ, перезапуск и неоднозначный ответ; перед повтором устанавливайте фактическое состояние. Календарный срок не требует перехода к реальным деньгам.
- Заморозьте правило для отдельной оценки с данными и расходами продукта. Сопоставляйте те же даты и отдельные решения, разбирайте существенные различия, не назначая универсальный допустимый процент расхождения.
- Запишите остановку, перезапуск и обновление. Выключение локального AutoTrading запрещает алгоритмическую торговлю, но не закрывает уже существующие позиции. Разделяйте серверную принятую защиту и правила программы; удаленную копию проверяют отдельно. Демо не гарантирует одинаковое исполнение на реальном счете.
Проверьте понимание
Пришли только закрытия 100 и 102, но правило требует среднее трех цен. Что записать программе?
Ответ и объяснения без JavaScript
Правильный ответ: Правило пока не оценивается: более ранняя запись отсутствует.
Условие выполнено, потому что среднее двух цен равно 101.
Так оценивается другое, двухпериодное правило. Условие по трем ценам остается неизвестным.
Правило пока не оценивается: более ранняя запись отсутствует.
Варианты 98 и 106 дают противоположные результаты. Отсутствующую запись нужно сохранить как пропуск данных.
Условие не выполнено, потому что пропущенная цена всегда 106.
106 — один вымышленный вариант, не загруженная цена. Основания выбрать его нет.
Вопросы и ответы
Что представляет собой первый алгоритмический проект?
Программа выполняет заданную операцию: сигнал, исполнение решения, управление или отчет. Их необязательно объединять, первый проект может не торговать. Определите информацию, время, пропуски данных, объем, экспозицию и фактический статус запроса. Процент плановой потери не равен номиналу или гарантированной максимальной потере. Автоматизация не создает и не сохраняет прибыльное преимущество сама по себе.
Что выбрать: оповещение, советник или программу исследования?
Выбор зависит от задачи, а не обязательной лестницы. Штатные оповещения MT5 сравнивают простые цены, объем или время; собственное условие может потребовать индикатор или советник. Руководства по MQL5, исследованию Python и сравнению языков связаны в тексте. Не установлены всеобщий срок 12–24 месяца, мгновенный расчет или доступ к API любого брокера.
Какие навыки нужны помимо изменения параметров кода?
Нужно проверять программирование и данные тех операций, которые использует проект, а также размер и статистические выводы. Отсутствие синтаксической ошибки не тестирует исполнение, состояние и экономические предположения. Небольшая выборка описывает себя; число сделок или длительность демо не доказывают преимущество. Нужны случаи пропусков, перезапуска, отказа и неоднозначного ответа вместе с отдельной оценкой результата.
Какие отказы проверить до расширения проекта?
Правило, данные, код, исполнение и эксплуатацию. Ошибка программы может обесценить тест или создать нежелательную экспозицию; положительной исторической средней недостаточно. Сохраняйте провальные варианты, процедуру приостановки, фактические ордера и исполнения. После изменения по результатам проверочной выборки она становится частью подбора.
Источники и пределы применения
- MetaTrader 5: автоматизированная торговля
Сохраненная справочная ссылка о советниках и тестировании. Не оценка прибыльности или гарантированного срока разработки.
- MQL5: справочник языка и типов программ
Справочник языка и программной среды, не обещание доступа к счету или результата стратегии.
- Backtrader: вводное руководство
Исходный официальный учебник по исследовательской среде. Здесь не заявлено выполнение всех примеров или установка пакетов; универсальная скорость не гарантируется.
- BIS: исторический обзор валютного рынка, декабрь 2019 года
Исторический контекст электронного рынка и небанковских участников. Обороты 2019 года не импортируются как текущая статистика.
- BIS: алгоритмы исполнения FX, отчет 2020 года
Алгоритмы исполнения существующих решений и связанные компромиссы; EA здесь не обязательно розничный советник MetaTrader. Не доказательство прибыли робота.
- MQL5: OrderSend и ответ торгового сервера
Успех проверки или приема запроса не равен исполнению сделки. Проверяйте поля ответа и фактическое состояние.
- MQL5: SymbolInfoTick и согласованная запись
Цены и время обновления помещаются в одну MqlTick; функция возвращает успех. Согласованность данных не обещает будущую ликвидность или цену исполнения.
- MQL5: число записей CopyRates
Запрошенная история, количество скопированных записей и ошибки. Недостающая запись не становится нулевой ценой.
- MQL5: два разных механизма оповещений
Ручные простые условия цены, объема или времени отличаются от программной функции Alert.
- MetaTrader 5: разрешение алгоритмической торговли
Отключение разрешения запрещает торговлю программам, но не является операцией закрытия позиций. Удаленные экземпляры и действующие защитные ордера проверяются отдельно.
Условные EUR/USD и USD расчеты не определяют страну читателя или доступ к API. Документация описывает конкретную платформу; отчет BIS 2020 года рассматривает собственный исторический контекст исполнения.