...прежде чем публиковать какой-либо ответ, я хотел бы понять, что вы считаете стратегией с несколькими таймфреймами в контексте пользовательского индикатора.
Как сделать шаг вперед?
Выберите свой собственный путь - Подход
В любом случае
можно использовать вызовы функций для извлечения значений, собранных с точки зрения другого таймфрейма, с использованием правильного указания
{ 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