[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 112

 

Guten Abend!

Ich habe eine einfache Frage.

Aus welchem Grund kann der EA nach der Initialisierung nicht zu start(); gehen?

Vielleicht hatte jemand schon einmal ein solches Problem?

Von init(); I exit return(0); .

Vielen Dank im Voraus für die Antwort!

 
Und woher wissen Sie, dass er "nicht zu Start" gegangen ist?
 
BBSL:

Guten Abend!

Ich habe eine einfache Frage.

Aus welchem Grund kann der EA nach der Initialisierung nicht zu start(); gehen?

Vielleicht hatte jemand schon einmal ein solches Problem?

Von init(); I exit return(0); .

Vielen Dank im Voraus für die Antwort!

Keine Kostenvoranschläge - kein Start. Für den Start ist ein Häkchen erforderlich + Zustimmung des Experten.
 

Hallo an alle und Gewinne!

Ich habe ein solches Problem.

Auf meinem Heimcomputer erstelle ich gerade ein grafisches Layout. Wie überträgt man sie auf einen anderen Computer - welche Datei soll überschrieben werden?

Ich kann die Ausgabe nicht verwenden, indem ich den gesamten MT4-Ordner kopiere und ihn dann unter einem neuen Namen auf einen anderen Computer kopiere, weil das zu kompliziert ist. Das Interessante daran ist, dass, wenn ich den Ordner auf einem anderen Computer mit dem alten Namen belasse, nichts Neues in den Charts zu sehen ist...

Wer weiß, Hilfe!

 

BBSL ,ich habe immer "start();" geschrieben - haben Sie es so geschrieben? Sie brauchen dort keinen Doppelpunkt. vielleicht gibt es keine geschweiften Klammern

kiimar, haben Sie es geschlossen? Wenn ja, müssen Sie den Code sehen

 
BBSL:

Guten Abend!

Ich habe eine einfache Frage.

Aus welchem Grund kann der EA nach der Initialisierung nicht zu start(); gehen?

Vielleicht hatte jemand schon einmal ein solches Problem?

Von init(); I exit return(0); .

Vielen Dank im Voraus für die Antwort!

Die Antwort ist noch einfacher: Das Vorhandensein des return(0) -Operators am Ende eines Funktionskörpers bedeutet nicht, dass dieser Operator jemals ausgeführt wird.
 

Wie prüfe ich, ob ein Auftrag durch TakeProfit oder StopLoss ausgelöst wird? Vielen Dank für Ihre Antwort!

 
BBSL:

Aus welchem Grund kann der EA nach der Initialisierung nicht zu start(); gehen?

Vielleicht hat jemand dieses Problem schon einmal gehabt?

Manchmal gibt es komplexe Berechnungen oder Laden Geschichte in init(), oder das Terminal hat eine Menge von Indikatoren und EAs, die das Terminal oder...

Wenn jedoch während der Code-Initialisierung das Terminal den Code unterbricht, wird im Protokoll folgender Fehler angezeigt: ".... timeout in expert ...."

Wenn das Protokoll keinen Fehler anzeigt, bedeutet dies, dass die Initialisierung erfolgreich war. Die start()-Funktion selbst ist leicht zu überprüfen - schreiben Sie start() : Print("new tick") in die erste Zeile;

 
Sayod ,in welchem Zeitrahmen haben Sie gehandelt und mit welchen Parametern?
 
Jaguar1974:

Wie prüfe ich, ob ein Auftrag durch TakeProfit oder StopLoss ausgelöst wird? Vielen Dank für die Antwort!


Prüfen Sie die Orderhistorie, wenn der Schlusskurs gleich SL oder TP ist - dann ... aber ich denke, es wäre einfacher, den Gewinn einer geschlossenen Order zu prüfen - wenn > 0 dann nehmen Sie sonst ...

Hier ist ein ähnlich sinnvolles Stück Code:

double history(){
int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера
for(int i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордера
  if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
    if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной паре
      if(time<OrderCloseTime()){//(сравниваем его с хранящимся в пероеменной time) 
        time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
        profit=OrderProfit();//и заодно запоминаем прибыль ордера
      }
    }
  }
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
if(profit == 0 &&time == 0){//действия если история чистая

}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым

}
if(profit <  0 ){//действия если последний ордер был убыточным

}
return(0);
}
Grund der Beschwerde: