Форекс Алгоритмические Торговые Стратегии Мой Опыт Топтал Алгоритмы Стратегии Форекс

7 мая 2020 Автор: Eduard

Форекс Алгоритмический трейдинг: практическая история для инженеров.
Как вы, возможно, знаете, валютный рынок (Forex или FX) используется для торговли между валютными парами. Но вы можете не знать, что это самый ликвидный рынок в мире.
Несколько лет назад, руководствуясь моим любопытством, я сделал первые шаги в мир алгоритмической торговли на Форекс, создав демо-счет и разыгрывая симуляции (с поддельными деньгами) на торговой платформе Meta Trader 4..

После недели «торговли» я почти удвоил свои деньги. Вдохновленный моей собственной успешной алгоритмической торговлей, я углубился и в конечном итоге подписался на ряд форумов по FX. Вскоре я часами читал о алгоритмических торговых системах (наборах правил, определяющих, покупать или продавать), пользовательских индикаторах, настроениях на рынке и многом другом..

Мой первый клиент.
Примерно в это же время, по совпадению, я услышал, что кто-то пытается найти разработчика программного обеспечения для автоматизации простой торговой системы. Это было в те дни, когда я учился в колледже, когда я изучал параллельное программирование на Java (потоки, семафоры и все такое прочее). Я подумал, что эта автоматизированная система не может быть намного сложнее, чем моя продвинутая курсовая работа по науке о данных, поэтому я поинтересовался работой и попал на борт.
Клиенту требовалось программное обеспечение для алгоритмической торговли, созданное на основе MQL4, функционального языка программирования, используемого платформой Meta Trader 4 для выполнения действий с акциями..

Роль торговой платформы (в данном случае Meta Trader 4) заключается в обеспечении связи с брокером Forex. Затем брокер предоставляет платформу с информацией о рынке в режиме реального времени и выполняет ваши ордера на покупку / продажу. Для читателей, незнакомых с торговлей на Форекс, вот информация, которая предоставляется фидом данных:
Через Meta Trader 4 вы можете получить доступ ко всем этим данным с помощью внутренних функций, доступных на разных таймфреймах: каждую минуту (M1), каждые пять минут (M5), M15, M30, каждый час (H1), H4, D1, W1, MN.
Движение текущей цены называется тиковым.

Другими словами, тик — это изменение цены Bid или Ask для валютной пары. На активных рынках может быть множество тиков в секунду. На медленных рынках могут быть минуты без галочки. Тик — это сердцебиение робота на валютном рынке.

Когда вы размещаете заказ через такую ​​платформу, вы покупаете или продаете определенный объем определенной валюты. Вы также устанавливаете лимиты стоп-лосс и тейк-профит. Лимит стоп-лосса — это максимальное количество пипсов (колебания цены), которое вы можете позволить себе потерять, прежде чем отказаться от сделки. Лимит тейк-профита — это количество пипсов, которое вы накопите в свою пользу, прежде чем обналичить.
Алгоритмические торговые спецификации клиента были просты: ему нужен робот Forex, основанный на двух индикаторах.

Для справки, индикаторы очень полезны при попытке определить состояние рынка и принять торговые решения, так как они основаны на прошлых данных (например, самое высокое значение цены за последние n дней). Многие из них встроены в Meta Trader 4. Однако индикаторы, которые интересовали моего клиента, пришли из специальной торговой системы..
Они хотели торговать каждый раз, когда два из этих пользовательских индикаторов пересекались, и только под определенным углом.

Руки вверх.
Когда я запачкал руки, я узнал, что программы на MQL4 имеют следующую структуру:
[Директивы препроцессора] [Внешние параметры] [Глобальные переменные] [Функция инициализации] [Функция деинитирования] [Функция запуска] [Пользовательские функции]
Функция запуска — это сердце каждой MQL4-программы, так как она выполняется каждый раз, когда рынок движется (следовательно, эта функция будет выполняться один раз за тик). Это тот случай, независимо от того, какой период вы используете.

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

Если вам интересно, вы можете найти полный, работающий код на GitHub.
Backtesting.
После того, как я построил свою алгоритмическую торговую систему, я хотел знать: 1), правильно ли она себя ведет, и 2) была ли какая-то хорошая стратегия торговли на Форекс.
Тестирование на истории (иногда пишется «бэк-тестирование») — это процесс тестирования конкретной (автоматизированной или нет) системы в соответствии с событиями прошлого.

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

Сравнив действия программы с историческими ценами, вы поймете, правильно ли она выполняется..
По результатам тестирования я проверил коэффициент возврата FX-робота на случайные промежутки времени; Излишне говорить, что я знал, что мой клиент не собирается разбогатеть на нем — показатели, которые он выбрал, наряду с логикой принятия решений, не были прибыльными. В качестве примера, вот результаты запуска программы через окно M15 для 164 операций:

