Тестер для бинарных опционов

Рейтинг брокеров бинарных опционов за 2020 год по надежности:
  • Бинариум
    Бинариум

    1 место! Самый лучший брокер бинарных опционов. Подходит для новичков! Получите бонус за регистрацию счета:

Как построить и протестировать стратегию бинарных опционов в Тестере Стратегий MetaTrader 4

Оглавление

1. Введение

В Тестере Стратегий MetaTrader 4 можно тестировать советники и индикаторы на исторических данных, но он не может обрабатывать бинарные опционы с временем истечения. Поэтому, когда мне потребовалось протестировать стратегию бинарных опционов в MetaTrader 4, я создал для этих целей утилиту Binary-Options-Strategy-Tester.

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

Идея состоит из следующих частей:

Это пошаговый пример того, как можно выстроить стратегию работы с бинарными опционами: индикатор (отмечен красным цветом на рисунке выше) через библиотеку Binary-Options-Strategy-Library связывается с Binary-Options-Strategy-Tester, далее стратегия размещает виртуальные ордера и обсчитывает результаты их работы с помощью бэк- и форвард-тестов.

2. Установка

Загрузите Binary-Options-Strategy-Tester из Маркета. Доступна и пробная конфигурация для тестирования стратегий бинарных опционов в Тестере Стратегий Metatrader 4. Стратегия будет вызывать функцию Binary-Options-Strategy-Tester (через библиотеку Binary-Options-Strategy-Library) для размещения виртуальных сделок. В связи с концепцией лицензионного соглашения MQL4, это будет работать только если продукт имеет рабочую лицензию. Поэтому вы должны будете либо приобрести платную версию продукта, либо демо-версию.

Загрузите Binary-Options-Strategy-Library и разместите ее в вашу папку \Include ( [ваш путь к MetaTrader 4] \ MQL4 \ Include). Бесплатная библиотека предоставляет несколько функций для построения стратегии бинарных опционов и для простой связи ее с продуктом Binary-Options-Strategy-Tester.

