Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 439

 
Leanid Aladzyeu:
...
Wie kann ich die Werte der Arrays abrufen, ohne die Funktion aufzurufen? Oder wie kann man ein Array dazu bringen, sich an die letzten Werte zu erinnern, die geschrieben wurden?
...


Um etwas aus einem Array abrufen zu können, müssen Sie dieses "Etwas" zunächst in das Array schreiben.

Leanid Aladzyeu:
...
Oder wie kann man ein Array dazu bringen, sich an die letzten Werte zu erinnern, die geschrieben wurden?
...
Für welche Bedingungen: Soll das Array beim Wechsel des Zeitrahmens oder nach dem Neuladen des Terminals gespeichert werden?
 
Karputov Vladimir:


Wenn ich etwas aus einem Array nehmen möchte, muss ich es zuerst in das Array schreiben.

Unter welchen Bedingungen: Soll das Array beim Wechsel des Zeitrahmens des Diagramms oder nach dem Neuladen des Terminals gespeichert werden?

nicht während der Arbeit des EA

Wenn ich returnee in der Funktion setze, wenn es einen Auftrag auf dem Markt gibt, gibt es mir null Arrays (ich setze returnee, bevor die Arrays auf Null gesetzt werden),

 
Leanid Aladzyeu:

Wenn ein Auftrag auf dem Markt ist, erhalte ich Null-Arrays (ich setze den Empfänger, bevor die Arrays auf Null gesetzt werden),

Was sind die Felder, die der Auftrag "gibt"? Wo werden sie angegeben und wo werden sie ausgefüllt? Bitte fügen Sie auch den Code korrekt ein.
 
Karputov Vladimir:

Die Funktionsparameter müssen auf die ursprüngliche Version zurückgesetzt werden, sonst werden sie einfach nicht aufgerufen:

Hier ist der Code der Standard-SignalAC-Datei

//+------------------------------------------------------------------+

//| "Abstimmen", dass der Preis steigen wird. |

//+------------------------------------------------------------------+

int CSignalAC::LongCondition(void)

Ich verstehe es so: Der Code sendet ein Signal und die Parameterdouble& price,double& sl,double& tp,datetime& expiration werden benötigt, um eine Order zu platzieren,

dies von einem anderen EA-Block übernommen wird?

 

den Code auf eine Variante korrigiert:

int CSampleSignal::ShortCondition(void)

Der Experte hat angefangen, etwas zu tun, danke für den Tipp!

 
pr0gre5:

den Code zu einer Variante korrigiert:

int CSampleSignal::ShortCondition(void)

Der Experte hat angefangen, etwas zu tun, danke für den Tipp!

Sie sind herzlich willkommen. Fragen Sie, fragen Sie, wann und wo Sie es brauchen :)
 

Dient dieser Code dazu, die Berechnung einzuschränken, indem er nur einmal bei einem neuen Balken gezählt wird?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

 
-Aleks-:

Eine solche Frage dient dieser Code, um die Berechnung zu begrenzen - zählen nur einmal auf einen neuen Balken?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

Wenn der neue Balken in einem M1-Zeitrahmen liegt, wird eine Meldung ausgegeben:

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static datetime TimeN;
   datetime TimeC=iTime(NULL,PERIOD_M1,0);
   if(TimeN==TimeC)
      return;
   TimeN=TimeC;
// новый бар, выполняем код
   Print("New bar");
   return;
  }
 
Karputov Vladimir:

Wenn der neue Balken auf dem M1-Zeitrahmen liegt, wird eine Meldung gedruckt:

Ich habe also recht, das ist ein Scheck für eine neue Bar?
 
-Aleks-:
Ich habe also recht, es ist ein neuer Bar-Check?
Wenn Sie meinen Code meinen - dann ja, mein Code ist ein neuer Barcheck.
Grund der Beschwerde: