Aiuto per la codifica - pagina 471

 
systemfault:
Ciao a tutti,

Ho bisogno di aiuto... ho una semplice ea, ma programmata per 4 cifre. (Per esempio: EUR/USD: 1,1234)

Come posso usare il mio ea 5 cifre? (Per esempio: EUR/USD: 1,12345)

Grazie:)

simpleea.mq4

Puoi aggiungere questo:

*MathPow(10,_Digits%2)

dove si usa _Point e poi funzionerà in pip allo stesso modo su broker a 4 e 5 cifre

____________________

 

Ciao mladen,

Grazie per il post.

Lo faccio così.

int CheckForOpen()

{

doppio L = Basso;

doppio H = Alto;

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

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

{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);}

}

}

è vero?

 
systemfault:
Ciao mladen,

Grazie per il post.

Lo faccio così.

int CheckForOpen()

{

double L = Low;

doppio H = Alto;

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

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

{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);}

}

}

è vero?

Ma poi cambia anche il parametro Grid da 1500 a 150 altrimenti cercherà di impostare il prezzo a 1500 pip di distanza dal Bid o Ask

 

Sto usando questa configurazione;

extern int PeriodX = 60;

extern int Limit = 50;

extern int Grid = 14;

extern int Amount = 1;

extern int LockDown = 20;

Com'è questa configurazione?

 
systemfault:
Sto usando questa configurazione;

extern int PeriodX = 60;

extern int Limit = 50;

extern int Grid = 14;

extern int Amount = 1;

extern int LockDown = 20;

Com'è questa configurazione?

Aprirà i limiti di acquisto e vendita a 14 pip di distanza da ask e bid

Provalo

 
mladen:
Aprirà i limiti di acquisto e di vendita a 14 pip di distanza dalla domanda e dall'offerta.

Ho provato... sembra questo...

File:
adsz.png  35 kb
 
systemfault:
provo... sembra questo...

Per quanto vedo sta facendo ciò che è destinato a fare

 
mladen:
Per quanto vedo sta facendo quello che è destinato a fare

Sì mladen..

Ma non voglio chiudere gli ordini senza profitto e stoploss 14 pips

 
systemfault:
Sì mladen.. Ma non voglio chiudere gli ordini senza profitto e stoploss 14 pips

Poi aggiungi anche il take profit e lo stop loss

 
mladen:
Poi aggiungi anche take profit e stop loss

Ho aggiunto questo codice;

int CheckForClose()

{

if(getProfit()>=Amount){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);}

}

}

}

}

Per esempio; EUR/USD ordine prezzo 1.12345 sl/tp 1.12346

voglio sl/tp 1.12355

Non capisco cosa c'è di sbagliato?