Примеры: Перенос кода индикатора в код эксперта. Заключение

 

New article Перенос кода индикатора в код эксперта. Заключение has been published:

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

Author: Nikolay Kositsin

 
Николай, спасибо Вам за такие статьи. Думаю, не я один учусь по ним решению нетривиальных проблем, которые НИГДЕ не описываются так профессионально, как это делаете Вы.
 
Спасибо за очень полезные статьи, с помощью которых желающие самостоятельно смогут решить массу технических вопросов!
Единственное хотелось бы уточнить что автор имел в виду под следующей фразой?
Эксперт, однозначно, не убыточный и при хорошей оптимизации показывает при всей своей простоте весьма приличные результаты.
Вы могли бы привести значения параметров, при которых он у Вас показывает прибыль, а также результаты тестера при этом?
Я специально глубокую оптимизацию не проводил, но по некоторым результатам предварительной оптимизации за последние полгода эксперт показывает прибыль в районе 0 на GBPJPY, производя от 10 до 30 сделок за указанный промежуток времени.
 
solandr:
Спасибо за очень полезные статьи, с помощью которых желающие самостоятельно смогут решить массу технических вопросов!
Единственное хотелось бы уточнить что автор имел в виду под следующей фразой?
Эксперт, однозначно, не убыточный и при хорошей оптимизации показывает при всей своей простоте весьма приличные результаты.
Вы могли бы привести значения параметров, при которых он у Вас показывает прибыль, а также результаты тестера при этом?
Я специально глубокую оптимизацию не проводил, но по некоторым результатам предварительной оптимизации за последние полгода эксперт показывает прибыль в районе 0 на GBPJPY, производя от 10 до 30 сделок за указанный промежуток времени.
Solandr! Я тоже оптимизацией этого эксперта давно не занимался, но по некоторым результатам предварительной оптимизации за последний год эксперт показывает прибыль в районе более 1000% на GBPJPY! Почему у нас такие разные результаты? И если мне не изменяет память, то когда я этим занимался более подробно, то результат был в семь раз лучше этого!
Strategy Tester Report
ASCTrend1RAVI_Expert

Символ GBPJPY (Great Britan vs Japanise Yen)
Период 4 Часа (H4) 2006.02.13 00:00 - 2007.02.08 00:00 (2006.02.11 - 2007.02.01)
Модель Контрольные точки (используется ближайший таймфрейм + фрактальная интерполяция)
Параметры RAVI_Timeframe=240; ASCT_Timeframe=1440; Buy_Sell_Custom=2; Money_Management_Up=0. 16; RISK_Up=6; Period1_Up=37; Period2_Up=45; MA_Metod_Up=0; PRICE_Up=4; STOPLOSS_Up=128; TAKEPROFIT_Up=197; Money_Management_Dn=0.16; RISK_Dn=7; Period1_Dn=27; Period2_Dn=70; MA_Metod_Dn=0; PRICE_Dn=5; STOPLOSS_Dn=150; TAKEPROFIT_Dn=295;
Баров в истории 2070 Смоделировано тиков 35581 Качество моделирования 50.00%
Начальный депозит 10000.00
Чистая прибыль 177700.55 Общая прибыль 255015.71 Общий убыток -77315.16
Прибыльность 3.30 Матожидание выигрыша 7108.02
Абсолютная просадка 0.00 Максимальная просадка 26613.70 (14.71%) Относительная просадка 26.82% (19003.18)
Всего сделок 25 Короткие позиции (% выигравших) 1 (100.00%) Длинные позиции (% выигравших) 24 (75.00%)
Прибыльные сделки (% от всех) 19 (76.00%) Убыточные сделки (% от всех) 6 (24.00%)
Самая большая прибыльная сделка 33358.42 убыточная сделка -26613.70
Средняя прибыльная сделка 13421.88 убыточная сделка -12885.86
Максимальное количество непрерывных выигрышей (прибыль) 5 (91285.85) непрерывных проигрышей (убыток) 2 (-19003.18)
Максимальная непрерывная прибыль (число выигрышей) 91285.85 (5) непрерывный убыток (число проигрышей) -26613.70 (1)
Средний непрерывный выигрыш 3 непрерывный проигрыш 1
 
GODZILLA:
Solandr! Я тоже оптимизацией этого эксперта давно не занимался, но по некоторым результатам предварительной оптимизации за последний год эксперт показывает прибыль в районе более 1000% на GBPJPY! Почему у нас такие разные результаты? И если мне не изменяет память, то когда я этим занимался более подробно, то результат был в семь раз лучше этого!
Спасибо за ответ и подсказку параметров. Они существенно отличаются от тех, которые присутствуют в статье и для их получения нужно было бы изрядно погонять машину. С ними действительно получается прибыль. Правда итоговые показатели отличаются от приведённых. Тестил на котировках InterbankFX на том же временном промежутке и в том же режиме. Вы вероятно на котировках другого брокера. В связи с чем ощущается "заточка" под реализацию истории того брокера. Прибыльность у меня составила 1.26, количество сделок совпало с вашим количеством (25 сделок).
Думаю, что в качестве учебного эксперта для разбора кода он себя отлично оправдывает.
Но большая разница прибыльности 3.30 и 1.26 может говорить о том, что результат оптимизации на (1-(1.26-1)/(3.30-1))*100%=93% процента может быть случайным. Хотя конечно же вряд ли можно проводить какую-либо оценку всего лишь по 25 сделкам. Для этого требуется делать более глубокие исследования и количество сделок, исчисляемое сотнями.
 
Solandr! Это какое-то слишком подозрительное расхождение в результатах у разных дилеров! При таких таймфреймах и таких стоплоссах с такими тейкпрофитами разница у разных дилеров обычно бывает сущие гроши! Тут что-то не так!
 
Вот результаты на демо Alpari
Strategy Tester Report
NewASCTrend1RAVI_Expert


Символ GBPJPY (Great Britain Pound vs Japanese Yen)
Период 4 Часа (H4) 2006.02.13 00:00 - 2007.02.08 00:00 (2006.02.13 - 2007.02.08)
Модель Контрольные точки (используется ближайший таймфрейм + фрактальная интерполяция)
Параметры RAVI_Timeframe=240; ASCT_Timeframe=1440; Buy_Sell_Custom=2; Money_Management_Up=0. 16; RISK_Up=6; Period1_Up=37; Period2_Up=45; MA_Metod_Up=0; PRICE_Up=4; STOPLOSS_Up=128; TAKEPROFIT_Up=197; Money_Management_Dn=0.16; RISK_Dn=7; Period1_Dn=27; Period2_Dn=70; MA_Metod_Dn=0; PRICE_Dn=5; STOPLOSS_Dn=150; TAKEPROFIT_Dn=295;
Баров в истории 2532 Смоделировано тиков 29651 Качество моделирования 50.00%
Начальный депозит 10000.00
Чистая прибыль 24731.11 Общая прибыль 39636.34 Общий убыток -14905.23
Прибыльность 2.66 Матожидание выигрыша 1124.14
Абсолютная просадка 0.00 Максимальная просадка 5710.59 (17.44%) Относительная просадка 17.44% (5710.59)
Всего сделок 22 Короткие позиции (% выигравших) 1 (100.00%) Длинные позиции (% выигравших) 21 (66.67%)
Прибыльные сделки (% от всех) 15 (68.18%) Убыточные сделки (% от всех) 7 (31.82%)
Самая большая прибыльная сделка 3620.89 убыточная сделка -2595.93
Средняя прибыльная сделка 2642.42 убыточная сделка -2129.32
Максимальное количество непрерывных выигрышей (прибыль) 5 (8612.20) непрерывных проигрышей (убыток) 2 (-4658.24)
Максимальная непрерывная прибыль (число выигрышей) 9717.57 (3) непрерывный убыток (число проигрышей) -4658.24 (2)
Средний непрерывный выигрыш 3 непрерывный проигрыш 1

Вот результат тестов на реале InterBankFX (mini account)
Strategy Tester Report
NewASCTrend1RAVI_Expert


Символ GBPJPYm (Great Britain Pound vs Japanese Yen)
Период 4 Часа (H4) 2006.02.13 00:00 - 2007.02.08 00:00 (2006.02.13 - 2007.02.08)
Модель Контрольные точки (используется ближайший таймфрейм + фрактальная интерполяция)
Параметры RAVI_Timeframe=240; ASCT_Timeframe=1440; Buy_Sell_Custom=2; Money_Management_Up=0. 16; RISK_Up=6; Period1_Up=37; Period2_Up=45; MA_Metod_Up=0; PRICE_Up=4; STOPLOSS_Up=128; TAKEPROFIT_Up=197; Money_Management_Dn=0.16; RISK_Dn=7; Period1_Dn=27; Period2_Dn=70; MA_Metod_Dn=0; PRICE_Dn=5; STOPLOSS_Dn=150; TAKEPROFIT_Dn=295;
Баров в истории 2562 Смоделировано тиков 35489 Качество моделирования 50.00%
Начальный депозит 10000.00
Чистая прибыль 42.43 Общая прибыль 206.50 Общий убыток -164.07
Прибыльность 1.26 Матожидание выигрыша 1.70
Абсолютная просадка 25.95 Максимальная просадка 32.88 (0.33%) Относительная просадка 0.33% (32.88)
Всего сделок 25 Короткие позиции (% выигравших) 3 (0.00%) Длинные позиции (% выигравших) 22 (50.00%)
Прибыльные сделки (% от всех) 11 (44.00%) Убыточные сделки (% от всех) 14 (56.00%)
Самая большая прибыльная сделка 24.13 убыточная сделка -17.12
Средняя прибыльная сделка 18.77 убыточная сделка -11.72
Максимальное количество непрерывных выигрышей (прибыль) 3 (60.29) непрерывных проигрышей (убыток) 3 (-32.88)
Максимальная непрерывная прибыль (число выигрышей) 60.29 (3) непрерывный убыток (число проигрышей) -32.88 (3)
Средний непрерывный выигрыш 2 непрерывный проигрыш 2


Разница в цифрах прибыли на InterBankFX связана наверное с тем, что у них плечо 1:200 и соответственно залог за 1 лот составляет 50USD. Возможны отличия для расчёта размера открытия позиций.
Кстати я привёл результаты тестов для эксперта NewASCTrend1RAVI_Expert, а Вы привели результаты для ASCTrend1RAVI_Expert. Хотя по идее разницы в результатах тестов быть не должно.

 
Solandr! Я более основательно всё проверил и пришёл к такому выводу, что MetaTrader, не котором я производил оптимизацию этого эксперта просто глюкнулся! Увы, но я такое за ним уже один раз замечал, но как-то всерьёз не придал этому значения, просто заново инсталировал Метатрейдер в пустую папку и перетащил после этого в неё все конфигурационные файлы и прочую файловую мелочёвку. Теперь вот опять повторилась та же самая ситуация! Так что ваши результаты более верны, чем мой! Но к данной статье всё это всё-таки никакого отношения не имеет. С экспертом всё абсолютно нормально, в качестве учебного пособия и экспоната определённых идей построения экспертов он свою роль выполняет недурно и с таким результатом! По правде говоря, оно и не нужно выставлять в качестве учебных пособий слишком откровенных кандидатов на граали!
 
GODZILLA:
С экспертом всё абсолютно нормально, в качестве учебного пособия и экспоната определённых идей построения экспертов он свою роль выполняет недурно и с таким результатом! По правде говоря, оно и не нужно выставлять в качестве учебных пособий слишком откровенных кандидатов на граали!

Полностью согласен! Код эксперта успешно решает поставленные перед ним учебные задачи. Желающие могут с ним разобраться и использовать в своих разработках. Ещё раз спасибо за отличные статьи!
 

Здравствуйте !

Скажите, пожалуйста, для оптимизации и тестировании этого эксперта на H1 нужно ли менять эти данные ?:

//---- ВХОДНЫЕ ПАРАМЕТРЫ
extern int RAVI_Timeframe = 240;
extern int ASCT_Timeframe = 1440;

Если да, то почему ? А для М30 ?

 

И почему при уменьшении параметра

extern int ASCT_Timeframe = 1440;
меньше 1440 оптимизация не производится: идёт горизонтальная линия на графике оптимизации ?
Причина обращения: