Asesor multidivisa - multitiempo

 

Hola, no encuentro una plantilla de EA de este tipo en ningún sitio. Sólo he podido encontrar uno multidivisa, aquí hay un enlace a la descripción https://www.mql5.com/ru/articles/648

Estoy tratando de añadir la multitarea sobre la base de este artículo, pero no es muy bueno, así que por favor me ayude a encontrar un ejemplo de tal EA, tal vez alguien lo vio en el Internet)

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

hay una recepción de datos errónea, el bucle tiene que ser eliminado, cuando llega un tick, todos los pares en el bucle pasan...

este robot es bastante y multitemporal

 
Fast528:

hay una recepción de datos errónea, el bucle tiene que ser eliminado, cuando llega un tick, todos los pares en el bucle pasan...

este robot es bastante y multitemporal.

¿Qué ciclo - puede mostrarme?

 
Tango_X:

¿Qué bucle - puede mostrarme?

Mira, el onchartivent obtiene ticks de cada símbolo, pero en este robot, cada tick de un símbolo ejecuta adicionalmente un bucle en todos estos pares, este bucle necesita ser eliminado

 

Esta es la mejor solución por el momento: https://www.mql5.com/ru/forum/225832/page2#comment_6406538

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Análisis de los resultados de las pruebas y optimización en el probador de estrategias de MetaTrader 5

fxsaber, 2018.01.28 16:22

Aceleración significativa
#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]);
}


Un símbolo

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


Dos símbolos

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


Tres símbolos

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


Cuatro símbolos

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:

Mira, el onchartivent recibe ticks de cada símbolo, pero en este robot, cuando cada tick viene para un símbolo, también se ejecuta un bucle en todos estos pares, por lo que este bucle debe ser eliminado

Así es, debe recibir todos los ticks de todos los pares

 
Anatoli Kazharski:

Esta es la mejor solución actualmente: https://www.mql5.com/ru/forum/225832/page2#comment_6406538

Y en el probador, ¿cómo se resuelve este problema?

 
Anatoli Kazharski:

Esta es la mejor solución por el momento: https://www.mql5.com/ru/forum/225832/page2#comment_6406538

¿Puedo publicar aquí su indicador de espionaje o bastará con el que aparece en el artículo?

 
Tango_X:

Así es, debe recibir todos los ticks de todos los pares

El onchartivent recibe ticks para todos los símbolos, y el bucle aumenta el procesamiento de la señal aún más

Vino un tick para el euro, y todos los pares corrieron con él..., luego vino un tick para otro par y de nuevo todos los pares de la lista corrieron, **trabajo suave

 
Andrey Barinov:

¿Cómo se resuelve esta cuestión en el probador?

También funciona en el probador.

 
Anatoli Kazharski:

También funciona en el probador.

Gracias. Indícame la dirección de Spy.ex5 (preferiblemente .mq5)