Мультивалютный - мультитаймовай советник

 

Привет! Не могу найти нигде шаблон такого советника. Нашел только мультивалютный, вот ссылка на описание https://www.mql5.com/ru/articles/648

На основе этой статьи попробовал добавить еще и мультитаймовость но не очень хорошо получается, поэтому прошу помочь в поиске схемы примера такого советника, может кто где видел на просторах интернета)

Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
  • www.mql5.com
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно...
 

там не правильный прием данных, цикл надо убирать, при приходе тика проходят все пары в цикле..

этот робот вполне и мультитаймовый

 
Fast528:

там не правильный прием данных, цикл надо убирать, при приходе тика проходят все пары в цикле..

этот робот вполне и мультитаймовый

Какой именно цикл - можете показать?

 
Tango_X:

Какой именно цикл - можете показать?

вот смотри, ончартивент  там получает тики с каждого символа, а в данном роботе при приходе каждого тика по символу дополнительно пробегает еще и цикл по всем этим парам, этот цикл нужно убрать

 

Вот такое решение на данный момент наилучшее: https://www.mql5.com/ru/forum/225832/page2#comment_6406538

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Анализ результатов тестов и оптимизации в тестере стратегий MetaTrader 5

fxsaber, 2018.01.28 16:22

Значительно ускорил
#include <TesterBenchmark.mqh> // https://www.mql5.com/ru/code/18804

input int AmountSymbols = 1;

const string Symbols[] = {"EURUSD", "GBPUSD", "AUDUSD", "USDJPY", "USDCAD"};

double Sum2 = 0;

double GetBid( const string &Symb )
{
  static MqlTick Tick;

  return(SymbolInfoTick(Symb, Tick)? Tick.bid : 0);
}

void OnInit()
{
  for (int i = 0; i < AmountSymbols; i++)
    if (Symbols[i] != _Symbol)
      iCustom(Symbols[i], PERIOD_W1, "Spy.ex5", ChartID(), i); // MQL5\Indicators\Spy.ex5
}

void OnDeinit( const int )
{
  Print(Sum2);
}

void OnTick()
{
  OnTick(_Symbol); 
}

void OnTick( const string &Symb )
{
  Sum2 += GetBid(Symb);
}

void OnChartEvent( const int id, const long &lparam, const double&, const string& )
{
  if (id == CHARTEVENT_CUSTOM)
    OnTick(Symbols[(int)lparam]);
}


Один символ

i = 0 Pass = 0 OnTester = 2.697 s.: Count = 9986677, 3702883.6 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755
i = 1 Pass = 1 OnTester = 2.657 s.: Count = 9986677, 3758628.9 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755


Два символа

i = 0 Pass = 0 OnTester = 17.632 s.: Count = 9986677, 566395.0 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755
i = 1 Pass = 1 OnTester = 17.539 s.: Count = 9986677, 569398.3 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755


Три символа

i = 0 Pass = 0 OnTester = 35.639 s.: Count = 9986677, 280217.7 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755
i = 1 Pass = 1 OnTester = 35.462 s.: Count = 9986677, 281616.3 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755


Четыре символа

i = 0 Pass = 0 OnTester = 68.459 s.: Count = 9986677, 145878.2 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755
i = 1 Pass = 1 OnTester = 69.429 s.: Count = 9986677, 143840.1 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755
Анализ результатов тестов и оптимизации в тестере стратегий MetaTrader 5
Анализ результатов тестов и оптимизации в тестере стратегий MetaTrader 5
  • 2018.01.28
  • www.mql5.com
Рассмотрим результаты тестов на одном и нескольких символах. Тесты будем проводить в режиме Все тики...
 
Fast528:

вот смотри, ончартивент  там получает тики с каждого символа, а в данном роботе при приходе каждого тика по символу дополнительно пробегает еще и цикл по всем этим парам, этот цикл нужно убрать

Так все правильно - он и должен получать все тики по всем парам

 
Anatoli Kazharski:

Вот такое решение на данный момент наилучшее: https://www.mql5.com/ru/forum/225832/page2#comment_6406538

А в тестере как этот вопрос решаете?

 
Anatoli Kazharski:

Вот такое решение на данный момент наилучшее: https://www.mql5.com/ru/forum/225832/page2#comment_6406538

Можно Ваш индикатор Spy выложить сюда или подойдет тот что в статье?

 
Tango_X:

Так все правильно - он и должен получать все тики по всем парам

ончартивент и так получает по всем символам, а цикл дополнительно кратно увеличивает обработку сигналов

пришел тик на евро, вместе с ним пробежали все пары.., пришел тик на другую пару и опять пробежали все пары из списка, **ная работа

 
Andrey Barinov:

А в тестере как этот вопрос решаете?

Работает и в тестере.

 
Anatoli Kazharski:

Работает и в тестере.

Спасибо. Ткните носом, где взять Spy.ex5 (лучше .mq5)

Причина обращения: