Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1727

 
Ivan Butko #:

Ich danke Ihnen.

Ich schrieb Print("Bar count on the 'EURUSD,M1' is ",iBars("EURUSD",PERIOD_M1)); aus der Dokumentation. Ich habe die Zahl 1001 in das Protokoll geschrieben.))) Obwohl die Historie geladen wird, ist die maximale Anzahl der Balken in den Einstellungen mehr als 1000000.

Bitte geben Sie einen Rat, wie man das Problem lösen kann

Download der Geschichte

2021.11.08 11:02:11.919 !Print_Magic EURUSD,M30: Bar count on the 'EURUSD,M1' is 73589
 
MakarFX #:
die Geschichte herunterladen.

Geladen, in vollem Umfang. Im Archiv gibt es 8.000.000 Minutenbalken
Und das Protokoll sagt

EURUSD,M1: Bar count on the 'EURUSD,М1' is 1001


 
Ivan Butko #:

Geladen, in vollem Umfang. Im Archiv gibt es 8.000.000 Minutenbalken
Und das Protokoll sagt

EURUSD,M1: Bar count on the 'EURUSD,М1' is 1001


 
Ivan Butko #:

Ich danke Ihnen.

Ich schrieb Print("Bar count on the 'EURUSD,M1' is ",iBars("EURUSD",PERIOD_M1)); und entnahm dies der Dokumentation. Das Terminal hat die Nummer 1001 aufgezeichnet). Obwohl die Historie geladen wird, ist die maximale Anzahl der Balken in den Einstellungen mehr als 1000000.

Bitte geben Sie einen Rat, wie man das Problem lösen kann

im Prüfgerät immer 1000 bar beim Start (oder weniger).

 
MakarFX #
int n=10;
   datetime bar_sig;
   for(int i=n;i>=0;i--)
     {
      if(iCustom(NULL,0,"Твой индикатор",0,n)=="Сигнал")
         bar_sig=time[n];
     }

Dieser Code zeigt das Signal bei der 10. Kerze, aber ich muss das Signal bei jeder Kerze von 1 bis N überprüfen.

 
Snajper007 #:

Dieser Code zeigt das Signal bei der 10. Kerze, aber ich muss das Signal bei jeder Kerze von 1 bis N überprüfen.

Nein, dieser Code prüft 10 Candlesticks und zeigt, welcher das Signal war
 
MakarFX #:
Nein, dieser Code prüft 10 Candlesticks und zeigt an, bei welchem das Signal war
In der Praxis wird nur angezeigt, wenn die Signalkerze die 10. wird.
 
Snajper007 #:
In der Praxis wird nur angezeigt, wenn die Signalkerze die 10. wird.
Code im Studio
 
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, n);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, n);


      if(a1 > 0)
         bar_sig_buy=Time[n];
         
      if(a2 > 0)
        bar_sig_sell = Time[n];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
 

MakarFX, hier ist ein Screenshot Sobald die Signalkerze die 10. wurde, war der Wert größer als Null. Davor war sie gleich Null.