Алгоритм написания торгового робота. Создание простого торгового робота для работы на Форекс


AndreySitaev 16 ноября в К моему удивлению, робот не приносит миллионов, даже торгуя виртуально. Причина очевидна: Так как параметров настройки у алгоритм написания торгового робота достаточно, перебрать все их возможные комбинации в поисках лучшей, слишком затратная по времени задача. В свое время, решая задачу оптимизации, я не нашел обоснованного выбора алгоритма поиска квазиоптимального вектора параметров торгового робота.

Потому решил самостоятельно сравнить несколько алгоритмов… Краткая постановка задачи оптимизации Имеем торговый алгоритм. Входные данные — история цен часового интервала за 1 год наблюдений.

алгоритм написания торгового робота

Выходные данные — P — прибыль либо убыток, скалярная величина. У торгового алгоритма 4 настраиваемых параметра: Каждому из параметров мы задаем диапазон и фиксированный шаг изменения, всего по 20 значений для каждого из параметров. Таким образом, мы можем искать максимум прибыли P для одного параметра на одном массиве входных данных: Для большинства торговых алгоритмов, однако, требуется на несколько порядков больше времени для проведения одного теста.

Краткая постановка задачи оптимизации

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

заработок в интернете на просмотрах роликов

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

К примеру, на момент покупки, алгоритм написания торгового робота тройской унции золота составляла На момент последующей продажи закрытии сделки цена выросла до Прибыль по этой сделке работа бизнес брокером 4 USD.

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

Главное, что оба этих робота могут должны уметь быть протестированы на исторических данных. Алгоритмы должны быть детерминированы: Более подробно о торговом роботе можно почитать в следующем спойлере: Две тонкие ломаные линии, красная и синяя — усредненные значения цены с периодами усреднения 5 и 10 соответственно.

Иначе говоря, скользящие средние Moving Average, MA с периодами 5, Например, для того, чтобы рассчитать ординату последней правой точки красной кривой, я взял алгоритм написания торгового робота написания торгового робота из последних 5 значений цены. На рисунке выше робот совершит 5 сделок: Роботу разрешено открывать неограниченное количество сделок.

Простой торговый робот

Например, алгоритм написания торгового робота какой-то момент робот может располагать несколькими незавершенными покупками и продажами одновременно. Правило закрытия сделки Робот закрывает сделку, как только: Предположим, StopLoss равен 0. Как только цена золота вырастет до значения Да, робот предельно прост.

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

Очевидная альтернатива полному перебору — выбор векторов параметров по определенной стратегии. Рассматриваем лишь часть всех возможных комбинаций в поисках лучшей, в которой ЦФ приближается к наивысшему либо наименьшему, в зависимости от того, какую ЦФ мы выбрали и какого результата мы добиваемся значению.

Конструктор торговых роботов IndiQuix - написание торгового алгоритма "Пирамида по PSAR"

Мы рассмотрим три алгоритма поиска квазиоптимального значения ЦФ. Для каждого алгоритма установим ограничение в 40 тестов из возможных комбинаций. Метод Монте-Карло или случайный выбор M некоррелированных векторов из числа возможного количества наборов, равного N. Метод, вероятно, самый простой из возможных. Будем использовать его как отправную точку для последующего сравнения с остальными методами оптимизации.

Как написать торгового робота

Все остальные параметры фиксированы и не подвергаются оптимизации. ЦФ прибыль достигает максимума 0. Чтобы гарантированно найти максимальное значение прибыли, нам потребуется провести 20 итераций тестирования. Альтернатива — провести меньшее количество испытаний торгового робота со случайно выбранным значением параметра M на интервале [9, 20]. Оптимизация одного из четырех параметров нашего торгового робота, при фиксированных значениях остальных параметров, не позволяет нам увидеть всей картины.

Возможно, максимум ЦФ, равный 0. Вот так изменяется зависимость прибыли от периода скользящей средней при алгоритм написания торгового робота значениях параметра TakeProfit алгоритм написания торгового робота интервале [0.

Метод Монте-Карло: По masterforex отзывы осям отложены значения параметров T TakeProfit и M период скользящей алгоритм написания торгового роботатретья ось — значение прибыли. Выбирая произвольные точки на плоскости, в данном примере алгоритм не нашел оптимального значения, но подобрался довольно близко к нему: Насколько эффективен метод Монте-Карло в поиске максимума ЦФ? Проведя 1 итераций поиска максимума ЦФ на исходных данных из примера выше, я получил следующую статистику: Очевидно, в сравнении методов параметрической оптимизации торговых роботов одна выборка — не показатель.

Создание торгового робота: от А до Я

Но пока достаточно и этой оценки. Переходим к следующему методу — метод градиентного спуска. Метод градиентного спуска Формально, как следует из названия, метод применяется для поиска минимума ЦФ. Согласно методу, мы выбираем стартовый точку с координатами [x0, y0, z0, …]. На примере алгоритм написания торгового робота одного параметра это может быть алгоритм написания торгового робота выбранная точка: Далее следуют три простых шага: Если раньше мы вычисляли Алгоритм написания торгового робота в двух соседних точкахалгоритм написания торгового робота мы проверяем 4 точки: Метод, определенно, алгоритм написания торгового робота, когда форекс скрипт для пипсовки ЦФ на тестируем пространстве всего один экстремум.

Урок 1 - Как правильно написать алгоритм торгового робота.

Если экстремумов несколько, поиск придется неоднократно повторять, чтобы повысить вероятность нахождения глобального экстремума: Алгоритм написания торгового робота нашем примере мы ищем максимум ЦФ. Все тот же пример, прибыль торгового робота как функция от периода скользящей средней и значения TakeProfit, одна итерация: В данном случае был найден локальный экстремум, далекий от глобального максимума ЦФ.

Пример нескольких итераций поиска экстремума ЦФ методом градиентного спуска, значение ЦФ рассчитано 40 раз 40 точек из возможных: Теперь сравним эффективность поиска глобального максимума ЦФ прибыли на наших исходных данных алгоритмами Монте-Карло и градиентного спуска.

алгоритм написания торгового робота надежный брокер финам

В каждом случае проводится 40 испытаний расчетов ЦФ. Произведено по 1 итераций оптимизации каждым из методов: Монте-Карло среднее из полученных квазиоптимальное значение ЦФ 0. Но не спешим сбрасывать его со счетов.

  1. Создание торгового робота
  2. Брокер олимптрейд
  3. Создание торговых роботов: 11 инструментов разработки / Блог компании ITI Capital / Хабр
  4. Реальные деньги на на форекс forex
  5. Торговые роботыФорекс Ниже показан процесс создания простого торгового робота для работы в терминале MetaTrader4.
  6. Итак, долгожданное продолжение первой части.

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

Очевидно, метод градиентного спуска, как алгоритм написания торгового робота, дает нам значения ЦФ в алгоритм написания торгового робота экстремума. Метод Монте-Карло, скорее, бьет по площадям.

Создание простого торгового робота для работы на Форекс

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

Но это дополнительные тесты. Вдобавок, что если доходность стратегии упадет при незначительном изменении настроек? Очевидно, придется повторять процесс тестирования. Нам был бы полезен алгоритм, который, одновременно с поиском экстремума ЦФ позволял бы оценить устойчивость торговой стратегии к изменению настроек в узком диапазоне относительно найденных пиков.

алгоритм написания торгового робота

Например, искать не непосредственно максимум ЦФ а средневзвешенное значение, учитывающее соседние значения целевой функции, где вес обратно пропорционален расстоянию до соседнего значения для оптимизации двух параметров x, y и целевой функции P: Иначе говоря, первые N тестов проводятся на случайных некоррелированных векторах входных параметров. Из них отбираются M лучших результатов.

В окрестностях этих испытаний плюс — минут L к каждой из координат проводится еще K испытаний. Для нашего примера точек, 40 испытаний всего алгоритм написания торгового робота И снова сравним эффективность теперь уже 3-х алгоритмов оптимизации: