Технический взгляд. Тестирование, оптимизация, magic number
Автор: Алексей Сурков
Опубликовано: 3212 дней назад (11 марта 2016)
Блог: ASSurkov ProForex
Рубрика: Без рубрики
|
0 Голосов: 0 |
СКАЧАТЬ АРХИВ С СОВЕТНИКОМ С МОЕГО САЙТА, ПОДРОБНЕЕ>>>
Многие сталкиваются с проблемой при покупке индикаторов или советников в маркете MQL5. С одной стороны, вроде и продукт по скринам неплохой, но все же доверия нет, пока сам не попробуешь его. У некоторых продуктов есть т.н. Демо версии, которые работают в некоторых ограниченных условиях. Например, я раньше выкладывал к своим индикаторам бесплатные версии, которые не отображают их данных на последних 25 свечах. Делается это просто добавлением условия if i>25.... То есть, если номер свечи больше 25, то индикатор в этих значениях работает. А при последних свечах номер их будет меньше 25 ( i<25) и тут индикатор не отображается.
Но протстировать Вы можете бесплатно абсолютно любой платный продукт. Для этого его нужно скачать, нажав СКАЧАТЬ ТРИАЛ в маркете. А дальше открываете Метатрейдер, Тестер стратегий и выбираете советник из раздела Market (он появится после первого скачивания). А далее тестируете сколько угодно.
Аналогичная история и с индикаторами. Скачать Триал, а далее будет отображение его данных в тестере с отработкой графика, т.н. визуализацией. Надо сказать, достаточно медленная вещь.
При этом тестер нам дает хорошую возможность оптимизации советников, самостоятельно подбирая параметры. Эту возможность рассмотрим на примере простого советника, который начали писать в прошлом выпуске. Советник Sovetnik RSI (Скачать) сейчас имеет следующие входные параметры:
input int Magic =66; - меджик намба
input int TakeProfit =500; - размер тейка в пунктах
input int STOP =500; - размер стопа в пунктах
input int RSI_Zone =30; - размер зоны перекупленности/перепроданности индикатора RSI
input int RSI_Period =14; - период RSI
input double Lots =0.01; - объем сделки
Суть советника простая. Как только значение индикатора заходит в соответствующую зону (меньше 30 и больше 70 допустим), открывается сделка с заданным тейком и стопом. Добавлена здесь проверка ордера по меджику. Реализована она следующим образом:
for (int r=OrdersTotal()-1; r>=0; r--)
{if (!OrderSelect( r, SELECT_BY_POS ))
{Print("OrderSelect( ", r, ", SELECT_BY_POS ) - Error #",GetLastError());
continue;}
if (OrderMagicNumber()==Magic)
{OpenOrd++;}}
То есть, если среди открытых ордеров есть ордер с нашим меджиком, то к переменной OpenOrd прибавляется единица. И вот ордер открывается только при условии, что на счете нет открытых ордеров этим советником:
if(OpenOrd<1) и дальше идет проверка иных условий на открытие.
Можно ли зарабатывать с такой торговой идеей на одном индикаторе? Можно все. Главное, иметь правильные параметры. И теперь возвращаемся к оптимизации. Для ее запуска в тестере ставим галочку на параметр Оптимизация и настраиваем ее в разделе Свойства эксперта:
optimiz
Мы оптимизируем 4 параметра: TakeProfit, STOP, RSI_Zone, RSI_Period. Допустим последний будет изменяться от 10 до 16 с шагом 1. График брали EURUSD, M5, с 09.02.2016 по 09.03.2016. Тестировали на счете FBS.
По итогам оптимизации можем скачать .htm файл с ее результатами (Смотреть). Мне же оптимальным видится вариант №333:
Здесь получается средняя доходность (24 дол.) при нормальной просадке (1,73%) и ЗНАЧИТЕЛЬНОМ количестве сделок (137). График теста при этих параметрах TakeProfit=250, STOP=200, RSI_Zone=31, RSI_Period=13 будет следующий:
При этом отмечу, что отличия на разных периодах, парах могут колоссально отличаться. Так, на GBPUSD, М5, с сентября 2015 г. и настройками TakeProfit=500, STOP=480, RSI_Zone=26, RSI_Period=14 выглядит так:
СКАЧАТЬ АРХИВ С СОВЕТНИКОМ С МОЕГО САЙТА, ПОДРОБНЕЕ>>>
Многие сталкиваются с проблемой при покупке индикаторов или советников в маркете MQL5. С одной стороны, вроде и продукт по скринам неплохой, но все же доверия нет, пока сам не попробуешь его. У некоторых продуктов есть т.н. Демо версии, которые работают в некоторых ограниченных условиях. Например, я раньше выкладывал к своим индикаторам бесплатные версии, которые не отображают их данных на последних 25 свечах. Делается это просто добавлением условия if i>25.... То есть, если номер свечи больше 25, то индикатор в этих значениях работает. А при последних свечах номер их будет меньше 25 ( i<25) и тут индикатор не отображается.
Но протстировать Вы можете бесплатно абсолютно любой платный продукт. Для этого его нужно скачать, нажав СКАЧАТЬ ТРИАЛ в маркете. А дальше открываете Метатрейдер, Тестер стратегий и выбираете советник из раздела Market (он появится после первого скачивания). А далее тестируете сколько угодно.
Аналогичная история и с индикаторами. Скачать Триал, а далее будет отображение его данных в тестере с отработкой графика, т.н. визуализацией. Надо сказать, достаточно медленная вещь.
При этом тестер нам дает хорошую возможность оптимизации советников, самостоятельно подбирая параметры. Эту возможность рассмотрим на примере простого советника, который начали писать в прошлом выпуске. Советник Sovetnik RSI (Скачать) сейчас имеет следующие входные параметры:
input int Magic =66; - меджик намба
input int TakeProfit =500; - размер тейка в пунктах
input int STOP =500; - размер стопа в пунктах
input int RSI_Zone =30; - размер зоны перекупленности/перепроданности индикатора RSI
input int RSI_Period =14; - период RSI
input double Lots =0.01; - объем сделки
Суть советника простая. Как только значение индикатора заходит в соответствующую зону (меньше 30 и больше 70 допустим), открывается сделка с заданным тейком и стопом. Добавлена здесь проверка ордера по меджику. Реализована она следующим образом:
for (int r=OrdersTotal()-1; r>=0; r--)
{if (!OrderSelect( r, SELECT_BY_POS ))
{Print("OrderSelect( ", r, ", SELECT_BY_POS ) - Error #",GetLastError());
continue;}
if (OrderMagicNumber()==Magic)
{OpenOrd++;}}
То есть, если среди открытых ордеров есть ордер с нашим меджиком, то к переменной OpenOrd прибавляется единица. И вот ордер открывается только при условии, что на счете нет открытых ордеров этим советником:
if(OpenOrd<1) и дальше идет проверка иных условий на открытие.
Можно ли зарабатывать с такой торговой идеей на одном индикаторе? Можно все. Главное, иметь правильные параметры. И теперь возвращаемся к оптимизации. Для ее запуска в тестере ставим галочку на параметр Оптимизация и настраиваем ее в разделе Свойства эксперта:
optimiz
Мы оптимизируем 4 параметра: TakeProfit, STOP, RSI_Zone, RSI_Period. Допустим последний будет изменяться от 10 до 16 с шагом 1. График брали EURUSD, M5, с 09.02.2016 по 09.03.2016. Тестировали на счете FBS.
По итогам оптимизации можем скачать .htm файл с ее результатами (Смотреть). Мне же оптимальным видится вариант №333:
Здесь получается средняя доходность (24 дол.) при нормальной просадке (1,73%) и ЗНАЧИТЕЛЬНОМ количестве сделок (137). График теста при этих параметрах TakeProfit=250, STOP=200, RSI_Zone=31, RSI_Period=13 будет следующий:
При этом отмечу, что отличия на разных периодах, парах могут колоссально отличаться. Так, на GBPUSD, М5, с сентября 2015 г. и настройками TakeProfit=500, STOP=480, RSI_Zone=26, RSI_Period=14 выглядит так:
СКАЧАТЬ АРХИВ С СОВЕТНИКОМ С МОЕГО САЙТА, ПОДРОБНЕЕ>>>
Нет комментариев. Ваш будет первым!