Обратите внимание, что наш баланс (синяя линия) заканчивается ниже своей начальной точки.
Оптимизация параметров и ее ложь.
Хотя тестирование на истории заставило меня опасаться полезности этого FX-робота, я был заинтригован, когда начал играть с его внешними параметрами, и заметил большие различия в общем коэффициенте возврата. Эта конкретная наука известна как оптимизация параметров .
Я провел грубое тестирование, чтобы попытаться вывести значение внешних параметров для коэффициента возврата, и придумал что-то вроде этого:
Вы можете подумать (как и я), что вам следует использовать параметр A. Но решение не так просто, как может показаться.

Форекс Алгоритмический трейдинг: практическая история для инженеров.
Как вы, возможно, знаете, валютный рынок (Forex или FX) используется для торговли между валютными парами. Но вы можете не знать, что это самый ликвидный рынок в мире.
Несколько лет назад, руководствуясь моим любопытством, я сделал первые шаги в мир алгоритмической торговли на Форекс, создав демо-счет и разыгрывая симуляции (с поддельными деньгами) на торговой платформе Meta Trader 4..

После недели «торговли» я почти удвоил свои деньги. Вдохновленный моей собственной успешной алгоритмической торговлей, я углубился и в конечном итоге подписался на ряд форумов по FX. Вскоре я часами читал о алгоритмических торговых системах (наборах правил, определяющих, покупать или продавать), пользовательских индикаторах, настроениях на рынке и многом другом..

Мой первый клиент.
Примерно в это же время, по совпадению, я услышал, что кто-то пытается найти разработчика программного обеспечения для автоматизации простой торговой системы. Это было в те дни, когда я учился в колледже, когда я изучал параллельное программирование на Java (потоки, семафоры и все такое прочее). Я подумал, что эта автоматизированная система не может быть намного сложнее, чем моя продвинутая курсовая работа по науке о данных, поэтому я поинтересовался работой и попал на борт.
Клиенту требовалось программное обеспечение для алгоритмической торговли, созданное на основе MQL4, функционального языка программирования, используемого платформой Meta Trader 4 для выполнения действий с акциями..

Роль торговой платформы (в данном случае Meta Trader 4) заключается в обеспечении связи с брокером Forex. Затем брокер предоставляет платформу с информацией о рынке в режиме реального времени и выполняет ваши ордера на покупку / продажу. Для читателей, незнакомых с торговлей на Форекс, вот информация, которая предоставляется фидом данных:
Через Meta Trader 4 вы можете получить доступ ко всем этим данным с помощью внутренних функций, доступных на разных таймфреймах: каждую минуту (M1), каждые пять минут (M5), M15, M30, каждый час (H1), H4, D1, W1, MN.
Движение текущей цены называется тиковым.

Другими словами, тик — это изменение цены Bid или Ask для валютной пары. На активных рынках может быть множество тиков в секунду. На медленных рынках могут быть минуты без галочки. Тик — это сердцебиение робота на валютном рынке.

Когда вы размещаете заказ через такую ​​платформу, вы покупаете или продаете определенный объем определенной валюты. Вы также устанавливаете лимиты стоп-лосс и тейк-профит. Лимит стоп-лосса — это максимальное количество пипсов (колебания цены), которое вы можете позволить себе потерять, прежде чем отказаться от сделки. Лимит тейк-профита — это количество пипсов, которое вы накопите в свою пользу, прежде чем обналичить.
Алгоритмические торговые спецификации клиента были просты: ему нужен робот Forex, основанный на двух индикаторах.

Для справки, индикаторы очень полезны при попытке определить состояние рынка и принять торговые решения, так как они основаны на прошлых данных (например, самое высокое значение цены за последние n дней). Многие из них встроены в Meta Trader 4. Однако индикаторы, которые интересовали моего клиента, пришли из специальной торговой системы..
Они хотели торговать каждый раз, когда два из этих пользовательских индикаторов пересекались, и только под определенным углом.

Руки вверх.
Когда я запачкал руки, я узнал, что программы на MQL4 имеют следующую структуру:
[Директивы препроцессора] [Внешние параметры] [Глобальные переменные] [Функция инициализации] [Функция деинитирования] [Функция запуска] [Пользовательские функции]
Функция запуска — это сердце каждой MQL4-программы, так как она выполняется каждый раз, когда рынок движется (следовательно, эта функция будет выполняться один раз за тик). Это тот случай, независимо от того, какой период вы используете.

Форекс Алгоритмические Торговые Стратегии Мой Опыт Топтал Алгоритмы Стратегии Форекс

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

Если вам интересно, вы можете найти полный, работающий код на GitHub.
Backtesting.
После того, как я построил свою алгоритмическую торговую систему, я хотел знать: 1), правильно ли она себя ведет, и 2) была ли какая-то хорошая стратегия торговли на Форекс.
Тестирование на истории (иногда пишется «бэк-тестирование») — это процесс тестирования конкретной (автоматизированной или нет) системы в соответствии с событиями прошлого.

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

Сравнив действия программы с историческими ценами, вы поймете, правильно ли она выполняется..
По результатам тестирования я проверил коэффициент возврата FX-робота на случайные промежутки времени; Излишне говорить, что я знал, что мой клиент не собирается разбогатеть на нем — показатели, которые он выбрал, наряду с логикой принятия решений, не были прибыльными. В качестве примера, вот результаты запуска программы через окно M15 для 164 операций:

Обратите внимание, что наш баланс (синяя линия) заканчивается ниже своей начальной точки.
Оптимизация параметров и ее ложь.
Хотя тестирование на истории заставило меня опасаться полезности этого FX-робота, я был заинтригован, когда начал играть с его внешними параметрами, и заметил большие различия в общем коэффициенте возврата. Эта конкретная наука известна как оптимизация параметров .
Я провел грубое тестирование, чтобы попытаться вывести значение внешних параметров для коэффициента возврата, и придумал что-то вроде этого:
Вы можете подумать (как и я), что вам следует использовать параметр A. Но решение не так просто, как может показаться.

В частности, обратите внимание на непредсказуемость параметра A: для небольших значений ошибок его возвращение резко меняется. Другими словами, параметр A, скорее всего, будет переоценивать будущие результаты, поскольку любая неопределенность, любой сдвиг вообще приведет к ухудшению производительности..
Но действительно, будущее неопределенно! И поэтому возврат параметра А также является неопределенным.

На самом деле лучший выбор — это полагаться на непредсказуемость. Часто параметр с более низкой максимальной доходностью, но превосходной предсказуемостью (меньшими колебаниями) будет предпочтительнее параметра с высокой доходностью, но плохой предсказуемостью.
Единственное, в чем вы можете быть уверены, это то, что вы не знаете будущего рынка, и думать, что вы знаете, как рынок будет работать на основе прошлых данных, является ошибкой. В свою очередь, вы должны признать эту непредсказуемость в своих прогнозах Forex.

Это не обязательно означает, что мы должны использовать параметр B, потому что даже более низкие значения параметра A работают лучше, чем параметр B; это просто чтобы показать вам, что оптимизация параметров может привести к тестам, которые завышают вероятные будущие результаты, и такое мышление не очевидно.
Общие Форекс Алгоритмические Торговые Соображения.
Начиная с этого первого алгоритмического опыта торговли на Форексе, я создал несколько автоматизированных торговых систем для клиентов, и я могу вам сказать, что всегда есть место для изучения и дальнейшего анализа Форекс. Например, я недавно построил систему, основанную на поиске так называемых движений «большой рыбы»; то есть огромные изменения в пипсах в крошечные, крошечные единицы времени. Это тема, которая очаровывает меня.

Создание собственной системы симуляции FX — отличный вариант, чтобы узнать больше о торговле на рынке Форекс, а возможности безграничны. Например, вы можете попытаться расшифровать распределение вероятностей колебаний цен как функцию волатильности на одном рынке (например, EUR / USD) и, возможно, создать имитационную модель Монте-Карло, используя распределение по состоянию волатильности, используя любую степень Точность, которую вы хотите. Я оставлю это как упражнение для нетерпеливого читателя.

Мир Форекс иногда может быть подавляющим, но я надеюсь, что эта статья дала вам несколько советов о том, как начать свою собственную торговую стратегию Форекс.
Дальнейшее чтение.
В настоящее время существует обширный пул инструментов для создания, тестирования и улучшения автоматизации торговых систем: Trading Blox для тестирования, NinjaTrader для торговли, OCaml для программирования и многие другие..
Я много читал о загадочном мире валютного рынка. Вот несколько рецензий, которые я рекомендую для программистов и увлеченных читателей:

BabyPips: это отправная точка, если вы не знаете приседания о торговле на Форекс. Путь Черепахи, Кертис Фэйт: На мой взгляд, это Библия Форекс. Прочитайте его, если у вас есть некоторый опыт торговли и знания некоторых стратегий Форекс.

Технический анализ для профессионала в области трейдинга — Стратегии и методы для современных турбулентных глобальных финансовых рынков, автор Констанс Браун Программирование — Создание автоматизированных торговых систем на MQL для Meta Trader 4, Эндрю Р. Янг: Торговые системы — новый подход к системе Урбан Джекл и Эмилио Томазини: разработка и оптимизация портфолио: очень техническая, очень сфокусированная на FX-тестировании. Пошаговое внедрение многоагентной системы торговли валютой, Руи Педро Барбоса и Орландо Белу: Это очень профессионально, описывает, как вы можете создать торговую систему и тестовую платформу.
Понимание основ.
Что такое Forex трейдинг?

Торговля на рынке Форекс (или Форекс) — это покупка и продажа через валютные пары (например, доллары США и евро) на валютном рынке..
Как Форекс зарабатывает деньги?
Форекс брокеры зарабатывают деньги с помощью комиссий и сборов. Форекс-трейдеры зарабатывают (или теряют) деньги, исходя из своего времени: если они могут продавать достаточно высоко по сравнению с тем, когда они покупали, они могут получить прибыль.
Что такое тестирование торговой стратегии?

Тестирование на истории — это процесс тестирования конкретной стратегии или системы с использованием событий прошлого.
Что такое алгоритмический трейдинг?
Алгоритмическая торговля — это когда робот / программа использует набор правил, которые сообщают ему, когда покупать или продавать.

Похожие статьи

Оставить комментарий

XHTML: Разрешенные теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>