Beunruhigt durch den Fehler gibt es keine Handelsgeschäfte - Seite 4

 
Alexey Viktorov:

Der Computer ist ein Idiot. © M.M. Botvinnik.

Geben Sie also vor, ein Idiot zu sein, und versuchen Sie, den Algorithmus aus der Sicht eines Idioten und mit den von einem Idioten festgelegten Parametern zu bestehen. Unter diesem Gesichtspunkt passt der Autovalidator. Achten Sie auf das "Feedback". Werden Sie vom Expert Advisor über Fehler informiert?

Ich habe schließlich herausgefunden, vielleicht kann jemand helfen, in der Regel hat die sowjetische nur, wenn die MM für eine minimale Menge überprüft wurde, und so hardcore set lot = 0,01, gut, in der Validator Einzahlung stellt sich heraus, $ 1 (fand diese Informationen in einem der Themen), bzw., verwendet es viel 0,001 (oder so) zu handeln und weil ich immer an einem Ort war viel 0,01, bzw., er hatte nicht genug Geld und der Roboter nicht Handel)

 
Roman Gergert:

Ich habe schließlich herausgefunden, vielleicht wird jemand helfen, im Allgemeinen, das Board nur, wenn die MM für eine minimale Menge überprüft wurde, und so Hardcore-Set Lot = 0,01, gut, in der Validator Einzahlung stellt sich heraus, $ 1 (fand diese Informationen in einem der Themen), bzw., verwendet es die Menge 0,001 (oder so) zu handeln und weil ich immer an einem Ort eine Menge von 0,01 hatte, bzw., hat er nicht genug Geld und der Roboter nicht Handel)

Ich möchte das Thema noch einmal aufgreifen. Ihre Antwort hilft mir nicht weiter. Ich habe eine Volumenberechnung und wenn nicht alles passt, wird das Mindestvolumen verwendet:

SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN)

Legen Sie schließlich die Mindestmenge auf einmal fest, ohne irgendwelche Berechnungen anzustellen. Dann kommt die Nachschusspflicht... und keine Handelsgeschäfte.

Gestern bin ich über eine Antwort im Forum gestolpert, die besagt, dass manchmal ein und derselbe Code nach einiger Zeit gesendet werden kann und er dann durchgeht. Die Zeit ist vergangen, sie wird nicht gesendet.

Was ist zu tun, vor 2 Wochen ging diese Lautstärkeerkennung und seitdem hat sich nichts geändert!!!

 
Evgeniy Scherbina:

Ich möchte das Thema noch einmal aufgreifen. Ihre Antwort hilft mir nicht weiter. Ich habe eine Volumenberechnung, und wenn nicht alles hineinpasst, wird das Mindestvolumen verwendet:

Legen Sie schließlich die Mindestmenge auf einmal und ohne jede Berechnung fest. Dann kommt die Nachschusspflicht... und keine Handelsgeschäfte.

Gestern bin ich über eine Antwort im Forum gestolpert, die besagt, dass manchmal ein und derselbe Code nach einiger Zeit gesendet werden kann und er dann durchgeht. Die Zeit ist vorbei, es wird nicht gesendet.

Was ist zu tun, vor 2 Wochen ging diese Lautstärkeerkennung durch und seitdem hat sie sich in keiner Weise verändert!!!

Ich werde ein Oldtimer sein. Mit einer solchen Bewertung, Zahlen unter dem Avatar und einem Problem haben Sie das Thema, in dem es diskutiert wurde, irgendwie nicht gesehen. Und genau dort wurde die Lösung gefunden.

Автоматический валидатор - проблемы
Автоматический валидатор - проблемы
  • 2019.04.26
  • www.mql5.com
Пытаюсь обновить версию советника и получаю ошибку. Тот же советник в тестере стратегий. Паралельно пишу советники и для MT4, там все ОК...
 
Alexey Viktorov:

Ich werde ein Oldtimer sein. Mit einer solchen Bewertung, Zahlen unter dem Avatar und einem Problem haben Sie das Thema, in dem es diskutiert wurde, irgendwie nicht gesehen. Und schon haben Sie eine Lösung gefunden.

Unter den Völkern Russlands gibt es solche, die zu heidnischen Göttern beten, und solche, die antworten
 
Evgeniy Scherbina:
Unter den Völkern Russlands gibt es solche, die zu heidnischen Göttern beten, und solche, die auf

Ich habe geantwortet, aber ich bin kein heidnischer Gott. Ich denke, dies ist eine vorübergehende Lösung für das Problem, das hoffentlich bald behoben sein wird.

 
Anmerkung: Diese Bemerkung ist wahrscheinlich eher für mich selbst gedacht, wenn ich das nächste Mal nach dem Fehler "Es gibt keine Handelsoperationen" suche.
ForceStop an zweifelhaften Stellen eingesetzt. Außerdem wird er im Bericht als Division mit Null und dem genauen Ort dieses Fehlers angezeigt.
Beispiel in meinem Fall:
//+------------------------------------------------------------------+
//|  Проверяет объем ордера на корректность                          |
//+------------------------------------------------------------------+
int ForceStop=0;
int sstop=0;
bool CheckVolumeValue(double volume,string &description)
  {
  
//--- минимально допустимый объем для торговых операций
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
     {     
      description=StringFormat("Volume is less than the minimum allowable SYMBOL_VOLUME_MIN=%.2f",min_volume);
      sstop=5/ForceStop; // force stop, zerro divide
      return(false);
     }

//--- максимально допустимый объем для торговых операций
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
     {
      description=StringFormat("Volume is greater than the maximum allowable SYMBOL_VOLUME_MAX=%.2f",max_volume);
      sstop=5/ForceStop; // force stop, zerro divide
      return(false);
     }

//--- получим минимальную градацию объема
   double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

   int ratio=(int)MathRound(volume/volume_step);
   if(MathAbs(ratio*volume_step-volume)>0.0000001)
     {
      description=StringFormat("The volume is not a multiple of the minimum gradation SYMBOL_VOLUME_STEP=%.2f, Closest correct volume %.2f",
                               volume_step,ratio*volume_step);
      sstop=5/ForceStop; // force stop, zerro divide
      return(false);
     }
   description="Correct value of volume";
   return(true);
  }
 

Bruder, es hat mir geholfen, alle Variablen in die Kopfzeile des Codes zu verschieben.

void OnDeinit

{
Alert(GetLastError());

}

Und in der Initiale ResetLastError();

Ich weiß nicht, was funktioniert hat, aber so etwas wie das hier

 

Es hilft mir, einfach ein paar Zeilen im Code zu ändern (zu bearbeiten).
Oder fügen Sie einfach Leerzeilen ein und kompilieren Sie neu.

Ich glaube, es handelt sich um eine Art Fehler auf dem Server.

 
Taras Slobodyanik:

Oder fügen Sie einfach Leerzeilen ein und kompilieren Sie neu.

Bestätigt, manchmal einfach neu kompilieren und es funktioniert.

 
Nauris Zukas:

Bestätigt, manchmal einfach neu kompilieren und es geht.

Das liegt nicht daran, dass ich ihn neu kompiliert habe, sondern daran, dass der Test an einem anderen Datum begann. Und mir ist so ein Fehler aufgefallen, wenn man etwas ausrutscht, was schon war, dann wird nicht getestet, sondern sofort das vorherige Testergebnis angezeigt. Lassen Sie sich also nicht von solchen Krücken täuschen. Versuchen Sie, es normal zu machen. Wenn etwas fehlt oder Parameter ungültig sind, melden Sie dies über Drucken und alles wird korrigiert.