Загрузите бесплатный индикатор KVO и поместите его в папку Индикаторы \ Downloads ([ваш путь к MetaTrader 4] \ MQL4 \ Индикаторы \ Downloads. Этот индикатор используется в качестве примера доступа стратегии к внешним индикаторам и их ex4-файлам. Более подробная информация по этому индикатору находится здесь.

Теперь вы можете перейти в раздел 3 и построить пример кода самостоятельно или же загрузить пример, представленный ниже: поместите его (и его скомпилированный файл ex4) в папку \Indicators ([путь к вашему MetaTrader 4]\MQL4\Indicators).

3. Пример построения стратегии бинарных опционов

Теперь шаг за шагом будет описано, как построить пример стратегии бинарных опционов в составе индикатора, чтобы он мог взаимодействовать с утилитой Binary-Options-Strategy-Tester.

ТОП лучших русскоязычных брокеров бинарных опционов:
  • Бинариум
    Бинариум

    1 место! Самый лучший брокер бинарных опционов. Подходит для новичков! Получите бонус за регистрацию счета:

3.1 Определение стратегии

В первую очередь, мы должны определить стратегию и изменяемые значения (входные параметры). Документация MQL4 описывает все технические индикаторы, к которым можно обращаться через интерфейс iCustom: https://docs.mql4.com/indicators

Допустим, мы хотим создать простую стратегию на основе пересечения одной «быстрой» и одной «медленной» скользящей средней, которая будет торговать на следующей после пересечения свече. Документация описывает, как мы можем получить значения простой МА: https://docs.mql4.com/indicators/ima.

Мы хотим иметь возможность выбирать значения для периода усреднения МА (быстрой и медленной), цену, по которой рассчитывается МА, а также метод усреднения. Другие значения (такие, как символ, таймфрейм и сдвиг) зависят от тестируемой ситуации (к примеру, от символа, на котором запущен Тестер) и должны устанавливаться автоматически. Поэтому нам в сущности потребуются следующие переменные для МА:

Поскольку нам необходимы две МА (чтобы отмечать их пересечения), понадобятся следующие входные параметры со значениями по умолчанию:

3.2 Создание стратегии бинарных опционов

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

Откройте редактор MQL (в Metatrader 4 кликните на «Сервис» -> «Редактор MetaQuotes Language» или просто нажмите F4) и кликните на «Создать»:

Появится Мастер MQL. Выберите «Пользовательский Индикатор», чтобы создать пустой индикатор, и кликните на «Далее»:

Введите название, копирайт и ссылку на стратегию, а также входные параметры с их типами и значениями по умолчанию (начальными значениями), нажав кнопку «Добавить» и затем «Далее»:

Во вкладке обработчиков событий установите флажок «OnCalculate», поскольку нам нужно это событие для проверки стратегии на каждом тике. Нажмите «Далее»:

Во вкладке свойств отрисовки выберите флажок «Индикатор в отдельном окне», поскольку нам нужно будет отдельное окно для отладочной печати. Нажмите «Закончить»:

Появится заготовка кода вашего индикатора:

//+——————————————————————+
//| BinaryOptionsStrategyExample.mq4 |
//| Copyright 2020, __martin__ |
//| https://www.mql5.com/ru/users/__martin__ |
//+——————————————————————+
#property copyright «Copyright 2020, __martin__»
#property link «https://www.mql5.com/ru/users/__martin__»
#property version «1.00»
#property strict
#property indicator_separate_window
//— input parameters
input int period_fast= 5 ;
input int period_slow= 10 ;
input int method_both= 0 ;
input int applied_price_both= 0 ;
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit ()
<
//— Отображение индикаторных буферов

//—
return ( INIT_SUCCEEDED );
>
//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
<
//—

3.2.1 Входные параметры

Начальные входные параметры создаются Мастером MQL (см. 3.2, Создании стратегии бинарных опционов), а мы их усовершенствуем с помощью следующих шагов.

Чтобы избежать установки значения int для применяемой цены и метода усреднения для МА во входных параметрах, тип параметров method_both и applied_price_both изменяем с int на перечисление со значениями по умолчанию.

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

//— Входные параметры
input int period_fast = 5 ; // Значения быстрой MA
input int period_slow = 10 ; // Значения медленной MA
input ENUM_MA_METHOD method_both = MODE_SMA; // Метод для расчета МА
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE; // Цена для расчета МА

Эта модификация делает для входных параметров доступным выпадающее меню с позициями для выбора, а также включение меток :

3.2.2 Включение библиотеки Binary-Options-Strategy-Library

Если вы скачали библиотеку (см 2. Установка) и установили ее в папку \Include ([путь к Metatrader 4]\MQL4\Include), можете подключить ее следующим образом:

//+——————————————————————+
//| BinaryOptionsStrategyExample.mq4 |
//| Copyright 2020, __martin__ |
//| https://www.mql5.com/ru/users/__martin__ |
//+——————————————————————+
#property copyright «Copyright 2020, __martin__»
#property link «https://www.mql5.com/ru/users/__martin__»
#property version «1.00»
#property strict
#property indicator_separate_window

С помощью библиотеки мы дополним входные параметры еще двумя новыми:

  • На одну свечу размещается только одна сделка SELL или BUY
  • Проверка в рамках стратегии осуществляется только в начале новой свечи

3.2.3 Добавление CallStrategy()

Добавим вызов функции CallStrategy() в OnCalculate() вашего индикатора, чтобы обращаться к стратегии на каждом новом тике. CallStrategy() предоставляется библиотекой Binary-Options-Strategy-Library, которую вы уже подключили, как описано выше:

3.2.4 Имплементация СheckMyRules() и вспомогательной функции

В функции CheckMyRules(), которая вызывается с помощью библиотеки Binary-Options-Strategy-Library, реализованы условия стратегии и происходит размещение сделок посредством функции PlaceTrade() из этой же библиотеки. Значения обеих МА берутся из вспомогательной функции GetValuesForMA() и временно хранятся в переменных для того, чтобы сравнивать их с помощью условия if.

//— Входные параметры
input int period_fast = 5 ; // Значения для быстрой MA
input int period_slow = 10 ; // Значения для медленной MA
input ENUM_MA_METHOD method_both = MODE_SMA; // Метод для расчета MA
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE; // Цена для расчета MA

//+——————————————————————+
//| Разместите здесь ваши торговые условия — см. пример ниже. |
//| Тестер Стратегий вызывает эту функцию, чтобы разместить сделки. |
//| НЕ СЛЕДУЕТ: |
//| — Переименовывать функцию |
//| — Добавлять параметры функции, например, CheckMyRules(int a) |
//| — Изменять тип возвращаемого значения функции |
//+——————————————————————+
void CheckMyRules()
<

// Сохранить значения MA с shift=0 (текущая свеча) -> текущая свеча,
// Вызов вспомогательной функции GetValueForMA() для получения значений — см. вспомогательные функции ниже
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

// Сохранить значения MA с shift=1 (прошедшая свеча) -> последняя свеча,
// Вызов вспомогательной функции GetValueForMA() для получения значений — см. вспомогательные функции ниже
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

if (emaFast_Past > emaSlow_Past
&& emaFast_Current // Проверить, пересекаются ли медленная МА и быстрая МА
<
PlaceTrade( OP_SELL ); // Разместить сделку SELL для Тестера Стратегий, функция находится в BinaryOptionsStrategyFunctions.mqh
>

3.2.5 Отладочная печать

Функция PrintDebugValue() обеспечивает отладочную печать во время работы тестера. В примере ниже значения МА выводятся с их именами переменных в виде меток:

//— входные параметры
input int period_fast = 5 ; // Значения для быстрой MA
input int period_slow = 10 ; // Значения для медленной MA
input ENUM_MA_METHOD method_both = MODE_SMA; // Метод для расчета MA
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE; // Цена для расчета MA

//+——————————————————————————+
//| Разместить здесь ваши торговые условия — смотрите пример ниже. |
//| Тестер Стратегий вызывает эту функцию, чтобы разместить сделки. |
//| НЕ СЛЕДУЕТ: |
//| — Переименовать функцию |
//| — Добавить параметры функции, например, CheckMyRules(int a) |
//| — Изменить тип возвращаемого значения функции, например, int CheckMyRules() |
//+——————————————————————————+
void CheckMyRules()
<

Прочтите, это ВАЖНО:  Можно ли реально заработать на бинарных опционах советы и отзывы

// Сохранить значения MA с помощью shift=0 (текущая свеча) -> текущая свеча,
//вызов вспомогательной функции GetValueForMA() для получения значений — см. вспомогательные функции ниже
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

//Сохранить значения MA с помощью shift=1 (прошедшая свеча) -> последняя свеча,
//вызов вспомогательной функции GetValueForMA() для получения значений — см. вспомогательные функции ниже
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

PrintDebugValue( «emaSlow_Current: » ,( string )emaSlow_Current, 0 ); // Метка и значение на линии 0
PrintDebugValue( «emaFast_Current: » ,( string )emaFast_Current, 1 ); // Метка и значение на линии 1
PrintDebugValue( «emaSlow_Past: » ,( string )emaSlow_Past, 2 ); // Метка и значение на линии 2
PrintDebugValue( «emaFast_Past: » ,( string )emaFast_Past, 3 ); // Метка и значение на линии 3

if (emaFast_Past > emaSlow_Past
&& emaFast_Current // проверить, пересекаются ли медленная МА и быстрая МА
<
PlaceTrade( OP_SELL ); // Разместить сделку SELL для Тестера Стратегий, функция находится в BinaryOptionsStrategyFunctions.mqh
>

if (emaFast_Past && emaFast_Current // Проверить, пересекаются ли медленная МА и быстрая МА
<
PlaceTrade( OP_SELL ); // Разместить сделку BUY для Тестера Стратегий, функция находится в BinaryOptionsStrategyFunctions.mqh
>

//+———————————————————————+
//| Получить значения МА для периода, метод, цену для расчета и сдвиг. |
//| For details of iMA() see https://docs.mql4.com/indicators/ima |
//+———————————————————————+
double GetValueForMA( int _period, int _shift)
<
return iMA ( NULL , 0 ,_period, 0 ,method_both,applied_price_both,_shift);
>

3.2.6 Использование внешних индикаторов (ex4-файлов)

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

Скажем, мы хотели бы подключить сигнальную линию индикатора KVO https://www.mql5.com/ru/code/8677 и размещать сделки BUY, если она выше 0, и SELL — если она ниже 0. Загрузим индикатор и поместим компилированный файл (ex4) в папку \Indicators\Downloads ([путь к MetaTrader 4]\MQL4\Indicators\Downloads).

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

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

Затем мы должны узнать все входные параметры внешнего индикатора, к которому мы бы хотели получить доступ. При перетаскивании индикатора на график мы сможем открыть поле «Входные параметры»:

Допустим, мы бы хотели получить доступ к индикатору с начальными значениями 34, 55 и 13. Используем вспомогательную функцию (на основе iCustom), которая позволит нам получать значения индикатора с параметрами для буфера и сдвига, в то время как сдвиг 0 будет значением текущей свечи, сдвиг 1 — значением предыдущей свечи, сдвиг 2 — значением позапрошлой свечи, и т.д. В дополнение мы временно сохраним значения индикаторных буферов и доработаем if-условия стратегии:

//— Входные параметры
input int period_fast = 5 ; // Значения быстрой МА
input int period_slow = 10 ; // Значения медленной МА
input ENUM_MA_METHOD method_both = MODE_SMA ; // Метод расчета MA
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE ; // Цена для расчета MA

//+——————————————————————————-+
//| Разместите свои торговые правила здесь — см. пример ниже |
//| Тестер стратегий вызовет эту функцию для размещения сделок |
//| НЕ СЛЕДУЕТ: |
//| — Переименовывать функцию |
//| — Добавлять параметры функции (например, CheckMyRules(int a) |
//| — Изменять тип возвращаемого значения функции (например, int CheckMyRules()) |
//+——————————————————————————-+
void CheckMyRules()
<

// Сохранение значений МА с помощью shift=0 (текущая свеча) -> current candle,
// Вызов вспомогательной функции GetValueForMA() для получения значения — см. описание вспомогательной функции ниже
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

// Сохранение значений МА с помощью shift=1 (прошлая свеча) -> last candle,
// // Вызов вспомогательной функции GetValueForMA() для получения значения — см. описание вспомогательной функции ниже
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

// Сохранение сигнального значения (буфер 1) индикатора KVO с текущей свечи (shift 0)
double kvoSignal = GetValuesFromIndicator__KVO__( 1 , 0 );

PrintDebugValue( «emaSlow_Current: » ,( string )emaSlow_Current, 0 ); // Метка и значение на линии 0
PrintDebugValue( «emaFast_Current: » ,( string )emaFast_Current, 1 ); // Метка и значение на линии 1
PrintDebugValue( «emaSlow_Past: » ,( string )emaSlow_Past, 2 ); // Метка и значение на линии 2
PrintDebugValue( «emaFast_Past: » ,( string )emaFast_Past, 3 ); // Метка и значение на линии 3

if (emaFast_Past > emaSlow_Past
&& emaFast_Current // Проверка, пересекаются ли медленная МА и быстрая МА

&& kvoSignal 0 ) // Проверка, находится ли сигнальное значение KVO ниже нулевой линии

PlaceTrade( OP_SELL ); // Разместите сделку SELL для Тестера Стратегий, функция расположена в BinaryOptionsStrategyFunctions.mqh
>

if (emaFast_Past emaSlow_Past // Проверка, пересекаются ли медленная МА и быстрая МА
&& kvoSignal > 0 ) // Проверка, находится ли сигнальное значение KVO выше нулевой линии
<
PlaceTrade( OP_BUY ); // Разместите сделку BUY для Тестера Стратегий, функция расположена в BinaryOptionsStrategyFunctions.mqh
>

//+————————————————————————+
//| Получить значений МА для периода, метод, цену для расчета и сдвиг |
//| Для более подробно об iMA() см. https://docs.mql4.com/indicators/ima |
//+————————————————————————+
double GetValueForMA( int _period, int _shift)
<
return iMA ( NULL , 0 ,_period, 0 ,method_both,applied_price_both,_shift);
>

//+——————————————————————+
//| Пример получения значений от внешнего индикатора |
//| см. https://docs.mql4.com/indicators/icustom |
//| Параметры : |
//| int _buffer — индикаторный буфер (от 0) |
//| int _shift — значение сдвига; 0 = текущая свеча, 1 = предыдущая |
//+——————————————————————+
double GetValuesFromIndicator__KVO__( int _buffer, int _shift= 0 ) // Изменить «__KVO__» на имя индикатора
<

return (
iCustom (
NULL , // NULL для текущего таймфрейма, выбранного в тестере — НЕ ТРЕБУЕТСЯ ИЗМЕНЕНИЙ
0 , // 0 для текущего символа в тестере — НЕ ТРЕБУЕТСЯ ИЗМЕНЕНИЙ

//BEGIN EDIT
«\\Downloads\\KVO.ex4» , // Путь к файлам и имена файлов индикатора(*.ex4)
//BEGIN INDICATORS INPUTS
34 ,
55 ,
13 ,
//END FOR INPUTS
//END EDIT

_buffer, // Индекс буфера (начинаются с 0), _buffer передается через параметры функции — НЕ ТРЕБУЕТСЯ ИЗМЕНЕНИЙ
_shift // Сдвиг(0 для текущей свечи), _shift передается через параметры функции — НЕ ТРЕБУЕТСЯ ИЗМЕНЕНИЙ
)
);

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

3.3 Полный код

Ниже вы найдете полный код образца стратегии бинарных опционов, со всеми вышеописанными шагами, уже готовый к перетаскиванию в Тестер Стратегий бинарных опционов для полноценного тестирования и вывода результатов на график:

//+——————————————————————+
//| BinaryOptionsStrategyExample.mq4 |
//| Copyright 2020, __martin__ |
//| https://www.mql5.com/en/users/__martin__ |
//+——————————————————————+
#property copyright «Copyright 2020, __martin__»
#property link «https://www.mql5.com/en/users/__martin__»
#property version «1.00»
#property strict
#property indicator_separate_window

//+——————————————————————+
//| Разместите здесь ваши входные параметры — см. пример ниже |
//+——————————————————————+
//— Входные параметры
input int period_fast = 5 ; // Период быстрой МА
input int period_slow = 10 ; // Период медленной МА
input ENUM_MA_METHOD method_both = MODE_SMA ; // Метод для расчета МА
input ENUM_APPLIED_PRICE applied_price_both = PRICE_CLOSE ; // Цена для расчета MA
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit ()
<
//— Расположение индикаторных буферов

//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate ( const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
<
//—

CallStrategy(); // Вызов стратегии, функция расположена в библиотеке BinaryOptionsStrategyLibrary.mqh (она подключена выше)

//— возвращение значения prev_calculated для следующего вызова
return (rates_total);
>

//+——————————————————————————-+
//| Разместите свои торговые правила здесь — см. пример ниже |
//| Тестер стратегий вызовет эту функцию для размещения сделок |
//| НЕ СЛЕДУЕТ: |
//| — Переименовывать функцию |
//| — Добавлять параметры функции (например, CheckMyRules(int a) |
//| — Изменять тип возвращаемого значения функции (например, int CheckMyRules()) |
//+——————————————————————————-+
void CheckMyRules()
<

// Сохранение значений МА с помощью shift=0 (текущая свеча) -> current candle,
// Вызов вспомогательной функции GetValueForMA() для получения значения — см. вспомогательные функции ниже
double emaSlow_Current = GetValueForMA(period_slow, 0 );
double emaFast_Current = GetValueForMA(period_fast, 0 );

Прочтите, это ВАЖНО:  Пожиратели времени или почему я ничего не успеваю

// Сохранение значений MA с помощью shift=1 (прошедшая свеча) -> last candle,
// Вызов вспомогательной функции GetValueForMA() для получения значения — см. вспомогательные функции ниже
double emaSlow_Past = GetValueForMA(period_slow, 1 );
double emaFast_Past = GetValueForMA(period_fast, 1 );

// Сохранение сигнального значения (буфер 1) индикатора KVO с текущей свечи (shift 0)
double kvoSignal = GetValuesFromIndicator__KVO__( 1 , 0 );

PrintDebugValue( «emaSlow_Current: » ,( string )emaSlow_Current, 0 ); // Метка и значение на линии 0
PrintDebugValue( «emaFast_Current: » ,( string )emaFast_Current, 1 ); // Метка и значение на линии 1
PrintDebugValue( «emaSlow_Past: » ,( string )emaSlow_Past, 2 ); // Метка и значение на линии 2
PrintDebugValue( «emaFast_Past: » ,( string )emaFast_Past, 3 ); // Метка и значение на линии 3

if (emaFast_Past emaSlow_Past // Проверка, пересекаются ли медленная и быстрая МА
&& kvoSignal > 0 ) // Проверка, находится ли сигнальное значение KVO выше нулевой линии
<
PlaceTrade( OP_BUY ); // Разместить сделку BUY для Тестера Стратегий, функция расположена в BinaryOptionsStrategyLibrary.mqh
>

//+———————————————————————+
//| Получить значения МА для периода, метод, примененную цену и сдвиг |
//| Подробнее об iMA() см. https://docs.mql4.com/indicators/ima |
//+———————————————————————+
double GetValueForMA( int _period, int _shift)
<
return iMA ( NULL , 0 ,_period, 0 ,method_both,applied_price_both,_shift);
>

//+—————————————————————————+
//| Пример получения значений от внешних индикаторов, |
//| см. https://docs.mql4.com/indicators/icustom |
//| Параметры: |
//| int _buffer — индикаторный буфер (начинается с 0) |
//| int _shift — значения сдвига; 0 = текущая свеча, 1 = предыдущая свеча |
//+—————————————————————————+
double GetValuesFromIndicator__KVO__( int _buffer, int _shift= 0 ) // Изменить «__KVO__» на имя индикатора
<
return (
iCustom (
NULL , // NULL для текущего таймфрейма, выбранного в Тестере — ИЗМЕНЕНИЙ НЕ ТРЕБУЕТСЯ
0 , // 0 для текущего символа, выбранного в Тестере — ИЗМЕНЕНИЙ НЕ ТРЕБУЕТСЯ

//BEGIN EDIT
«\\Downloads\\KVO.ex4» , // Имя индикатора (*.ex4 file) и путь к нему
//BEGIN INDCATORS INPUTS
34 ,
55 ,
13 ,
//END FOR INPUTS
//END EDIT

_buffer, // Буферный индекс (начинается с 0), _buffer передается через параметры функции — ИЗМЕНЕНИЙ НЕ ТРЕБУЕТСЯ
_shift // Сдвиг (0 для текущей свечи), _shift передается через параметры функции — ИЗМЕНЕНИЙ НЕ ТРЕБУЕТСЯ
)
);
>
//+——————————————————————+

4. Запуск бэк-теста (видео)

Нижеследующее видео показывает, как запустить бэк-тест в вашей стратегии бинарных опционов в Тестере Стратегий MetaTrader 4:

  • Запустите Binary-Options-Strategy-Tester в Тестере Стратегий MetaTrader 4 и установите входные параметры
  • Перетащите ваш индикатор стратегии на график, выставьте входные параметры и проверьте, выставлено ли «Разрешить импорт из внешних экспертов во вкладке «Общие»».
  • Перетащите ваш используемый индикатор с его входными параметрами на график, чтобы увидеть, как меняются его значения, пока запущен тестер (это опциональный пункт программы).
  • Сохраните все настройки в шаблоне, чтобы запустить тест со всеми этими настройками опять — используйте кнопку паузы в Тестере Стратегий (это тоже необязательно).
  • Теперь вы можете посмотреть результаты работы вашей стратегии бинарных опционов на графике Тестера Стратегий.

5. Запустите форвард-тест

Чтобы запустить форвард-тестирование, просто перетащите утилиту Binary-Options-Strategy-Tester и ваш индикатор стратегии на ваш демо-график или на график реального счета вашего брокера, вместо того, чтобы использовать Тестер Стратегий.

  • Перетащите утилиту Binary-Options-Strategy-Tester на демо-графмк или на живой счет и установите входные параметры.
  • Перетащите ваш индикатор стратегии на график, выставьте входные параметры и проверьте, выставлено ли разрешение использовать параметры внешних экспертов в таблице условий.
  • Перетащите используемый вами индикатор с его параметрами на график, чтобы посмотреть, как изменяются его условия, пока идет форвард-тест.
  • Сохраните все настройки в шаблоне, чтобы потом запустить тест снова.
  • Теперь вы можете посмотреть результат работы вашей стратегии бинарных опционов на графике демонстрационного или реального счета.

6. Часто задаваемые вопросы

Вопрос: Почему вы показываете пример неприбыльной стратегии бинарных опционов?
Ответ: Это всего лишь пример того, как выстроить стратегию, связав ее индикатор с утилитой Binary-Options-Strategy-Tester, чтобы протестировать ее на рыночных условиях и доработать.

Вопрос: Утилита Binary-Options-Strategy-Tester прекращает работу с сообщением об ошибке «Array out of range» после того, как достигается определенное количество потерь. Почему?
Ответ: После некоего количества потерь — скажем, x, в работе Binary-Options-Strategy-Tester может выдать ошибку, чтобы остановить Тестер и проанализировать ситуацию на графике. Если вам этого не нужно — просто отключите эту опцию в настройках.

Вопрос: Некоторые стрелки-указатели, казалось бы, не обрабатываются утилитой Binary-Options-Strategy-Tester. Почему?
Ответ: Чтобы оставить некоторые различия между демо-версией и версией для продажи. В демонстрационном варианте не все ордера обрабатываются тестером. Необрабатываемые ордера обозначаются зелеными стрелками.

Вопрос: На графике не появляется стрелка после того, как я перетащил мой индикатор с работающей стратегией. Что случилось?
Ответ: Вы должны включить галочку «Разрешить импорт из внешних экспертов» перед перетаскиванием вашего индикатора стратегии на график (сообщение в логе будет показывать вам в этом случае ошибку).

Вопрос: Я не вижу результатов во вкладках Тестера Стратегий «Результаты», «График», «Отчет». Где я могу увидеть результаты тестирования?
Ответ: Тестер Стратегий MetaЕrader 4 не может обрабатывать бинарные опционы, поэтому эти вкладки не могут быть использованы. Поэтому наша утилита вычисляет все выигрыши и проигрыши и распечатывает результаты прямо на графике.

7. Разное

Эта утилита была разработана, поскольку мне нужна была возможность тестировать стратегии бинарных опционов в автоматическом режиме в MetaTrader 4 для долгосрочных периодов и делать форвард-тесты на брокерских чартах. Я провел много времени над разработкой концепции и над имплементацией утилиты Binary-Options-Strategy-Tester, а также над изучением ее документации. Может быть, есть и более удобный путь, чтобы сделать это, и может быть, некоторые улучшения сделают утилиту более подходящей для вас. Поэтому пожалуйста, не стесняйтесь связаться со мной, если у вас есть идеи по улучшению этой работы.

Тестер стратегий для бинарных опционов

Одной из главных составляющих успешной торговли бинарными опционами является прибыльная торговая система. Готовых стратегий в сети можно найти немало. Но насколько им можно доверять? Даже если в той или иной статье приводятся аргументы в пользу высокой эффективности ТС, верить на слово нельзя. Любую систему торговли необходимо проверить на работоспособность. Только позитивные результаты тестирования могут позволить принять решение о применении стратегии в реальной торговле. На сегодняшний день существует три варианта оценки торговой стратегии. «На глаз» – визуальный просмотр истории. Тестирование ТС на демо счете. Проверка системы торговли в тестере стратегий. Первый вариант не может дать объективного результата. Демо счет – достойный вариант проверки качества торговой стратегии, но он требует больших затрат времени. А вот тестер позволяет выполнить столь важную работу относительно быстро и качественно. В этой статье я хочу предложить вам очень полезный инструмент. Это тестер стратегий для бинарных опционов BOsimulator.

Установка тестера стратегий в МТ4

Ничего сложного в этом нет, потому что BOsimulator – это не что иное, как индикатор. А устанавливать индикатор в терминал может любой трейдер. Ну а для тех, кто ещё не успел освоить этот процесс, я подскажу порядок действий. Файл индикатора (ссылку дам в конце статьи) копируем. Далее в МТ4 идем по такому пути: «Файл» – «Открыть каталог данных» – «MQL4» – «Indicators». И вставляем в эту папку скопированный раннее файл индикатора. Перезагружаем торговый терминал. BOsimulator появится в списке индикаторов, который называется «Пользовательский». На графике торгового инструмента он будет выглядеть так:

После этого необходимо произвести еще небольшое действие. В МТ4 идем в «Сервис» – «Настройки» и открываем окно «Советники». Оно должно выглядеть так, как на моем скрине. Обратите внимание на галочки.

Далее в верхнем меню терминала жмем «Тестер стратегий». Выбираем «Индикатор» и находим тот, который нам нужен – BOsimulator.

Информационное окно тестера стратегий

Теперь остановимся на информационном окне, которое отображается на графике цены. В нем вы можете устанавливать время экспирации и объем сделки. Внизу этого окна указан стартовый и текущий баланс, а также размер выплат в процентах. ITM, OTM, ATM – это обозначения типов сделок. Если значения о стартовом капитале и проценте вознаграждения, которые стоят по умолчанию, не устраивают, то их можно изменить в настройках индикатора. Там же можно подобрать другой шрифт, если есть такое желание. После покупки опциона на графике появится подробные данные о сделке, что тоже очень удобно.

Тестирование ТС для бинарных опционов

Доступно два способа проведения тестирования. Первый – на истории. На график необходимо установить индикаторы, которые применяются в стратегии, и затем покупать опционы по сигналам. И второй вариант – покупка опционов в реальном времени. В этом случае, Bosimulator используется в качестве торгового тренажера. Такое тестирование торговой стратегии позволяет выявить все ее плюсы и минусы. Недостатки можно попробовать устранить. Для этого надо оптимизировать настройки индикаторов или проверить работу стратегии на другом торговом инструменте.

Прочтите, это ВАЖНО:  Optionweb – отзывы о брокере

Скачать тестер стратегий для бинарных опционов:

Как протестировать свою систему, рассчитанную на торговлю бинарными опционами?

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

Что такое тест стратегии на бинарных опционах?

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

Выбор ТС зависит от следующих факторов:

  • торгуемые инструменты;
  • размер депозита;
  • размер желаемой прибыли.

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

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

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

Тест стратегии для бинарных опционов нужен в обязательном порядке даже для профессионалов трейдинга по следующим причинам:

  1. Даже если ТС была построена опытным разработчиком или самостоятельно, в ней может быть ошибка.
  2. При покупке торговых систем или их при заимствовании на бесплатных ресурсах трейдеры могут столкнуться с мошенниками, которые намеренно разрабатывают неэффективные системы для «слива» депозита».
  3. Не редкость, когда стратегии могли быть ранее эффективными, однако конъюнктура рынка постоянно изменяется, и таким образом даже лучшие системы становятся нерентабельными.

Существует несколько методов обкатки своих ТС. Выбор ее зависит от того, каким временем он располагает и на какой стиль торговли рассчитана ТС.

Методы тестирования

Итак, трейдер выбрал актив, время, в которое он хочет торговать, и подобрал или построил под эти параметры ТС. Протестировать работу системы можно следующими способами:

  • на демо-счете;
  • на реальном счете с минимальными инвестициями;
  • с помощью специальных симуляторов-индикаторов.

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

Тестирование на демо-счете

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

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

Бесплатный демо-счет доступен у таких брокеров:

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

При тестировании на демо-счете трейдеру нужно обращать внимание на такие факторы:

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

Опробование ТС происходит следующим образом:

  1. Трейдер должен заключать сделки, исключительно следуя своей ТС, торговому плану и приемам мани-менеджмента.
  2. Отработка ТС в демо-версии должна осуществляться не менее нескольких дней, но не больше 2 недель.
  3. По сделкам должен вестись журнал, где будут отмечаться важные параметры – размер инвестиции, сроки экспирации.
  4. Каждая убыточная позиция должна быть тщательно проанализирована.
  5. После окончания периода тестинга трейдер должен подсчитать процентное соотношение прибыльных и убыточных сделок.
  6. Если прибыльных опциона оказалось меньше 60%, то стоит пересмотреть систему, потому что она недостаточно эффективна.

Если же процент профитных опционов оказался больше 60%-65, то в принципе, можно переносить ее на реальный счет. Стоит понимать, чтобы стратегия показала себя действительно эффективно, по ней нужно заключать не менее сотни сделок. Нельзя забывать и о подведении суммарных итогов, то есть понятно, что сумма профита должна оказаться больше, чем первоначальный депозит.

Тестирование стратегии на реальном счете с минимальными депозитами

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

Тест стратегии на бинарных опционах на реальном счете можно проводить при следующих условиях:

  1. Если есть возможность инвестировать в одну сделку от 1$ до 5$.
  2. Трейдер имеет большой опыт в торговле и уже не раз тестировал ТС на реальном счете.
  3. Торговец располагает достаточной суммой депозита, поэтому небольшая просадка из-за ошибки в системе не слишком «ударит» по капиталу.
  4. Трейдер параллельно торгует уже на эффективной ТС, и в случае кризисной ситуации сможет перекрыть просадку своей прибылью.

Не все брокеры предлагают такую сумму инвестиций. Но трейдеры могут выбрать среди таких компаний:

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

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

Индикаторы-симуляторы для тестирования на исторических данных

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

BOsimulator

Этот тренажер подойдет абсолютно под любую стратегию и актив. Скачивается и устанавливается симулятор традиционно в папку «Советники».

Работать с ним можно двумя способами:

  1. В режиме реального времени, то есть на текущих котировках, по принципу демо-счета.
  2. На исторических данных.

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

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

Работает тренажер следующим образом:

  1. Трейдеру стоит выбрать режим торговли (демо или на исторических данных).
  2. Трейдер должен применить свою стратегию, то есть наложить на график индикатор и другие инструменты.
  3. После этого заключать сделки по своим сигналам и видению рынка.
  4. В конце тестирования трейдеру будет выведена информации о его торговле – процент прибыльных и убыточных сделок.

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

TesterBO

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

С его помощью можно узнать такую информацию:

  1. Количество прибыльных и убыточных сделок, а также их объем в процентном соотношении.
  2. Сумму профита и убытка.
  3. Количество непрерывных выигрышей или проигрышей.
  4. Рассчитывает максимальный и минимальный баланс.
  5. Рассчитывает прибыль и убыток по системе Мартингейл.

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

Важно! Все программы для опробования своих ТС разработаны под платформу MetaTrader4. Тем, кто торгует на веб-платформах, придется воспользоваться демонстрационным счетом.

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

Брокер бинарных опционов, выдающий бонусы за регистрацию:
  • Бинариум
    Бинариум

    1 место! Самый лучший брокер бинарных опционов. Подходит для новичков! Получите бонус за регистрацию счета:

Добавить комментарий