Tester

 

sagts mal, ist euch beim Tester mal aufgefallen, das er zeitweise 2 Positionen aufmacht?


ich probiere da gerade was aus, und mit dem Code, dürfte er ja niemals einen 2ten Trade eingehen

ich sende nicht async


void StartTrade()
  {
   ResetLastError();


   if(!PositionsTotal())
     {
      if(isNewBar())
        {
         double Lots = Risikoberechnung(_Symbol,Risiko,SL,RisikoType,Grid,20);

         Print(Lots);
         if(Zufallszahl() == 0)
           {
            double SL_Trade = 0, TP_Trade = 0;
            if(SL_Trade == 0)
               SL_Trade = 0;
            else
               SL_Trade = Trade.Bid -SL*_Point;

            if(TP == 0)
               TP_Trade = 0;
            else
               TP_Trade = Trade.Bid + TP*_Point;

            _trade.Buy(Lots,_Symbol,0,SL_Trade,TP_Trade,"Start");
            Sleep(200);
           }


         if(Zufallszahl() == 1)
           {
            double SL_Trade = 0, TP_Trade = 0;
            if(SL_Trade == 0)
               SL_Trade = 0;
            else
               SL_Trade = Trade.Bid +SL*_Point;

            if(TP == 0)
               TP_Trade = 0;
            else
               TP_Trade = Trade.Bid - TP*_Point;

            _trade.Buy(Lots,_Symbol,0,SL_Trade,TP_Trade,"Start");
            Sleep(200);
           }
        }
     }
   if(GetLastError() !=0)
      Print("Error: ", GetLastError(), " ", __FUNCTION__);

  }


ob das IsNewBar funktioniert ist ja eigentlich egal, weil ich frage ja, ob er eine Position offen hat über PositionsTotal()


gibts da neuerdings Probleme?


edit: interessanterweise macht er das beim Debugger nicht

Slip ist auf rund 100mS eingestellt

wenn ich auf Forward Test stelle, dann passiert es auch, aber zu anderen Zeitpunkten

 
Hast Du im Handels-Log überprüft, ob er tatsächlich zwei Positionen gleichzeitig offen hat, bzw. die zweite öffnet, bevor die erste geschlossen wurde?
 
amando:

sagts mal, ist euch beim Tester mal aufgefallen, das er zeitweise 2 Positionen aufmacht?


ich probiere da gerade was aus, und mit dem Code, dürfte er ja niemals einen 2ten Trade eingehen

ich sende nicht async



ob das IsNewBar funktioniert ist ja eigentlich egal, weil ich frage ja, ob er eine Position offen hat über PositionsTotal()


gibts da neuerdings Probleme?


edit: interessanterweise macht er das beim Debugger nicht

Slip ist auf rund 100mS eingestellt

wenn ich auf Forward Test stelle, dann passiert es auch, aber zu anderen Zeitpunkten

Schön wäre es gewesen wenn du ein lauffahiges Skript was den Fehler reproduziert gepostet hättest.

Auf das gebastel hat doch keiner Lust.

PositionsTotal() gibt ein Int zurück.

  if(!PositionsTotal())

kann funktionieren , mit Aussicht auf Fehler irgenwann.

Wenn deine Funktion Zufallszah() zweimal aufgerufen wird kann er 2 Positionen aufmachen.
 
Christian:

Schön wäre es gewesen wenn du ein lauffahiges Skript was den Fehler reproduziert gepostet hättest.

Auf das gebastel hat doch keiner Lust.

PositionsTotal() gibt ein Int zurück.

kann funktionieren , mit Aussicht auf Fehler irgenwann.

Wenn deine Funktion Zufallszah() zweimal aufgerufen wird kann er 2 Positionen aufmachen.

ja, hab das jetzt nochmals umgebaut, da war von mir wirklich ein Fehler drin, ich darf das so nicht reingeben, er hat innerhalb der Funktion 2 Werte angenommen

wenn ich die Funktion 2x aufrufe, kann natürlich ein unterschiedliches Ergebnis rauskommen