Обратно тестване на индикатор MultiTimeFrame mql4

преди да публикувам какъвто и да е код, бих искал да разбера дали е възможно да тествам персонализиран индикатор за терминал MetaTrader4, базиран на стратегия с множество времеви рамки.

Разгледах форума на mql5, но не можах да намеря ясни указания или подход към проблема.


person fabio.geraci    schedule 26.09.2015    source източник


Отговори (1)


...преди да публикувам какъвто и да е отговор, бих искал да разбера какво смятате за стратегия за много времеви рамки в контекста на персонализирания индикатор.

Как да направим крачка напред?

Изберете своя собствен начин - Подходът

Във всеки случай
може да се използват извиквания на функции, насочени към извличане на стойности, събрани от гледна точка на различна времева рамка, с използване на правилна индикация на
{ PERIOD_M1 | .. | PERIOD_H1 | PERIOD_H4 | .. }
в протокола за извикване на функции,

или

човек може да създаде и поддържа свой собствен виртуален супер-фрейминг / под-фрейминг независимо от „собствен“ времеви интервал на текущата графика.

double v30SEC_O[], v30SEC_H[], v30SEC_L[], v30SEC_C[],
       vM1_O[   ], vM1_H[   ], vM1_L[   ], vM1_C[   ],
       vM3_O[   ], vM3_H[   ], vM3_L[   ], vM3_C[   ],
       vH7_O[   ], vH7_H[   ], vH7_L[   ], vH7_C[   ];    // vTF as needed

bool   v30SEC_newBarEVENT = False,
       vM1_newBarEVENT    = False,
       vM3_newBarEVENT    = False,
       vH7_newBarEVENT    = False;

void   aNewBarEventMONITOR(){ ...
       static int  v30SEC_Bars  = EMPTY,
                   vM1_Bars     = EMPTY,
                   vM3_Bars     = EMPTY,
                   vH7_Bars     = EMPTY;

    // check aNewBarEVENT:

    // update state-vars:

}

Работи ли въпреки многото публикации за неуспешни резултати от MTF [StrategyTester]?

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

Да, модулните тестове са добър навик за предпазни колани в тази област.

Скорошните "нови"-MQL4.56789+ смени и честите междинни актуализации на компилатора (синтаксис) на живо (получавате нова помощ, за да ги забележите) правят тестването на единици задължително част от тестването преди пускане + поддръжка на производствен код.

person user3666197    schedule 26.09.2015
comment
Това е персонализиран индикатор, който събира данни от Period_M1, M5, M15 и връща сигнал за отваряне на нова сделка. работи в преден тест, което означава, че на демо сметка прави това, за което е предназначено, но бих искал да тествам назад, за да оптимизирам входните точки. - person fabio.geraci; 26.09.2015
comment
Ясно, Фабио, а къде е проблемът? - person user3666197; 26.09.2015
comment
Проблемът е, че когато правя бектест, не получавам същите влизания и/или изходи като при ръчния тест. Четох, че това са сложни проблеми при тестване на стратегии, които използват MTF индикатори, но не можах да намеря нито пример, нито литература, обясняваща как и какво да правя. Индикаторът е кодиран в съответствие с указанията, дадени на тази връзка връзка, но дори и напред тест (демо/на живо) не е много точен. - person fabio.geraci; 26.09.2015
comment
Разбрахте ли, Фабио, че по-голямата част от препоръчаната FF-нишка е на повече от 3 години, т.е. преди да се появи new-MQL4.56789? Както и да е, решението е изпълнимо, ако полагате правилно допълнителните грижи, които са необходими. Обикновено предпочитам да използвам и поддържам манипулатори на virtualTimeFrame и да запазя цялата логика в EA, за да избегна претоварване на една нишка на Custom Indicator engine + това позволява лесно външно тестване/поддръжка от (взаимосвързани сокети за съобщения) python/numpy модули. - person user3666197; 27.09.2015
comment
Видях, че публикациите в mql4 са стари, но щях да загубя всичко, опитвайки се. така че искате да кодирате индикатора като функция в EA? - person fabio.geraci; 27.09.2015
comment
бихте ли предоставили примерна реализация на virtualTimeFrame, моля? - person fabio.geraci; 27.09.2015
comment
Да, аз съм. Като тривиално поставите изчисления на индикатора в EA, вие получавате по-добра преносимост. Въпреки че все още има проблеми, които остават (т.е. няма директен достъп до по-дълбока история, веднъж стартирана в Strategy Tester. Съществува заобиколно решение). - person user3666197; 27.09.2015
comment
Нека продължим тази дискусия в чата. - person fabio.geraci; 27.09.2015