Scriverò un consulente gratuito per mql4 - pagina 7

 
Ciao, ho un'idea, posso dirtela qui o di persona, dimmi come ti piace.
 
Ciao, puoi aiutarmi a perfezionare il mio EA?
 
Andrey Luxe:

Per acquisire esperienza in questo settore, scriverò 25 EAs gratuitamente per le vostre idee e strategie interessanti

19 EAs rimasti

Ho un problema simile, ho già un EA e funziona bene, il problema è con il blocco di trailing stop. In qualche modo non funziona, non è impostato quando faccio trading. Ecco l'EA stesso. Forse avete un'idea di cosa c'è di sbagliato nel trailing stop? Non ho idea di cosa fare senza.

Ishimoku - MACD.mq4 |

//| TO |

//| http://www.forex-tradexperts-to.narod.ru |

//+------------------------------------------------------------------+

#proprietà copyright "TO"

#proprietà link "http://www.forex-tradexperts-to.narod.ru"

#include <WinUser32.mqh>


extern string Parameters=" Ichimoku";

extern intern tenkan_sen=3;

extern intern kijun_sen=48;

extern intern senkou_span_b=52;

extern string Parameters="Moving Average";

extern int maPeriod=4;

extern int ma_method=1;

extern int applied_price=3;

extern string Parameters=" MACD";

extern int FastEMA=22;

extern int SlowEMA=52;

extern int SignalEMA=9;

extern string Parameters=" EA";

extern int TP=200;

extern int SL=500;

extern int slippage=3;

extern double lot=0.1;

extern bool Add1/*(TENKANSEN resp. KIJUNSEN)*/ =true;

extern bool Add2/*(TENKANSEN revised Ma)*/=true;

extern bool trailing=true;

extern double trailingStop=200;

extern int zashita=1;


bool buy1=false,buy2=false,buy3=false,buy4=false;

bool sell1=false,sell2=false,sell3=false,sell4=false,sell22=false; buy22=false;

int ticket=0;

int i;

datetime t1=0,t2=1,t3=1,t4=1,t5=1,t7=1,t8=1;

int init()

{

ritorno(0);

}

int deinit()

{

ritorno(0);

}


int start()

{

t1=Tempo[0];


double MACDRED1=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);

double MACDRED2=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,2);

double MACDBLUE1=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_SIGNAL,1);

double MACDBLUE2=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_SIGNAL,2);

double IshRed1=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_TENKANSEN,1);

double IshRed2=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_TENKANSEN,2);

double IshBlue1=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_KIJUNSEN,1);

double IshBlue2=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_KIJUNSEN,2);

double MA1=iMA(NULL,0,maPeriod,0,ma_method,applied_price,1);

double MA2=iMA(NULL,0,MaPeriod,0,ma_method,applied_price,2);

if(MACDRED1>MACDBLUE1 && MACDRED2<MACDBLUE2 && t3!=t1)

{ // segnale MACD BUY

buy1=true;sell1=false;t3=Time[0];

}

if(MACDRED1<MACDBLUE1 && MACDRED2>MACDBLUE2 && t3!=t1)

{ // segnale MACD SELL

sell1=true;buy1=false;t3=Time[0];

}

if(IshRed1>MA1 && IshRed2<=MA2 && t4!=t1)

{ // Il segnale Ishimoku attraversa la MA su BUY

buy2=true;sell2=false;t4=Time[0];

}

if(IshRed1<MA1 && IshRed2>=MA2 && t4!=t1)

{ // Il segnale Ishimoku incrocia la MA su SELL

sell2=true;buy2=false;t4=Time[0];

}

if(IshRed1>IshBlue1 && IshRed2<IshBlue2 && t5!=t1)

{ // Il segnale Ishimoku attraversa Fast e Slow per COMPRARE

buy3=true;sell3=false;t5=Time[0];

}

if(IshRed1<IshBlue1 && IshRed2>IshBlue2 && t5!=t1)

{ // Segnale su Ishimoku Fast incrocia Slow su SELL

sell3=true;buy3=false;t5=Time[0];

}

if(Add1==true && buy3==true && buy4==true && t1!=t8)

{ //aprire le aggiunte

PlaySound("Alert.wav");

int=MessageBox("Aggiungere un ordine all'acquisto?",MB_YESNO|MB_ICONQUESTION);

if(ret==6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alert("Ordine non impostato!!! errore - "+GetLastError()+"impostato manualmente");}

t8=Time[0];buy3=false;buy4=false;

}

if(Add1==true && sell3==true && sell4==true && t1!=t7)

{ //aprire le aggiunte

PlaySound("Alert.wav");

int ret2=MessageBox("Aggiungere un ordine di vendita?",MB_YESNO|MB_ICONQUESTION);

if(ret2==6){ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alert("Ordine non impostato!!! errore - "+GetLastError()+"impostato manualmente");}

t7=Time[0];sell3=false;sell4=false;

}

for(i=OrdiniTotali()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY)

{

buy1=falso; buy2=falso; buy22=vero;

pausa;

}

}

if(Add2==true && buy22 && IshRed1>MA1 && IshRed2<=MA2 && t4!=t1)

{ // Aggiungendo da Ma e Tenkan_sen per comprare

PlaySound("Alert.wav");

int ret3=MessageBox("Aggiungere un ordine all'acquisto?",MB_YESNO|MB_ICONQUESTION);

if(ret3==6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alert("Ordine non impostato!!! errore - "+GetLastError()+"impostato manualmente");}

t4=Time[0];buy22=false;

}

if(Add2==true && sell22 && IshRed1<MA1 && IshRed2>=MA2 && t4!=t1)

{ // Aggiungendo da Ma e Tenkan_Sen a Sell

PlaySound("Alert.wav");

int ret4=MessageBox("Aggiungere un ordine per vendere?",MB_YESNO|MB_ICONQUESTION);

if(ret4==6){ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alert("Ordine non impostato!!! errore - "+GetLastError()+"impostato manualmente");}

t4=Time[0];sell22=false;

}

if(buy1==true && buy2==true && t1!=t2)

{ //aprire gli ordini iniziali

for(i=OrdiniTotali()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Gold);

}

PlaySound("Alert.wav");

ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);

if(ticket>0)PlaySound("ok.wav");

if(ticket<0)Alert("Ordine non impostato!!! errore - "+GetLastError()+"impostato manualmente");

t2=Time[0];buy1=falso;buy2=falso;buy4=vero;

}

for(i=OrdiniTotali()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL)

{

sell1=falso; sell2=falso; sell22=vero;

pausa;

}

}

if(sell1==true && sell2==true && t1!=t2)

{ //aprire gli ordini iniziali

for(i=OrdiniTotali()-1;i>=0;i--)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Gold);

}

PlaySound("Alert.wav");

ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask+SL*Point,Bid-TP*Point,NULL,0,0,Red);

if(ticket>0)PlaySound("ok.wav");

if(ticket<0)Alert("Ordine non impostato!!! errore - "+GetLastError()+"impostato manualmente");

t2=Time[0];sell1=false;sell2=false;sell4=true;buy22=false;

}

//Ferma di trascinamento

doppio SL, TP, openprice, profitto;

int ticketOrder, zamok, tipo;

stringa comm;

for(i=OrdiniTotali();i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(trailing==true && OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)>0 && MathFloor(OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)/trailingStop)!=0 && (OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE))>=trailingStop*MathFloor(OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)/trailingStop))

{

if(OrderType()==0){SL=Bid-trailingStop*Point;if(SL==OrderOpenPrice())SL+=zashita*Point;}

if(OrderType()==1){SL=Ask+trailingStop*Point;if(SL==OrderOpenPrice())SL-=zashita*Point;}

TP=OrderTakeProfit();

if(OrderType()==0)if(SL>=OrderStopLoss()+trailingStop*Point)OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0);

if(OrderType()==1)if(SL<=OrderStopLoss()-trailingStop*Point)OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0);

}

}

ritorno(0);

}

 

Non risponderò a tutti, ma è sicuramente un bug:

for(i=OrdersTotal();i>=0;i--)

L'ultimo ordine è OrdersTotal()-1.

 
Ciao, puoi aiutarmi con un EA pronto su Ishimoku e MASD. L'EA funziona, ma per qualche motivo non mette un trailing stop quando si verificano le condizioni. Non ho familiarità con MQL4, quindi non sono sicuro di cosa cambiare in esso. Molto probabilmente c'è un errore nel blocco di trailing stop. Grazie in anticipo. Senza questa funzione è uno svantaggio significativo per il trading.
File:
 

puoi scrivere un multi EA gratuitamente?

Il manichino è disponibile.

 

Salve, vorrei chiedervi aiuto per prescrivere T/P e Magic_Number nel mio EA. Saluti Timofey.

 

Buon pomeriggio.

come scriveresti un pezzo come questo?

doppio a; //

double b; // sia a che b possono prendere assolutamente qualsiasi valore: numeri, letture di indicatori, numero di tick per 500 candele ecc.

doppio X; // valore di deviazione +-X

se

(a+x e a-x) rientra nel campo di valori (b+x e b-x)

{action}

else

{return 0}

 
trader781:

Buon pomeriggio.

come scriveresti un pezzo come questo?

doppio a; //

double b; // sia a che b possono prendere assolutamente qualsiasi valore: numeri, letture di indicatori, numero di tick per 500 candele ecc.

doppio X; // valore di deviazione +-X

se

(a+x e a-x) rientra nel campo di valori (b+x e b-x)

{action}

else

{return 0}

Se x è lo stesso valore in tutti i casi, state essenzialmente confrontando due numeri a e b. Non c'è dubbio che qui si entra in un intervallo.

Per esempio, prendiamo a = 10, b = 11. Quindi vuoi che l'intervallo da 12 a 8 cada nell'intervallo da 13 a 9?

 
Alexey Kozitsyn:

Se x è lo stesso in tutti i casi, state essenzialmente confrontando due numeri a e b. Non si parla di alcun intervallo.

Per esempio, prendiamo a = 10, b = 11. Quindi vuoi che l'intervallo da 12 a 8 cada nell'intervallo da 13 a 9?

Proprio così.