Ema Cross! - pagina 17

 
Audio:
VIVA codersguru !!!! ---Ciao Hellkas dove sei, neet per vedere questi un mio amico.

ciao Audio amico mio...

Questo EA è davvero fantastico... Grazie mille SuperCodersGuru...

Ho una semplice domanda...

Ho provato questo EA v2 e ho notato qualcosa di strano...

Ho 4 impostazioni diverse in piattaforme diverse ma tutte nello stesso brocker (NorthFinance), ieri ho solo una posizione aperta e ho pensato che fosse normale... oggi la stessa posizione è ancora aperta e ho pensato che fosse strano... Ho riavviato la piattaforma e nuove posizioni aperte...

Perché l'EA smette di scambiare finché non riavvio la piattaforma?

Grazie

File:
emacross.htm  22 kb
 

Alcune osservazioni

Sto ancora usando questo EA. Ho notato che la maggior parte dei perdenti sono scambi contro il trend. E' possibile fare un'opzione in questo EA che piazzi solo trade che seguono il trend?

Continua il buon lavoro Guru!

 

Opzione di inversione!

Hendrick:
Sto ancora usando questo EA. Ho notato che la maggior parte dei perdenti sono scambi contro il trend. E' possibile fare un'opzione in questo EA che metta solo i trade che seguono il trend? Continua il buon lavoro Guru!

Hendrick,

Questa opzione è già inclusa!

Basta impostare reversaloption su false se vuoi seguire il trend!

 

Ops!

codersguru:
Hendrick,

Questa opzione è già inclusa!

Basta impostare reversaloption su false se vuoi seguire la tendenza!

Ops. Scusa Guru.

 
hellkas:
Ciao Audio amico mio...

Questo EA è davvero fantastico... Grazie mille SuperCodersGuru...

Ho una semplice domanda...

Sono stato avanti testando questo EA v2 e ho notato qualcosa di strano...

Ho 4 impostazioni diverse in piattaforme diverse ma tutte nello stesso brocker (NorthFinance), ieri ho solo una posizione aperta e ho pensato che fosse normale... oggi la stessa posizione è ancora aperta e ho pensato che fosse strano... Ho riavviato la piattaforma e nuove posizioni aperte...

Perché l'EA ferma il commercio fino a quando non riavvio la piattaforma?

grazie

Ciao, da quanto tempo non vedi dove sei stato? Penso che codersguru può rispondere meglio.

 

Ciao CodersGuru,

Ho un'idea per il tuo EA. Vorrei renderlo il più semplice possibile eliminando TP, TS e SL! Sì, lo so, pazzesco!

Poi lasciarlo semplicemente scambiare le MA tra gli incroci.

1, Su un incrocio al rialzo, aspetta una barra e vai lungo.

2, Al prossimo incrocio al ribasso chiudi il trade.

3, Aspetta un'altra barra e se le MA sono ancora in basso, apri uno short.

L'unica cosa da impostare sarebbe la dimensione del lotto.

Su un trade aperto, non appena le MA si incrociano di nuovo nell'altra direzione, chiudi il trade immediatamente.

Questo dovrebbe essere usato su una coppia in tendenza come il cavo con un piccolo spread, poiché una coppia con uno spread più grande prenderebbe il profitto se il mercato iniziasse a variare.

Probabilmente sembra una follia, ma ci si affida puramente all'azione dei prezzi per fare gli scambi, senza alcuna influenza esterna. In effetti, il mercato farebbe trading da solo!

Sarebbe interessante giocare con i timeframes e le impostazioni MA.

Finora ho inserito delle opzioni per disattivare TP, SL e TS.

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

//| EMA_CROSS.mq4

//| Coders Guru ||

//| https://www.mql5.com/en/forum ||

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

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

//| TODO: Aggiungere la routine di gestione del denaro ||

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

#proprietà copyright "Coders Guru"

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

//---- parametri di ingresso

extern double TakeProfit=300;

extern bool UseTakeProfit = false;

extern double Lots=1;

extern double TrailingStop=15;

extern bool UseTrailingStop = false;

extern double StopLoss=100;

extern bool UseStopLoss = false;

extern int ShortEma = 10;

extern int LongEma = 80;

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

//| funzione di inizializzazione esperto |

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

int init()

{

//----

//----

return(0);

}

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

//| funzione di deinizializzazione esperto |

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

int deinit()

{

//----

//----

return(0);

}

bool isNewSymbol(string current_symbol)

{

//ciclo attraverso tutti gli ordini aperti e confronto dei simboli

int total = OrdersTotal();

for(int cnt = 0 ; cnt < totale ; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

Print("OrderSymbol = " + OrderSymbol() + ": Symbol = " + current_symbol);

stringa selected_symbol = OrderSymbol();

se (current_symbol == selected_symbol)

ritorna (Falso);

}

return (True);

}

int Crossed (doppia linea1 , doppia linea2)

{

static int last_direction = 0;

static int current_direction = 0;

//Non funziona nel primo carico, aspetta il primo incrocio!

static bool first_time = true;

if(first_time == true)

{

first_time = false;

return (0);

}

if(linea1>linea2)current_direction = 1; //su

se(linea1<linea2)direzione_attuale = 2; //giù

if(current_direction != last_direction) //cambiamento

{

ultima_direzione = current_direction

return (last_direction);

}

else

{

return (0); //non è cambiato

}

}

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

//| funzione di avvio esperto |

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

int start()

{

//----

int cnt, ticket, totale

doppio SEma, LEma;

se(Bars<100)

{

Stampa("barre inferiori a 100");

return(0);

}

se(TakeProfit<10)

{

Print("TakeProfit inferiore a 10");

return(0); // controlla TakeProfit

}

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

totale = OrdiniTotali();

if(total < 1 || isNewSymbol(Symbol())

{

se(isCrossed == 1 )

{

if(UseStopLoss)

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

altrimenti

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

se(biglietto>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine BUY aperto : ",OrderOpenPrice());

}

else Print("Errore nell'apertura dell'ordine BUY: ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

if(UseStopLoss)

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

altrimenti

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

se(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordine SELL aperto : ",OrderOpenPrice());

}

else Print("Errore nell'apertura dell'ordine SELL: ",GetLastError());

return(0);

}

return(0);

}

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

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

{

if(OrderType()==OP_BUY) // la posizione lunga è aperta

{

// deve essere chiusa?

/* RIMOSSO - Trailling stop solo chiusura

if(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // chiudere la posizione

return(0); // uscire

}

*/

// controlla il trailing stop

se(TrailingStop>0)

{

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

{

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

{

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

return(0);

}

}

}

}

else // passa alla posizione short

{

// deve essere chiusa?

/* RIMOSSO - Trailling stop solo chiusura

if(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // chiudere la posizione

return(0); // uscire

}

*/

// controlla il trailing stop

se(TrailingStop>0)

{

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

{

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

{

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

return(0);

}

}

}

}

}

}

return(0);

}

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

L'unica cosa di cui non sono sicuro è come chiudi il trade ora. Ho ragione nel dire che hai disabilitato il TS?

Spero che non ti dispiaccia se altero il tuo codice.

Grazie,

 

Penso che l'idea di aprire la barra dopo e chiudere al prossimo incrocio sia buona (forse usare un trailing stoploss aiuterebbe a bloccare i profitti). Andare in protrend ha molto più senso che in controtendenza, specialmente quando il mercato ricomincia ad avere un trend sulle coppie principali. Nei mercati piatti o laterali, un trader in controtendenza ha senso, ma è molto più rischioso e potresti dover aspettare 3 mesi (grafici giornalieri) perché il tuo trade diventi positivo, al contrario di un trader pro-trend che lo fa subito.

Mi piace il modo in cui MA_Cross sposta lo stoploss in profitto a +20 o giù di lì, così una volta che un trade è in profitto non devi più avere l'esposizione al margine.

Graham

 

Ciao Graham,

Sì, l'idea è venuta guardando alcune delle coppie più in tendenza. Sulla maggior parte dei movimenti si fanno sempre pip, lunghi o corti non importa.

Voglio semplicemente approfittare di questo.

L'opzione è lì per usare un Trailing Stop semplicemente alterando lo stato di questa linea da false a true.

"bool esterno UseTrailingStop = false;"

Ma siccome sono un principiante assoluto del codice (grazie CodersGuru ) non sono sicuro di come il programma chiuda i trade al momento. Sta cercando uno stoploss? Sto ancora studiando la chiusura degli ordini.

Dovrebbe sicuramente scambiare con il trend, penso che la controtendenza ti spazzerebbe via molto velocemente.

Stavo anche pensando di usarlo sui TF più piccoli come 5, 15, 30min e anche 1 ora rendendo le MA più piccole per cogliere le tendenze più piccole.

 

Bug!

hellkas:
ciao Audio amico mio...

Questo EA è davvero fantastico... Grazie mille SuperCodersGuru...

Ho una semplice domanda...

Sto testando questo EA v2 e noto qualcosa di strano...

Ho 4 impostazioni diverse in piattaforme diverse ma tutte nello stesso brocker (NorthFinance), ieri ho solo una posizione aperta e ho pensato che fosse normale... oggi la stessa posizione è ancora aperta e ho pensato che fosse strano... Ho riavviato la piattaforma e nuove posizioni aperte...

Perché l'EA ferma il commercio finché non riavvio la piattaforma?

grazie

hellkas,

Grazie per il tuo contributo!

Devo controllare questo lunedì.