Ema Cross ! - page 17

 
Audio:
VIVA codersguru ! !!! ---Hi hellkas où es-tu, c'est sympa de voir ça mon ami.

Salut Audio mon ami...

Cet EA est vraiment fantastique... Merci beaucoup SuperCodersGuru...

J'ai une question simple...

J'ai testé cette EA v2 et j'ai remarqué quelque chose d'étrange...

J'ai 4 paramètres différents dans des plates-formes différentes mais toutes dans le même courtier (NorthFinance), Hier, je n'ai qu'une seule position ouverte et je pensais que c'était normal... aujourd'hui, la même position est toujours ouverte et je pense étrange... Je redémarre la plateforme et de nouvelles positions s'ouvrent...

Pourquoi l'EA arrête le commerce jusqu'à ce que je redémarre la plate-forme ?

merci

Dossiers :
emacross.htm  22 kb
 

Quelques remarques

J'utilise toujours cet EA. J'ai remarqué que la plupart des perdants étaient des trades contre la tendance. Est-il possible de faire une option dans cet EA qui ne place que des trades qui suivent la tendance ?

Continuez à faire du bon travail Gourou !

 

Option d'inversion !

Hendrick:
J'utilise toujours cet EA. J'ai remarqué que la plupart des perdants étaient des trades contre la tendance. Est-il possible de faire une option dans cet EA qui ne place que les trades qui suivent la tendance ? Continuez votre bon travail Gourou !

Hendrick,

Cette option est déjà incluse !

Il suffit de mettre l'option d'inversion à false si vous voulez suivre la tendance !

 

Oups !

codersguru:
Hendrick,

Cette option est déjà incluse !

Il suffit de mettre l'option d'inversion à false si vous voulez suivre la tendance !

Oups. Désolé Guru.

 
hellkas:
salut Audio mon ami...

Cet EA est vraiment fantastique... Merci beaucoup SuperCodersGuru...

J'ai une question simple...

J'ai testé cette EA v2 et j'ai remarqué quelque chose d'étrange...

J'ai 4 paramètres différents dans des plates-formes différentes mais toutes dans le même courtier (NorthFinance), Hier, je n'ai qu'une seule position ouverte et je pensais que c'était normal... aujourd'hui, la même position est toujours ouverte et je pense étrange... Je redémarre la plateforme et de nouvelles positions s'ouvrent...

Pourquoi l'EA arrête le commerce jusqu'à ce que je redémarre la plate-forme ?

merci

Bonjour, cela fait longtemps que je ne t'ai pas vu, où étais-tu passé ? Je pense que Codersguru peut répondre de manière plus efficace.

 

Salut CodersGuru,

J'ai une idée pour votre EA. Je voudrais le rendre aussi simple que possible en supprimant TP, TS et SL ! Oui, je sais, c'est fou !

Ensuite, il suffit de le laisser trader les MA's entre les croisements.

1, Sur un croisement à la hausse, attendez une barre et prenez une position longue.

2, Sur le prochain croisement à la baisse, fermez la transaction.

3, attendez une autre barre et si les MA's sont toujours à la baisse, ouvrez un short.

La seule chose à définir est la taille du lot.

Sur une transaction ouverte, dès que les MA's passent dans l'autre direction, fermez la transaction immédiatement.

Cela doit être utilisé sur une paire à tendance comme le câble avec un petit écart, car une paire avec un écart plus important prendrait le bénéfice si le marché commençait à varier.

Cela peut sembler fou, mais vous vous fiez uniquement à l'action du prix pour effectuer les transactions, sans aucune influence extérieure. En fait, le marché se négocierait lui-même !

Il serait intéressant de jouer avec les cadres temporels et les paramètres MA.

Jusqu'à présent, j'ai mis des options pour désactiver le TP, SL et TS.

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

//| EMA_CROSS.mq4 |

//| Coders Guru |

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

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

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

//| TODO : Ajouter une routine de gestion de l'argent.

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

#property copyright "Coders Guru"

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

//---- paramètres d'entrée

extern double TakeProfit=300 ;

extern bool UseTakeProfit = false ;

extern double Lots=1 ;

extern double TrailingStop=15 ;

bool externe UseTrailingStop = false ;

extern double StopLoss=100 ;

bool externe UseStopLoss = false ;

extern int ShortEma = 10 ;

extern int LongEma = 80 ;

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

//| fonction d'initialisation de l'expert

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

int init()

{

//----

//----

return(0) ;

}

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

//| fonction de désinitialisation experte |

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

int deinit()

{

//----

//----

return(0) ;

}

bool isNewSymbol(string current_symbol)

{

//boucle sur tous les ordres ouverts et compare les symboles

int total = OrdersTotal() ;

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;

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

string selected_symbol = OrderSymbol() ;

si (symbole_actuel == symbole_sélectionné)

retourne (Faux) ;

}

return (True) ;

}

