Ema Cross! - pagina 4

 

Versione Ema Cross?

SpecII:
Ciao,

Il mio test in avanti da EMACross D1 TF

Saluti

ciao SpecII,

Grazie mille per averci condiviso!

Qual è la versione di EMA_CROSS che hai usato?

 

Coppie multiple!

SpecII:
Ciao Codersguru

Sto usando la versione no SL ma ho modificato il codice per le coppie multiple e ho creato un bug per i doppi lotti.

Risolverò il bug per i doppi lotti più tardi.

Grazie

Grazie ancora ! Potrei vedere il tuo codice per coppie multiple?

 
codersguru:
Grazie ancora ! Potrei vedere il tuo codice per coppie multiple?

Ciao, sto postando il codice, è giusto?

Grazie

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

//| EMA_CROSS.mq4 |

//| Coders Guru |

//| https://www.forex-tsd.com |

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

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

//| TODO: Add Money Management routine |

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

#property copyright "Coders Guru"

#property link "https://www.forex-tsd.com"

//---- input parameters

extern double TakeProfit=130;

extern double Lots=1;

extern double TrailingStop=20;

extern int ShortEma = 10;

extern int LongEma = 80;

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

//| expert initialization function |

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

int init()

{

//----

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

int Crossed (double line1 , double line2)

{

static int last_direction = 0;

static int current_direction = 0;

//Don't work in the first load, wait for the first cross!

static bool first_time = true;

if(first_time == true)

{

first_time = false;

return (0);

}

if(line1>line2)current_direction = 1; //up

if(line1<line2)current_direction = 2; //down

if(current_direction != last_direction) //changed

{

last_direction = current_direction;

return (last_direction);

}

else

{

return (0); //not changed

}

}

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

//| expert start function |

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

int start()

{

int OrdersPerSymbol=0;

//----

int cnt, ticket;

double SEma, LEma;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit less than 10");

return(0); // check TakeProfit

}

OrdersPerSymbol=0;

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderSymbol()==Symbol() )

{

OrdersPerSymbol++;

}

}

SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);

LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0);

static int isCrossed = 0;

isCrossed = Crossed (LEma,SEma);

// total = OrdersTotal();

if(OrdersPerSymbol < 1)

{

if(isCrossed == 1)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"EMA_CROSS",12345,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"EMA_CROSS",12345,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0);

}

return(0);

}

for(cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())

{

if(OrderType()==OP_BUY) // long position is opened

{

// should it be closed?

/* REMOVED - Trailling stop only close

if(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position

return(0); // exit

}

*/

// check for trailing stop

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

else // go to short position

{

// should it be closed?

/* REMOVED - Trailling stop only close

if(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position

return(0); // exit

}

*/

// check for trailing stop

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+
 
codersguru:
Ciao SpecII,

Grazie mille per averci condiviso!

Qual è la versione di EMA_CROSS che hai usato?

Ciao Codersguru

sto usando la versione no SL ma ho modificato il codice per le coppie multiple e ho fatto il bug per i doppi lotti hehe.

Risolverò il bug per i doppi lotti più tardi.

Saluti

 

Inverso

A me sembra un inverso.

Il codice è impostato per comprare quando l'EMA lungo diventa maggiore dell'EMA corto

e per vendere quando l'EMA lungo si muove sotto l'EMA corto.

Suppongo che questo sia il motivo per cui ha successo, dato che altrove si insegna a fare l'esatto contrario.

Sto anche ottenendo trade multipli, sulla prima versione dell'EA, devo ancora provare la seconda versione. Questo è dovuto a dati storici errati?

Lo testerò stasera.

Grazie

 

così

quindi si compra quando il Sema si muove sotto il Lema

e vende quando il Sema si muove sopra il Lema

O sono di nuovo confuso?

 

quando attacco l'ea

Quando attacco l'ea a un grafico ottengo una 'X' - nessuna faccia sorridente - sull'ea o su di me.

L'ho fatto funzionare - ho dovuto premere il pulsante play experts.

 

Salve,

Sono spirito di testare questo EA con un conto dimostrativo. Le prime impressioni sono molto buone. Per il momento apre solo una coppia nonostante 4 diagrammi aperti. Ma con ogni apertura di Trades è nella buona direzione positiva e si riposa. Vi allego la dichiarazione di ieri.

 
BrunoFX:
Ciao, sono lo spirito per testare questo EA con un conto dimostrativo. Le prime impressioni sono molto buone. Per il momento apre solo una coppia nonostante i 4 diagrammi aperti. Ma con ogni apertura di Trades è nella buona direzione positiva e si riposa. Vi allego la dichiarazione di ieri.

Ho modificato questo EA per utilizzare il numero magico. Questo fornirà il commercio su più coppie in una sola volta. Cambia il parametro maigc per essere diverso per ogni coppia.

File:
 

Ciao Kalenzo,

Grazie per questa modifica, sempre anche veloce ed efficace, tifo