Wer kann mit dem Roboter helfen, warum funktioniert er nicht? - Seite 2

 
Alexey Volchanskiy:

Die Sprachregelung lässt nicht zu, dass Parameter mit Standardwerten verschluckt werden. Wenn Sie die Farbe der Pfeile einstellen müssen, schreiben Sie alle Parameter links neben die Farbe. B Schlupf 3 ist nicht genug, wenn es 5 Ziffern ist, wird es requotes, schrieb ich 50. Und SL und TP sollten nicht gleich Null gesetzt werden,Aleksey Vakhrushev hat bereits darüber geschrieben.


Das ist ein Irrtum:

Rückgabewert von 'OrderSend' sollte geprüft werden
 
GIM:

Fehler:

Rückgabewert von 'OrderSend' sollte geprüft werden
Dies ist nur eine Warnung. Die Datei wird kompiliert.
 

Guten Tag bitte helfen.EA öffnet nur für den Verkauf.


extern double Lots=0.1;
extern intMAPeriod=14;
extern int FastMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int FastMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int SlowMAPeriod=42;
extern intn SlowMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int SlowMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int TP=0; //takeprofit
extern int SL=0; //Stop Verlust

int BuyTicket,SellTicket;



int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1);
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,1);
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2);
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,2);


if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)){
if(SellTicket!=0){ //True wenn SellTicket nicht 0 ist;

SellTicket=0;
}
if(BuyTicket==0){ //// True if BuyTicket is 0;
BuyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL=Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE);
}
}
if(fast_ma1<slow_ma1 && !(fast_ma2<slow_ma2)){
if(BuyTicket!=0){ //true wenn BuyTicket nicht 0 ist ;
BuyTicket=0;
}
if(VerkaufTicket==0){ //True if(VerkaufTicket ist gleich 0
SellTicket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE);
}
}

zurück(0);
}

 
Alexey Kozitsyn:
Dies ist nur eine Warnung. Die Datei wird kompiliert.
Nun, es öffnet sich immer noch nicht der Deal.....
 
GIM:
Der Deal lässt sich immer noch nicht öffnen.....
Nun, ich denke, das ist nicht der Fall... Obwohl es sich lohnen könnte, einen Blick in das Fahrtenbuch zu werfen, um zu sehen, was dort steht... Nun, das ist nur eine Option.
 
Alexey Kozitsyn:
Nun, ich schätze, es sollte nicht sein... Obwohl es sich lohnen könnte, einen Blick in die Zeitschrift zu werfen, um zu sehen, was dort steht... Nun, das ist eine Möglichkeit.
Danke! (Lacht) Ich werde es weiter versuchen))
 
AdikAmir:

Guten Tag, bitte helfen Sie mir, der Berater öffnet nur zum Verkauf.


extern double Lots=0.1;
extern int FastMAPeriod=14;
extern int FastMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int FastMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int SlowMAPeriod=42;
extern intn SlowMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int SlowMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int TP=0; //takeprofit
extern int SL=0; //Stop Verlust

int BuyTicket,SellTicket;



int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1);
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,1);
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2);
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,2);


if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)){
if(SellTicket!=0){ //True wenn SellTicket nicht 0 ist;

SellTicket=0;
}
if(BuyTicket==0){ //// True if BuyTicket is 0;
BuyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL=Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE);
}
}
if(fast_ma1<slow_ma1 && !(fast_ma2<slow_ma2)){
if(BuyTicket!=0){ //true wenn BuyTicket nicht 0 ist ;
BuyTicket=0;
}
if(VerkaufTicket==0){ //True if(VerkaufTicket ist gleich 0
SellTicket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE);
}
}

zurück(0);
}

Das ist ein seltsamer Code, den ich noch nie gesehen habe.

Die Variablen BuyTicket und SellTicket sind bei jedem neuen Tick gleich Null oder unverständlich, da sie nicht initialisiert sind.

Das Konstrukt if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)) ist überhaupt nicht klar, wenn man es in menschliche Sprache übersetzt, sieht diese Bedingung wie folgt aus

wenn fast_ma1 größer ist als slow_ma1 UND NOT fast_ma2 größer ist als slow_ma2. Der Operator ! bedeutet Negation: if(fast_ma1>slow_ma1 && (fast_ma2<slow_ma2))

Ihre Bedingung ist erfüllt, wenn fast_ma1>langsam_ma1 = wahr (true) und fast_ma2>langsam_ma2 = falsch (false)

....
if (OrdersTotal()==0)
{
  if (условие на покупку)
  {
    ticet = OrderSend(Symbol(),OP_BUY,.....);
    if (ticet==0) Print("ERROR");
  }
  if (условие на продажу)
  {
    ticet = OrderSend(Symbol(),OP_SELL,.....);    
    if (ticet==0) Print("ERROR");
  }

}
//Простейший код для примера.
 
Vitalii Ananev:

Das ist ein seltsamer Code, den ich noch nie gesehen habe.

Die Variablen BuyTicket und SellTicket sind bei jedem neuen Tick gleich Null oder unverständlich, da sie nicht initialisiert sind.

Das Konstrukt if(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2)) ist überhaupt nicht klar, wenn man es in menschliche Sprache übersetzt, sieht diese Bedingung wie folgt aus

wenn fast_ma1 größer ist als slow_ma1 UND NOT fast_ma2 größer ist als slow_ma2. Der Operator ! bedeutet Negation: if(fast_ma1>slow_ma1 && (fast_ma2<slow_ma2))

Die Bedingung ist erfüllt, wenn fast_ma1>langsam_ma1 = true (wahr) und fast_ma2>langsam_ma2 = false (falsch) ist.

Ich setze Ihren Code trotzdem ein. Die Verkaufsposition wird nicht geöffnet, sondern nur der KAUF.
 
AdikAmir:
Ich habe Ihren Code noch nicht öffnen Verkaufen Position, nur BUY.

extern double Lots=0.1;
extern intnal double FastMAPeriod=5;
extern int FastMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int FastMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int SlowMAPeriod=75;
extern intn SlowMAMethod=3; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
extern int SlowMAPrice=3; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
extern int TP=500; //Gewinn erzielen
extern int SL=250; //Verluststop
Doppeltes Ticet;

int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1);
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,1);
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2);
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,2);

if (AufträgeSumme()==0)
{
if (fast_ma1>slow_ma1 && (fast_ma2<slow_ma2))
{ ticet = OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE);
if (ticet==0) Print("ERROR");
}
if (slow_ma1>fast_ma1 && (slow_ma2<fast_ma2))
{
ticet = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE);
if (ticet==0) Print("ERROR");
}

}

zurück(0);
}




 
Bei der Berechnung von SL /TP müssen wir die Vorzeichen ändern.
ticet = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE);
Grund der Beschwerde: