Ema Cross ! - page 55

 

Ema_cross_2

Cher codersguru,

Merci pour votre EA et votre concept de contre-tendance,

Même pour la première fois, moi et mon ami sommes sceptiques quant à cette méthode de contre-tendance, mais après avoir étudié et testé votre EA, nous avons été surpris par les résultats.

Nous continuons toujours à tester l'EMA_CROSS_2 avec l'échelle de temps H1, mais nous avons trouvé quelque chose d'intéressant dans la paire EUR/USD du 03 avril 2006, après le croisement vers le bas, cette EA ouvre une position de vente au lieu d'une position d'achat.... est-ce un acte normal ? (voir pièce jointe)

Merci...

dedywind

 

7

Salut floks,

J'ai écrit 10 EAs pour le concours, mais ils étaient trop nombreux pour être testés.

Donc, je vais sélectionner 3 d'entre eux pour le concours et soumettre les 7 ici Ils font du profit dans les tests préalables.

J'espère que vous apprécierez !

 

Codeurs,

Je vais retourner en arrière et lire le fil complet, mais je ne me souviens pas si cette question a été abordée.

Lorsque vous fermez la plateforme, qu'il s'agisse d'InterbanFX, de MT4, etc. j'ai remarqué que si je ne suis pas en position et que j'ai la dernière MA EA, elle exécute automatiquement une transaction.

Comment éviter que cela ne se produise chaque fois que nous rouvrons le logiciel.

Merci

 

Un nouveau venu a besoin d'aide avec un EA de croisement de MA...

codersguru:
amarnath,

Voici mon rapport (ci-joint) !

Et voici la version que j'ai utilisée (ci-joint) !

Je pense que nous ne pouvons pas nous baser uniquement sur le backtest. Mais dans mon test j'ai utilisé la date du 2005/01/01 à aujourd'hui !

Quelqu'un a testé le MoneyMaker ?

Salut CodersGuru,

J'ai modifié un peu votre EA original EMA_Cross pour travailler avec un croisement de 5 EMA et 10 LWMA avec un filtre RSI et Stochastique. Bien que cet EA ouvre des ordres LONG et SHORT et les ferme correctement, il ne me permet pas de fermer simultanément une position et d'ouvrir immédiatement une nouvelle position dans la direction opposée (par exemple, une vraie technique de trading "swing"). Ainsi, je perds un grand nombre de swing trades potentiels.

En outre, il arrive que les conditions de croisement de EMA1 > WMA1 et EMA2 < WMA2 ne déclenchent pas un achat si les deux moyennes mobiles de la période précédente avaient la même valeur ou se trouvaient à 1 ou 2 pips l'une de l'autre. J'aimerais donc ajouter dans le code la recherche de ce type de condition (qui se produit souvent) pour déclencher une entrée.

Je ne suis pas un codeur, donc j'espérais que vous pourriez m'aider à comprendre comment faire cela.

J'ai inclus mon code en ligne ci-dessous ainsi que le fichier MQ4 en pièce jointe. Toute aide serait très, très appréciée !

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

//| 5/10 MA Cross w RSI and Stoch Filter |

//| Ian Boersma - Droit d'auteur 2006.

//| |

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

#property copyright "Ian Boersma"

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

extern double TakeProfit=100 ;

extern double Lots=1 ;

extern double TrailingStop=35 ;

extern int ShortEma = 5 ;

extern int LongWma = 10 ;

extern int RSIPer = 14 ;

extern int StochK = 10 ;

extern int StochD = 3 ;

extern int StochSlow = 3 ;

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

//| fonction d'initialisation de l'expert |

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

int init()

{

//----

//----

return(0) ;

}

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

//| fonction de désinitialisation experte |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| fonction de démarrage de l'expert +

//| C'est ici que l'on initialise les variables internes pour l'utilisation du programme + | |

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

int start()

{

//----

//Déclarations de LotCalc

int cnt, ticket, total ;

//Déclarations de variables de filtre et d'AMs

double RSI ;

double Stoch ;

double EMA1,EMA2,WMA1,WMA2 ;

if(Bars<100)

{

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

return(0) ;

}

if(TakeProfit<10)

{

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

return(0) ; // vérifier TakeProfit

}

//Définition de la variable EMA et du filtre

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

WMA1 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,0) ;

EMA2 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1) ;

