[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 345

 
alsu >> :

OrderSelect (0,SELECT_BY_POS, MODE_HISTORY) - wählt den letzten Auftrag in der Historie aus

OrderSelect (1,SELECT_BY_POS, MODE_HISTORY) - der vorletzte Auftrag

Dementsprechend können Sie OrderProfit() für jeden von ihnen herausfinden


vielen Dank

 
Die letzte ist OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)
 
vademur писал(а) >>

Bitte teilen Sie uns mit, was den Fehler verursacht hat und wie er zu beheben ist, der im Protokoll des Testers auftritt:

19:20:11 TestGenerator: Fehler bei nicht übereinstimmenden Daten (niedriger Wert 1.3676 um 2009.05.13 00:00 und Preis 1.3676 nicht übereinstimmend)
19:20:11 TestGenerator: Nicht übereinstimmende Datenfehler (Hochwert 1.3696 am 13.05.2009 01:00 und Preis 1.3696 nicht übereinstimmend)
19:20:11 TestGenerator: Nicht übereinstimmende Datenfehler (Hochwert 1,3700 am 13.05.2009 02:30 und Preis 1,3700 nicht übereinstimmend)
19:20:11 TestGenerator: Nicht übereinstimmende Datenfehler (Hochwert 1,3700 am 13.05.2009 03:30 und Preis 1,3700 nicht übereinstimmend)

Ich habe versucht, die Preise zu löschen und erneut hochzuladen, vielleicht mache ich etwas falsch, im Code scheint alles in Ordnung zu sein.

Lassen Sie mich die Frage anders formulieren. Wo kann ich eine gute Geschichte bekommen oder wo kann ich darüber lesen?

 
alsu >> :
Silen schrieb (a) >>

Lernen Sie vor allem, richtig zu antworten. Kommentare wie der Ihre nützen niemandem.

Der Fehler wurde von GetLastError() nach der Ausführung von iTime() zurückgegeben. Hier ist ein Beispielcode...

//+------------------------------------------------------------------+
//|                                                   test_iTime.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
    
    for(int i = 20; i > 0; i--)
    {    
      CheckTF(PERIOD_M5, i);    
      CheckTF(PERIOD_M15, i);
      CheckTF(PERIOD_M30, i);
    }
   return(0);
  }  
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   
//----
   return(0);
  }
//--------------------------------------------------------------------  
int CheckTF(int TF, int Index)
  {
    int count = 5;   
    int err;     
    int xBars;
   
   xBars = iBars(Symbol(), TF);
   err = GetLastError();
   while ( err == 4066)
   {
      Sleep(200);
      xBars = iBars(Symbol(), TF);
      err = GetLastError();
   } 
    err = GetLastError();
    datetime t0 = iTime(NULL, TF, Index);
    err = GetLastError();
    
    if( err > 0 && count >0)
    {
      Print("Error: ", err," TF: ", TF," Index: ", Index , " count: ", count);
      Sleep(200);
      count--;
      
      t0 = iTime(NULL, TF, Index);
      err = GetLastError();      
    }
   return(0);
  }  
//+------------------------------------------------------------------+
 
Roger >> :
Die letzte ist OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)

Ja, das stimmt, ich habe es selbst schon im selben Thread beantwortet :))) https://www.mql5.com/ru/forum/111497/page227#204964

 
Silen >> :

Der Fehler wurde von GetLastError() nach der Ausführung von iTime() zurückgegeben. Hier ist ein Beispielcode...


Getestet.

Während der Ausführung der init()-Funktion können die neuen Symboldaten noch nicht verfügbar sein (und sind es offensichtlich auch nicht). Daher der Fehler. Es gibt nur eine Möglichkeit, dagegen vorzugehen - versuchen Sie nicht, Daten in der Funktion init() zu analysieren.

 
alsu >> :

Getestet.

Während der Ausführung von init() können die neuen Symboldaten noch nicht verfügbar sein (und sind es natürlich auch). Daher der Fehler. Es gibt nur eine Möglichkeit, dagegen vorzugehen - versuchen Sie nicht, Daten in der Funktion init() zu analysieren.

Danke, aber gibt es eine Garantie, dass die Daten in start() verfügbar sind?

 

Ich suche ein Skript oder einen Indikator, um die Verteilung des Tickvolumens direkt auf dem Balken zu sehen.

wie auf diesem Bild aus der Branche Haben Sie dieses Bild gesehen?


 

Guten Tag, könnten Sie mir bitte sagen

if(OrderSelect(0, SELECT_BY_POS,MODE_HISTORY)==true)
{
double x=OrderProfit();
Print("last ",x);

}

Ich brauche den Gewinn des letzten abgeschlossenen Auftrags, aber es ist der allererste.

 
vik-777 >> :

Guten Tag, bitte beraten Sie mich

if(OrderSelect(0, SELECT_BY_POS,MODE_HISTORY)==true)
{
double x=OrderProfit();
Print("last ",x);

}

Ich brauche den Gewinn des letzten geschlossenen Auftrags, aber es ist der allererste, was ist falsch im Code?

Oben...

https://www.mql5.com/ru/forum/111497/page345#245944