Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Делись знаниями. Стань популярным разработчиком!
getch
1754
getch 2010.02.18 21:40 
Простота идеи заключается в том, что надо только реализовать работу с виртуальными ордерами. Т.е. написать аналоги штатным Orders-функциям: OrderSend, OrderClose, OrderProfit, OrderSelect, ....

Для примера взял обсуждаемый сейчас на форуме советник Spreader.

Переделка минимальна:

ׂ 
Сравнение исходной (слева) версии и переделанной (справа)

Мультивалютный тестер - это индикатор Balance и Equity работы советника на истории.

ׂ 
Пример входных параметров мультивалютного тестера

ׂ 
Результат работы мультивалютного тестера

Все файлы поместите в папку indicators. V_Trading.mqh (реализация виртуальных ордеров) написан минимально для данного примера и демонстрирует саму идею.

Так выглядит код запуска мультивалютного тестера (V_Equity.mq4):

void start()
{  
  bool Flag = FALSE;
  
  while (CurBar > EndBar)   
  {
    if (Flag) // из-за особенности реализации советника Spreader (openbarspriceonly) вызываем дважды на одном баре
    {
      CurBar--;
      V_SetTime(Time[CurBar]); 
    }
    
    Flag = !Flag;
    
    V_Spreader("EURUSD", "GBPUSD", 1, 100);
    V_Spreader("USDJPY", "CADJPY", 1, 100);
    V_Spreader("CHFJPY", "GBPJPY", 1, 100);
    V_Spreader("NZDJPY", "AUDJPY", 1, 100);
           
    VEquity[CurBar] = V_AccountEquity();
    VBalance[CurBar] = V_AccountBalance();
   }
  
  return;
}

Мультивалютный анализ с таким тестером удобно проводить вместе с синхронизирующим графики скриптом.


P.S. Через виртуальные ордера решаются многие задачи. Например, автоматическая конвертация стандартных стратегий (с возможностью лока) в неттинговые с идентичным результатом торговли.

Файлы:
v_equity.rar 3 kb
igor
1144
igor 2010.02.18 21:52  

Если позволите .

Хочу предложить ещё один метод тестирования на нескольких парах одновременно. Есть такая функция она позволяет синхронизироать два,можно и более MT4 в режиме тестирования .

Достаточно в испытываемый эксперт вставить эту функцию и запустить каждую пару на отдельном терминале. Терминалы синхронизируются по времени и будут параллельно торговать каждый свою пару. Результаты можно будет сложить. При необходимости можно наладить и связь между терминалами для передачи информации. Тестировать правда придётся в визуальном режиме.

Виктор
352
Виктор 2010.02.18 22:09  

а можно по подробнее...

Нужно запустить в режиме тестирования Spreder и подвесить к нему индикатор V_Equty?

Или как?

Artem Titarenko
3863
Artem Titarenko 2010.02.18 22:09  
zhuki >>:

Если позволите .

Хочу предложить ещё один метод тестирования на нескольких парах одновременно. Есть такая функция она позволяет синхронизироать два,можно и более MT4 в режиме тестирования .

Достаточно в испытываемый эксперт вставить эту функцию и запустить каждую пару на отдельном терминале. Терминалы синхронизируются по времени и будут параллельно торговать каждый свою пару. Результаты можно будет сложить. При необходимости можно наладить и связь между терминалами для передачи информации. Тестировать правда придётся в визуальном режиме.

При правильной организации не обязательно будет в визуальном режиме.

Просто каждый должен будет проверять на отставание другой терминал...

Это вобщем, но может конечно предлагаемая Вами функция имеет такие ограничения..?

getch
1754
getch 2010.02.18 22:13  
Vitya >>:

а можно по подробнее...

Нужно запустить в режиме тестирования Spreder и подвесить к нему индикатор V_Equty?

Или как?

Нужно только запустить один раз на любом графике индикатор V_Equity. Параметрами Spreader-a можете управлять в функции start индикатора, а также включать и выключать дополнительные копии советника.

igor
1144
igor 2010.02.18 22:18  

Вообще я предлагаю идею, функцию я не предлагал.

Вся проблема в том что, нельзя притормозить или ускорить тестирование.Единственный вариант это запустить ожидание, да ещё и вне тестера.

Если есть предложения рад буду услышать.

Прошу прощения getch,что вмешиваюсь в Вашу тему. Я подумал будем идеи кидать. 

Виктор
352
Виктор 2010.02.18 22:48  

Спасибо очень нужная штука.

Теперь можно значительно увеличить интенсивность перебора параметров

Alexei Kharchenko
1360
Alexei Kharchenko 2010.02.18 22:56  
getch >>:
Простота идеи заключается в том, что надо только реализовать работу с виртуальными ордерами. Т.е. написать аналоги штатным Orders-функциям: OrderSend, OrderClose, OrderProfit, OrderSelect, ....

Великолепное решение... Респект...

Виктор
352
Виктор 2010.02.18 23:01  
getch >>:

Нужно только запустить один раз на любом графике индикатор V_Equity. Параметрами Spreader-a можете управлять в функции start индикатора, а также включать и выключать дополнительные копии советника.

допусти я кое чего добавил в исходный код, нужно внесли соответствующие изменения только в V_Spreder? больше ничего менять не нужно? в V_Trading к примеру.

И ещё, если попробовать переделать код Spredera под фючерсы а не под валяты, в функции подсчёта профита нужно что то менять?

getch
1754
getch 2010.02.18 23:14  
Vitya >>:

допусти я кое чего добавил в исходный код, нужно внесли соответствующие изменения только в V_Spreder? больше ничего менять не нужно? в V_Trading к примеру.

И ещё, если попробовать переделать код Spredera под фючерсы а не под валяты, в функции подсчёта профита нужно что то менять?

Идея тем и хороша, что V_Trading и V_Equity менять не надо. Только V_Spreader. Для фьючерсов тоже работать, вроде, должно. Еще замечание, поскольку мультивалютный тестер "по всем тикам" был бы неоднозначен в результатах работы, то данный тестер работает "по ценам открытия" (в будущее не заглядывает).

Мэджики, частичное закрытие, отложенные ордера в V_Trading не делал. Задача была только показать идею.

Виктор
352
Виктор 2010.02.18 23:21  
getch >>:

Идея тем и хороша, что V_Trading и V_Equity менять не надо. Только V_Spreader. Для фьючерсов тоже работать, вроде, должно. Еще замечание, поскольку мультивалютный тестер "по всем тикам" был бы неоднозначен в результатах работы, то данный тестер работает "по ценам открытия" (в будущее не заглядывает).

Мэджики, частичное закрытие, отложенные ордера в V_Trading не делал. Задача была только показать идею.

Ещё раз спасибо!

/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий