Wenn Sie einen Berater schreiben, gibt es ein Problem. - Seite 6

 
khorosh >> :

Was sind die Anführungszeichen 4 oder 5 Dezimalstellen?

4 Ziffern...habe es auch mit 5 Ziffern versucht. NormalizeDouble funktioniert nicht :(

 
Im Allgemeinen ist das alles ein bisschen seltsam.... Im ersten Beitrag gab ich einen Screenshot des EA, begann es zu aktualisieren, erschien Fehler ordersend Fehler 130, kehrte alles in seinen ursprünglichen Zustand, aber die Fehler nicht verschwunden sind!!!!!!! Aber alles funktionierte im Originalzustand!!!! Was zum Teufel ist das?
 
Noterday >> :

Das ist es, was ich damit sagen will. Warum ist ein Stopp von 10 Pips falsch...


Die Sache ist die: Ein Stop von 10 Pips kann falsch sein, weil der Mindestabstand, bei dem Sie einen Stop Loss platzieren können, mehr als 10 Pips beträgt (zum Beispiel 15 Pips). Dieser Wert wird vom Handelsraum festgelegt.
 
Ich habe es mit 200 versucht! Es ist immer noch dasselbe...
 
Noterday >> :
Ich habe auch 200 versucht! Immer noch dasselbe...


Können Sie den ursprünglichen EA-Code veröffentlichen?

 
#property copyright "Мостовнек"
#property link      ""

int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }

extern int Frame = 1;


int start()
  {
  int total;
  
  for (int i = 0; i <= OrdersTotal(); i++)
     {
       if (OrderSelect( i-1, SELECT_BY_POS) == true)
       total++;
     }
  
  
    double Buffer1 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,0,1),4);
    double Buf1    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,6,1),4);
    double Buffer2 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,0,1),4);
    double Buf2    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,6,1),4);
    
    double ZZ_1    = NormalizeDouble(iCustom(NULL,0,"ZigZag",0,0,1),4);

//-----------------------------------------------------  

  if ( total == 0 && (( Buffer1 != EMPTY_VALUE || Buf1 != EMPTY_VALUE) && ( ZZ_1 == Buffer1 || ZZ_1 == Buf1)))
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,10, ZZ_1+15*Point,Bid-20*Point,"SELL",0,0,Red);
     Print("Zigzag = ", ZZ_1," | Buffer1 = ", Buffer1);
    }
  
  if ( total == 0 && (( Buffer2 != EMPTY_VALUE || Buf2 != EMPTY_VALUE) && ( ZZ_1 == Buffer2 || ZZ_1 == Buf2)))
    {
     OrderSend(Symbol(),OP_BUY,0.1,Ask,10, ZZ_1-15*Point,Ask+20*Point,"BUY",0,0,Blue);
     Print("Zigzag = ", ZZ_1," | Buffer2 = ", Buffer1);
    }

return(0);
  }
 

Das Prinzip der Festlegung eines Stop-Loss in der Funktion OrderSend() ist korrekt. Es gibt also keinen Grund, dort etwas zu ändern.

Wenn die Print()-Funktion ausgeführt wird, ist ZigZag=0, daher der Stop Loss : 0+15*Point, d.h. gleich 0,0015. Deshalb wird der Fehler OrderSend Error 130 erzeugt.

double ZZ_1 = NormalizeDouble(iCustom(NULL,0, "ZigZag",21,5,3,0,1),4);// 21,5,3 sind externe Indikatorvariablen, sie müssen in der Reihenfolge angegeben werden, in der sie im ZigZag-Indikator deklariert sind.

Ähnlich ist double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);

Hier werden keine externen Variablen angegeben.

 

Aber sie sind optional, wie in der MQL4-Dokumentation beschrieben.

Und in

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);


überhaupt keine externen Variablen :)

Übrigens, meine PRINT-Funktion gibt ZigZag normal aus:


 
Noterday >> :

Aber sie sind optional, wie in der MQL4-Dokumentation beschrieben.

Und in

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4);


überhaupt keine externen Variablen :)

Übrigens, meine PRINT-Funktion gibt ZigZag normal aus:



Wenn diese Indikatoren keine externen Variablen enthalten, gibt es auch keinen Anspruch :). Aber ich muss noch über die Haltestellen nachdenken. Vielleicht bekommen Sie einen Einblick.
 
ellizii >> :

Wenn diese Indikatoren keine externen Variablen enthalten, gibt es auch keinen Anspruch :). Aber ich muss noch über die Haltestellen nachdenken. Vielleicht bekommen Sie einen Einblick.

Mach dir keine Gedanken darüber :) Für Entwickler: BASIC TESTER/OPTIMIZER

Ich bin sicher, dass es bei Stopomi genauso ist.