Hilfe bei der Codierung - Seite 471

 
systemfault:
Hallo an alle,

Ich brauche Hilfe... Ich habe ein einfaches Ea, aber für 4 Stellen programmiert. (Zum Beispiel: EUR/USD: 1,1234)

Wie kann ich mein Ea 5-stellig verwenden? (Zum Beispiel: EUR/USD: 1,12345)

Danke:)

simpleea.mq4

Sie können dies hinzufügen:

*MathPow(10,_Digits%2)

wo immer Sie _Point verwenden, und dann wird es in Pips gleichermaßen auf 4 und 5 Ziffern Broker arbeiten

____________________

 

Hallo mladen,

danke für den Beitrag.

Ich mache es so.

int CheckForOpen()

{

double L = Niedrig;

double H = Hoch;

double Lots = MathRound(Kontoguthaben()/100)/1000;

if((H-Gebot>Limit*Punkt))

{OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,"",MAGICMA,0,CLR_NONE);

for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point*MathPow(10,_Digits%2),1,0,0,"",MAGICMA,0,CLR_NONE);}

}

if((Bid-L>Limit*Point))

{OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,"",MAGICMA,0,CLR_NONE);

for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point*MathPow(10,_Digits%2),1,0,0,"",MAGICMA,0,CLR_NONE);}

}

}

its true?

 
systemfault:
Hallo mladen,

Danke für den Beitrag.

Ich mache es so.

int CheckForOpen()

{

double L = Niedrig;

double H = Hoch;

double Lots = MathRound(Kontostand()/100)/1000;

if((H-Gebot>Limit*Punkt))

{OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,"",MAGICMA,0,CLR_NONE);

for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point*MathPow(10,_Digits%2),1,0,0,"",MAGICMA,0,CLR_NONE);}

}

if((Bid-L>Limit*Point))

{OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,"",MAGICMA,0,CLR_NONE);

for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point*MathPow(10,_Digits%2),1,0,0,"",MAGICMA,0,CLR_NONE);}

}

}

Stimmt das?

Ja

Ändern Sie dann aber auch den Grid-Parameter von 1500 auf 150, sonst wird versucht, den Preis 1500 Pips vom Bid oder Ask entfernt zu setzen.

 

Ich verwende diese Konfiguration;

extern int ZeitraumX = 60;

extern int Grenze = 50;

extern int Raster = 14;

extern int Betrag = 1;

extern int LockDown = 20;

Wie sieht diese Konfiguration aus?

 
systemfault:
Ich verwende diese Konfiguration;

extern int ZeitraumX = 60;

extern int Grenze = 50;

extern int Raster = 14;

extern int Betrag = 1;

extern int LockDown = 20;

Wie ist diese Konfiguration?

Es werden Kauf- und Verkaufslimits geöffnet, die 14 Pips von den Kauf- und Verkaufskursen entfernt sind.

Probieren Sie es aus

 
mladen:
Es öffnet Kauf- und Verkaufslimits 14 Pips entfernt von Ask und Bid Probieren Sie es aus

ich versuche... scheint dies...

Dateien:
adsz.png  35 kb
 
systemfault:
ich versuche... scheint dies...

Soweit ich sehe, tut es, was es tun soll

 
mladen:
Soweit ich sehe, tut es, was es tun soll

Yeah mladen..

Aber ich möchte die Aufträge nicht ohne Gewinn und Stoploss 14 Pips schließen

 
systemfault:
Yeah mladen.. Aber ich möchte die Aufträge nicht ohne Gewinn und Stoploss 14 Pips schließen

Dann fügen Sie auch Take Profit und Stop Loss hinzu.

 
mladen:
Dann fügen Sie auch Take Profit und Stop Loss hinzu

Ich habe diesen Code hinzugefügt;

int CheckForClose()

{

if(getProfit()>=Betrag){CloseAll();}

if(LockDown>0)

{

for(int TradeNumber = OrdersTotal(); TradeNumber >= 0; TradeNumber--)

{

if(OrderSelect(TradeNumber, SELECT_BY_POS, MODE_TRADES)&&(LockDown>0))

{ int Pos=OrderType();

if((Pos==OP_BUY)&&(Bid-OrderOpenPrice()>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() == 0))

{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+Point,OrderTakeProfit(),0,CLR_NONE);}

if((Pos==OP_SELL)&&(OrderOpenPrice()-Ask>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() == 0))

{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point,OrderTakeProfit(),0,CLR_NONE);}

}

}

}

}

Beispiel: EUR/USD Orderpreis 1.12345 sl/tp 1.12346

ich möchte sl/tp 1,12355

Ich verstehe nicht, was falsch läuft?