WMA2 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,1) ;

RSI = iRSI(NULL,0,RSIPer,PRICE_CLOSE,0) ;

Stoch = iStochastic(NULL,0,StochK,StochD,StochSlow,MODE_SMA,0,MODE_MAIN,0) ;

int isCrossed = 0 ;

si (EMA1 > WMA1 && EMA2 = 50 && Stoch < 80)

{isCrossed = 1 ;

}

si (EMA1 = WMA2 && RSI 20)

{isCrossed = 2 ;

}

//Nous vérifions le terminal de trading pour voir s'il est vide

total = OrdersTotal() ;

if(total < 1) //Si le terminal de trading est vide...

{

if(isCrossed == 1) //Si le croisement indique un swing LONG...

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,0,Ask+TakeProfit*Point, "My EA",12345,0,Yellow) ;

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) //si le croisement indique un swing SHORT...

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,0,Bid-TakeProfit*Point, "My EA",12345,0,Red) ;

si(ticket>0)

{

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

}

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

return(0) ;

}

return(0) ;

}

//Fonction de sortie de position...

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

{

// Vérifier si nous avons une condition de croisement SHORT...

if(isCrossed == 2)

{

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

return(0) ; // sortie

}

// Vérifiez notre stop suiveur pour voir s'il doit être ajusté.

si(TrailingStop>0)

{

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

{

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

{

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

retour(0) ;

}

}

}

}

else // passe en position courte

{

// Vérifier si nous avons une condition de croisement LONG...

if(isCrossed == 1)

{

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

return(0) ; // sortie

}

// Vérifiez notre stop suiveur pour voir s'il doit être ajusté.

si(TrailingStop>0)

{

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

{

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

{

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

retour(0) ;

}

}

}

}

}

}

return(0) ;

}

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

 
iboersma:
Salut CodersGuru,

J'ai modifié un peu votre EA original EMA_Cross pour travailler avec un croisement de 5 EMA et de 10 LWMA avec un filtre RSI et Stochastique. Bien que cet EA ouvre des ordres LONG et SHORT et les ferme correctement, il ne me permet pas de FERMER simultanément une position et d'OUVRIR immédiatement une nouvelle position dans la direction opposée (par exemple, une vraie technique de trading "swing"). Ainsi, je perds un grand nombre de swing trades potentiels.

En outre, il arrive que les conditions de croisement de EMA1 > WMA1 et EMA2 < WMA2 ne déclenchent pas un achat si les deux moyennes mobiles de la période précédente avaient la même valeur ou se trouvaient à 1 ou 2 pips l'une de l'autre. J'aimerais donc ajouter dans le code la recherche de ce type de condition (qui se produit souvent) pour déclencher une entrée.

Je ne suis pas un codeur, donc j'espérais que vous pourriez m'aider à trouver comment faire cela. ....

Je vais vérifier!

 
codersguru:
Je vais vérifier !

Merci pour votre aide...

- Ian

 
codersguru:
Je vais vérifier !

CodersGuru,

J'ai joint une nouvelle version de mon EA car j'ai repéré un problème avec la détermination de la condition 'isCrossed' (j'ai essayé d'ajouter les filtres RSI et Stoch à la condition isCrossed originale plutôt que de l'ajouter comme un qualificatif uniquement pour entrer une position.

J'espère que cela a plus de sens...

- Ian

 
iboersma:
Merci pour votre aide... - Ian

Je pense que le point 1 fonctionne (quand la fermeture de l'achat ouvre la vente et quand la fermeture de la vente ouvre l'achat) Regardez le test ci-joint.

Dossiers :
 
codersguru:
Je pense que le point 1 fonctionne (quand la fermeture de l'achat ouvre la vente et quand la fermeture de la vente ouvre l'achat) Regardez le test ci-joint.

Cool. Cela ressemble définitivement au système de type stope and reverse que je recherche (bien que le bénéfice net n'ait pas l'air très encourageant... :))

J'utilise ce système manuellement depuis une semaine environ et j'ai eu des résultats très encourageants, il sera donc intéressant d'obtenir les chiffres complets du backtesting pour voir si je suis sur quelque chose ou si je suis juste chanceux...

- Ian

 
gody6000:
c'est la deuxième semaine lolhttp://9q9q.com/March/1144348631.zip

Désolé ! mais qu'est-ce que c'est ?

Raison: