Aiuto per la codifica - pagina 471 1...464465466467468469470471472473474475476477478...786 Nuovo commento Mladen Rakic 2015.05.14 07:49 #4701 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 ____________________ systemfault 2015.05.14 07:54 #4702 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? Coding help Any questions from newcomers Tutte le domande dei Mladen Rakic 2015.05.14 07:58 #4703 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? Sì 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 systemfault 2015.05.14 08:01 #4704 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? Mladen Rakic 2015.05.14 08:08 #4705 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 systemfault 2015.05.14 08:15 #4706 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 Mladen Rakic 2015.05.14 08:40 #4707 systemfault: provo... sembra questo... Per quanto vedo sta facendo ciò che è destinato a fare systemfault 2015.05.14 08:46 #4708 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 Mladen Rakic 2015.05.14 08:52 #4709 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 systemfault 2015.05.14 09:01 #4710 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? Coding help Come codificare? Strategia di uscita: Stepping 1...464465466467468469470471472473474475476477478...786 Nuovo commento
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.mq4Puoi 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?
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?Sì
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?
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
Aprirà i limiti di acquisto e di vendita a 14 pip di distanza dalla domanda e dall'offerta.
Ho provato... sembra questo...
Per quanto vedo sta facendo ciò che è destinato a fare
Per quanto vedo sta facendo quello che è destinato a fare
Sì mladen..
Ma non voglio chiudere gli ordini senza profitto e stoploss 14 pips
Sì mladen.. Ma non voglio chiudere gli ordini senza profitto e stoploss 14 pips
Poi aggiungi anche il take profit e lo stop loss
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?