getch>>:
Простота идеи заключается в том, что надо только реализовать работу с виртуальными ордерами. Т.е. написать аналоги штатным Orders-функциям: OrderSend, OrderClose, OrderProfit, OrderSelect, ....
Так в кодебазе есть пара вариантов . Могу предложить свое, не совсем проверенное остыл к теме .
Так в кодебазе есть пара вариантов . Могу предложить свое, не совсем проверенное остыл к теме .
Дело не в написании виртуальных функций, а в их применении.
Простой подход реализации виртуальных функций показан в файле V_Trading.
Тестер MT4 - это и есть виртуальные функции на одном символе.
Тестер MT5 - на нескольких символах. Эта же идея применяется на примере в первом посте.
Дело не в написании виртуальных функций, а в их применении.
Простой подход реализации виртуальных функций показан в файле V_Trading.
Тестер MT4 - это и есть виртуальные функции на одном символе.
Тестер MT5 - на нескольких символах. Эта же идея применяется на примере в первом посте.
Так тестера в пятерке вроде нет еще . Он точно будет мульвалютный ? Если да,тогда и не стоит огород городить будем подождать, если нет то наверно лучше свой скажем на Си писать . А еще тестер должен хоть как то оптимизировать .
int V_iBarShift( string symbol, int timeframe, int time, bool exact=true)
{
int Res = iBarShift(symbol, timeframe, time, true);
return(Res);
}
int V_iTime( string symbol, int timeframe, int shift )
{
double Res;
int tmp = GetCurrentBar(symbol, timeframe);
if (shift == 0)
Res = iTime(symbol, timeframe, tmp);
else
Res = iTime(symbol, timeframe, tmp + shift);
return(Res);
}
Вопрос, правильно ли это?
И ещё один момент хотелось бы уточнить.
Если есть допустим функция расчёта среднестатистического спреде
//====== Функция расчета среднестатистического спреда ======+double AvarageSpread(string Symbol_1, string Symbol_2, int Timeframe, int NBars) {
int symb2Shift;
double N = 0;
double Sum = 0;
for (int k = Last_bars; k < iBars(Symbol_1, Timeframe); k++) {
if (N == NBars) break; //- задаем число баров для расчета
symb2Shift = iBarShift(Symbol_2, Timeframe, iTime(Symbol_1, Timeframe, k), TRUE);
if (symb2Shift != -1) { // - синхронизируем бары
Sum += iClose(Symbol_1, Timeframe, k) / iClose(Symbol_2, Timeframe, symb2Shift);
N++;
// - вычисляем суммарный спред на заданном количестве баров//Далее, вычисляем среднестатистический спред :
}
}
double avarageSpread = Sum / N;
return (avarageSpread);//конец функции
}
то если нужно протестировать советника использующего эту функцию через приведённый в это ветке мультивалютный тестер, то всё равно этот расчёт нужно пропускать через виртуальные функции и любые другие расчёты тоже?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Как дорабатывается V_Trading на примере добавки мэджика к виртуальным ордерам:
Мультивалютные стратегии слабо распространены, но, несмотря на это, они уже подвергаются некоторой классификации. Например, кластерный тип.
Работоспособность и особенности такого советника с помощью минимальной переделки можно также проверить на истории вышенаписанным методом.
Прилагаю исправленный вариант.
Простота идеи заключается в том, что надо только реализовать работу с виртуальными ордерами. Т.е. написать аналоги штатным Orders-функциям: OrderSend, OrderClose, OrderProfit, OrderSelect, ....
Так в кодебазе есть пара вариантов . Могу предложить свое, не совсем проверенное остыл к теме .
Мультивалютные стратегии слабо распространены, но, несмотря на это, они уже подвергаются некоторой классификации. Например, кластерный тип.
Работоспособность и особенности такого советника с помощью минимальной переделки можно также проверить на истории вышенаписанным методом.
Правильной дорогой идёте, товарищи. (я так думаю.)
Так в кодебазе есть пара вариантов . Могу предложить свое, не совсем проверенное остыл к теме .
Дело не в написании виртуальных функций, а в их применении.
Простой подход реализации виртуальных функций показан в файле V_Trading.
Тестер MT4 - это и есть виртуальные функции на одном символе.
Тестер MT5 - на нескольких символах. Эта же идея применяется на примере в первом посте.
Дело не в написании виртуальных функций, а в их применении.
Простой подход реализации виртуальных функций показан в файле V_Trading.
Тестер MT4 - это и есть виртуальные функции на одном символе.
Тестер MT5 - на нескольких символах. Эта же идея применяется на примере в первом посте.
Так тестера в пятерке вроде нет еще . Он точно будет мульвалютный ? Если да,тогда и не стоит огород городить будем подождать, если нет то наверно лучше свой скажем на Си писать . А еще тестер должен хоть как то оптимизировать .Есть ли кто желающий немного доработать данные библиотеки и индикатор и совместить с другим (моим) советником?
А вдруг у кого-то в сей чудный воскресный день так и чешутся руки по-программировать немного :)
Вопрос, правильно ли это?
И ещё один момент хотелось бы уточнить.
Если есть допустим функция расчёта среднестатистического спреде
то если нужно протестировать советника использующего эту функцию через приведённый в это ветке мультивалютный тестер, то всё равно этот расчёт нужно пропускать через виртуальные функции и любые другие расчёты тоже?