int Crossed (double ligne1 , double ligne2)

{

static int last_direction = 0 ;

static int current_direction = 0 ;

//Ne fonctionne pas au premier chargement, attendez le premier croisement !

static bool first_time = true ;

if(first_time == true)

{

first_time = false ;

retour (0) ;

}

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

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

if(current_direction != last_direction) //changé

{

last_direction = current_direction ;

return (last_direction) ;

}

else

{

return (0) ; //pas de changement

}

}

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

//| fonction de démarrage expert |

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

int start()

{

//----

int cnt, ticket, total ;

double SEma, LEma ;

if(Bars<100)

{

Print("barres inférieures à 100") ;

return(0) ;

}

if(TakeProfit<10)

{

Print("TakeProfit inférieur à 10") ;

return(0) ; // vérifier 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) ;

total = OrdersTotal() ;

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

{

si(isCrossed == 1 )

{

if(UseStopLoss)

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

sinon

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

si(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Ordre BUY ouvert : ",OrderOpenPrice()) ;

}

else Print("Erreur lors de l'ouverture de l'ordre 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) ;

sinon

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("Ordre SELL ouvert : ",OrderOpenPrice()) ;

}

else Print("Erreur lors de l'ouverture d'un ordre de VENTE : ",GetLastError()) ;

return(0) ;

}

return(0) ;

}

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;

//OrderPrint() ;

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

{

if(OrderType()==OP_BUY) // une position longue est ouverte

{

// doit-elle être fermée ?

/* REMOVED - Trailling stop only close

if(isCrossed == 2)

{

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

return(0) ; // sortie

}

*/

// vérification du stop suiveur

si(TrailingStop>0)

{

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

{

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

{

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

retour(0) ;

}

}

}

}

else // passe en position courte

{

// faut-il la fermer ?

/* REMOVED - Trailling stop only close

if(isCrossed == 1)

{

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

return(0) ; // sortie

}

*/

// vérification du trailing stop

si(TrailingStop>0)

{

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

{

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

{

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

retour(0) ;

}

}

}

}

}

}

return(0) ;

}

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

La seule chose dont je ne suis pas sûr est la façon dont vous fermez la transaction maintenant. Ai-je raison de dire que vous avez désactivé le TS ?

J'espère que cela ne vous dérange pas que je modifie votre code.

Merci,

 

Je pense que l'idée d'ouvrir la barre après et de fermer au prochain croisement est bonne (peut-être en utilisant un stoploss de suivi aiderait à verrouiller les profits). Aller dans une tendance pro est beaucoup plus logique que dans une contre-tendance, surtout quand le marché recommence à avoir une tendance sur les paires majeures. Dans les marchés plats/latéraux, un trader à contre-tendance a du sens mais est beaucoup plus risqué et vous devrez peut-être attendre 3 mois (graphiques quotidiens) pour que votre trade devienne positif, contrairement à ce qui se passe immédiatement avec un trader pro-tendance.

J'aime la façon dont MA_Cross déplace le stoploss dans le profit à +20 environ, de sorte qu'une fois qu'une transaction est en profit, vous n'avez plus besoin d'avoir une exposition à la marge.

Graham

 

Bonjour Graham,

Oui, l'idée est venue en regardant certaines des paires les plus tendues. Sur la majorité des mouvements, les pips sont toujours faits, qu'ils soient longs ou courts, cela n'a pas d'importance.

Je veux simplement en tirer parti.

L'option est là pour utiliser un Trailing Stop en modifiant simplement l'état de cette ligne de false à true.

"bool externe UseTrailingStop = false ;"

Mais comme je suis un débutant absolu en matière de codage (merci CodersGuru ), je ne suis pas sûr de la façon dont le programme ferme les transactions pour le moment. Recherche-t-il un stoploss ? J'étudie toujours la fermeture des ordres.

Il faudrait certainement trader avec la tendance, je pense que la contre-tendance vous anéantirait très rapidement.

Je pensais également à l'utiliser sur des TF plus petites comme 5, 15, 30min et même 1 heure en rendant les MA plus petites pour capter les petites tendances.

 

Bug !

hellkas:
salut Audio mon ami...

Cet EA est vraiment fantastique... Merci beaucoup SuperCodersGuru...

J'ai une question simple...

J'ai testé cette EA v2 et j'ai remarqué quelque chose d'étrange...

J'ai 4 paramètres différents dans des plates-formes différentes mais toutes dans le même courtier (NorthFinance), Hier, je n'ai qu'une seule position ouverte et je pensais que c'était normal... aujourd'hui, la même position est toujours ouverte et je pense étrange... Je redémarre la plateforme et de nouvelles positions s'ouvrent...

Pourquoi l'EA arrête le commerce jusqu'à ce que je redémarre la plate-forme ?

merci

hellkas,

Merci pour vos contributions !

Je dois vérifier cela lundi.

 
Raison: