多币种--多方位顾问

 

你好!我在哪里都找不到这样的EA模板。我只找到了一个多币种的,这里有一个描述的链接https://www.mql5.com/ru/articles/648

我正试图在这篇文章的基础上添加多任务,但效果不是很好,所以请帮我找一个这样的EA例子,也许有人在网上看到过)

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

有一个错误的数据接收,该循环必须被删除,当一个刻度出现时,循环中的所有对都会通过...

这个机器人是相当的和多时间的

 
Fast528:

有一个错误的数据接收,该循环必须被删除,当一个刻度出现时,循环中的所有对都会通过...

这个机器人是相当和多定时的。

哪个周期--你能告诉我吗?

 
Tango_X:

哪一个循环--你能给我看看吗?

看,onchartivent从每个符号中获取ticks,但在这个机器人中,每一个符号 上的tick都 会在所有这些对上运行一个循环,这个循环需要被删除。

 

这是目前最好的解决方案: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:

看,onchartivent接收来自每个符号的ticks,但在这个机器人中,当每个tick 来到一个符号时,它也在所有这些对上运行一个循环,所以这个循环应该被删除。

这是正确的--它应该接收所有对的所有刻度线

 
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:

这是正确的--它应该接收所有对的所有刻度线

onchartivent接收所有符号的ticks,而循环更增加了信号处理的力度

欧元出现了一个嘀嗒声,所有货币对都跟着跑了......,然后另一个货币对出现了一个嘀嗒声,列表中的所有货币对再次跑了起来,**工作很顺利。

 
Andrey Barinov:

你如何在测试器中解决这个问题?

它在测试器中也起作用。

 
Anatoli Kazharski:

在测试器中也是如此。

谢谢你。给我指出Spy.ex5的方向(最好是.mq5)。