SYMBOL_SELECT bug in tester?

 

Hi!

When using the SMBOLSELECT function in the tester, the history of the symbol is not loaded.

It is no longer possible to get price information. The problem does not occur if the symbol history is already synchronized.

So only if SYMBOL_SELECT is the first symbol call. Also, the call must be made with a symbol that is not used for the current test.

I am aware that SYMBOL_SELECT is not meant for the tester, but it should at least give an error.


//+------------------------------------------------------------------+
//|                                                     TickTest.mq5 |
//|                                        Copyright 2022, twtrading |
//|                                         https://www.twtrading.de |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, twtrading"
#property link      "https://www.twtrading.de"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
 
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
      ResetLastError();
      SymbolInfoInteger("EURJPY",SYMBOL_SELECT);
      Print("Error:",GetLastError());
      
      MqlTick tick;
      SymbolInfoTick("EURJPY",tick);
      Print("Oninit: tick.time:",tick.time);
  }
//+------------------------------------------------------------------+


In the following image the test was started on the EURUSD. As you can see the symbol EURJPY is not loaded.



Maybe I am missing something, can someone reproduce the error?

 

wir sprechen hier noch immer Deutsch.

also ich sehe keinen Error. Du verwendest die OnTick und willst Symboldaten ohne diese vorher zu laden. Woher soll er diese nehmen?

Wenn du sowas machst, wo sich eh die frage stellt was das werden soll, dann musst die die Daten in der OnInit laden. in der OnTick ladet er nix mehr

 

Getreu des Spruchs, es gibt nichts, was nicht schon für MQL4/5 programmiert wurde - such doch erst und orientier Dich, an dem was andere schon zum Laufen gebracht haben.

Ich habe vor kurzem von einem genialen Trick berichtet: https://www.mql5.com/de/forum/389149#comment_27835559

Außerdem richte Dich nach dem, was im EA ankommt. Der Chart ist der Geschwindigkeit wegen nicht immer auf der Höhe des Moments, die grafische Aktualisierung erfolgt nur zB. bei einem neuen Balken.

EA auf mehrere Basiswerte anwenden
EA auf mehrere Basiswerte anwenden
  • 2022.02.18
  • www.mql5.com
Hallo zusammen, ich bin neu in der MetaTrader5-Materie und habe aktuell noch kein Programm für automatisiertes Trading laufen...
 

Das ist ein Auszug aus meinem arbitrage trader der im 50ms Takt ca 22 Symbole abfragt.

Ich glaube dir fehlt nur Refreshrates.


 
amando #:

wir sprechen hier noch immer Deutsch.

also ich sehe keinen Error. Du verwendest die OnTick und willst Symboldaten ohne diese vorher zu laden. Woher soll er diese nehmen?

Wenn du sowas machst, wo sich eh die frage stellt was das werden soll, dann musst die die Daten in der OnInit laden. in der OnTick ladet er nix mehr

Danke für die schnelle Antwort. Das gleiche Ergebnis kommt auch wenn man das ganze im OnInit macht. Mir ist bewusst das zu diesem Zeitpunkt noch keine Daten geladen sind, finde es nur seltsam, das man danach auch mit InfoTick keine Daten erhält.

Der Aufruf mit Symbol_Select scheint das Symbol "unbrauchbar" zu machen.

Naja werde Symbol_Select einfach im tester umgehen.

 
Carl Schreiber #:

Getreu des Spruchs, es gibt nichts, was nicht schon für MQL4/5 programmiert wurde - such doch erst und orientier Dich, an dem was andere schon zum Laufen gebracht haben.

Ich habe vor kurzem von einem genialen Trick berichtet: https://www.mql5.com/de/forum/389149#comment_27835559

Außerdem richte Dich nach dem, was im EA ankommt. Der Chart ist der Geschwindigkeit wegen nicht immer auf der Höhe des Moments, die grafische Aktualisierung erfolgt nur zB. bei einem neuen Balken.

Danke für die Antwort.

Ja von der Methode mit dem custom event habe ich auch schon gelesen.

Dazu gibt es bereits zwei gute Artikel.

https://www.mql5.com/en/articles/234

https://www.mql5.com/de/articles/648


Mein multi symbol EA läuft noch mit der standard OnTick methode.. wenn ich mal Zeit habe werde ich das vielleicht mal ändern.

The Implementation of a Multi-currency Mode in MetaTrader 5
The Implementation of a Multi-currency Mode in MetaTrader 5
  • www.mql5.com
For a long time multi-currency analysis and multi-currency trading has been of interest to people. The opportunity to implement a full fledged multi-currency regime became possible only with the public release of MetaTrader 5 and the MQL5 programming language. In this article we propose a way to analyze and process all incoming ticks for several symbols. As an illustration, let's consider a multi-currency RSI indicator of the USDx dollar index.
 
Christian #:

Das ist ein Auszug aus meinem arbitrage trader der im 50ms Takt ca 22 Symbole abfragt.

Ich glaube dir fehlt nur Refreshrates.


Danke für Deine Antwort.

Ja wie gesagt, das Problem tritt nur auf, wenn der Symbol_Select Aufruf der allererste Aufruf für dieses Symbol ist.

Werden die Daten zuvor von zum Beispiel InfoTick angefordert, gibt es keine Probleme.


Sieht ja spannend aus, welche Sprache und Applikation verwendest du für Deinen arbitrage trader?

 
twtrading #:

Danke für Deine Antwort.

Ja wie gesagt, das Problem tritt nur auf, wenn der Symbol_Select Aufruf der allererste Aufruf für dieses Symbol ist.

Werden die Daten zuvor von zum Beispiel InfoTick angefordert, gibt es keine Probleme.


Sieht ja spannend aus, welche Sprache und Applikation verwendest du für Deinen arbitrage trader?

MQL5 was sonst ? :-) ...hab den freien EA von GitHub als Grundlage und dann stark verändert.

https://github.com/nerr/nst_ta/blob/master/MQL5/Experts/nst_ta.mq5

nst_ta/nst_ta.mq5 at master · nerr/nst_ta
nst_ta/nst_ta.mq5 at master · nerr/nst_ta
  • nerr
  • github.com
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters