Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 893

 
Nun, jetzt ist auch das Forum fehlerhaft: Der Beitrag ist nicht vollständig, aber es werden keine Änderungen akzeptiert...
 
tuner:
Sie könnten z. B. den Zeitrahmen programmatisch umschalten und bei Bedarf wieder zurückschalten.
Ich glaube nicht, dass die Variablen auf diese Weise zurückgesetzt werden.
 
tuner:
Oder versuchen Sie, die Vorlage zu speichern und dann wieder zu laden
Tolle Idee! Ist das möglich?
 

Ich weiß nicht, was...

Ich habe drei Versionen des Expert Advisors geschrieben, die alle ohne Fehler kompiliert wurden, aber im Testgerät passiert etwas Seltsames - auf M5 öffnet er eine Position und schließt sie nicht, aber auf M1 öffnet er bei jedem Tick und schließt beim nächsten, unabhängig von den vorgeschriebenen Bedingungen.

 
abeiks:
Ich glaube nicht, dass die Variablen auf diese Weise zurückgesetzt werden.
Externe Variablen werden zurückgesetzt, da OnInit() aufgerufen wird, wenn der Zeitrahmen geändert wird
 
abeiks:
Tolle Idee! Ist das möglich?
Wahrscheinlich... Es gibt in MQl4 eingebaute Funktionen zum Speichern und Laden von Vorlagen: ChartSaveTemplate, ChartApplyTemplate
 
rapid_minus:

Ich weiß nicht, was...

Ich habe drei Versionen des Expert Advisors geschrieben, die alle ohne Fehler kompiliert wurden, aber im Tester passiert etwas Seltsames - auf M5 öffnet er eine Position und schließt sie nicht, aber auf M1 öffnet er bei jedem Tick und schließt beim nächsten, ohne Rücksicht auf die vorgeschriebenen Bedingungen.

Sagen Sie mir bitte, wenn Sie eine Multiplikationsfunktion schreiben

double f(double a1, double a2)
{
 return(a1*a2+1);
}

Wird diese Funktion jemals 2*2=4 ergeben oder nicht?

Ich meine damit, dass kein Compiler die Logik des Codes überprüft. Und Ihre Expert Advisors sind voll von logischen Fehlern.

 
AlexeyVik:

Sagen Sie mir bitte, wenn Sie eine Multiplikationsfunktion schreiben

Wird diese Funktion jemals 2*2=4 ergeben oder nicht?

Ich meine, kein Compiler überprüft die Logik des Codes. Und Ihre Expert Advisors sind voll von logischen Fehlern.

Ich habe es verstanden. Nur eine Sache verstehe ich nicht - welche Art von Fehlern?

ZZY: und welcher Fehler kann sich bei verschiedenen TFs unterschiedlich verhalten?

ZZZY: Wo ist hier zum Beispiel der logische Fehler?

void CritClose() 
{ 
  for (int ord = OrdersTotal()-1 ; ord >= 0; ord--) 
  { 
    if(!OrderSelect(ord,SELECT_BY_POS,MODE_TRADES))Comment("Не найдено открытых ордеров. Ошибка #",GetLastError());
     
    if (OrderSymbol() == Symbol()) 
    {if ((OrderMagicNumber()==10011 || OrderMagicNumber()==10033 || OrderMagicNumber()==10133)&&(((условие А) && (условие Б)&&(условие В)) || ((условие Г) && (условие Д)&&(условие Е))))      
          {        
          ord_close=OrderClose(OrderTicket(),0.1, Bid, 0, Red);          
            if (ord_close = false)          
               { Comment("Закрытие позиции БАЙ завершилось с ошибкой #",GetLastError()); }            
               else  { Ord=0; }
          }
      else if (... и т.д....
 

Aua! Guru! Haben Sie sich den Finger in der Handfläche gebrochen?

 
rapid_minus:

Ich verstehe es. Ich verstehe nur nicht, welche?

ZS: Und welcher Fehler könnte sich bei verschiedenen TFs unterschiedlich verhalten?

ZZY: Wo ist hier zum Beispiel der logische Fehler?

Der logische Fehler liegt darin, dass die Programmstruktur falsch ist. Nach dem Kommentar "Nicht gefunden ... ", wird der Code weiter ausgeführt, als ob er gefunden worden wäre. Vladimir, lies doch mal ein Lehrbuch, ja?