Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Merci pour votre réponse.
Mais cela ne fonctionne pas s'il y a eu un slippage lors de la fermeture de la position, n'est-ce pas ?
Bonjour à tous,
J'ai un problème avec l'EA de RSI et MA...
L'indicateur fonctionne correctement... Tout ce que je veux, c'est le convertir en EA...
J'ai essayé plusieurs choses. IndicatorCounted() ne fonctionne pas dans l'EA, donc j'ai essayé de coder en dur les valeurs de la boucle for (bar=0 ; bar<15 ; bar++), j'ai obtenu un RSI correct, mais le SMA ne donne pas de valeurs correctes...
Je joins le code pour la SMA croisant le RSI...
Quelqu'un pourrait-il m'aider à convertir cet indicateur en EA ?
***************************************************************************************************************************************
#property indicator_separate_window
#property indicator_buffers 2
#property indicateur_color1 LawnGreen
#property indicateur_color2 DarkBlue
double ExtMapBuffer1[] ;
double ExtMapBuffer2[] ;
int init()
{
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)) ;
SetIndexStyle(0,DRAW_LINE) ;
SetIndexBuffer(0,ExtMapBuffer1) ;
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2) ;
SetIndexBuffer(1,ExtMapBuffer2) ;
return(0) ;
}
int deinit()
{
return(0) ;
}
int start()
{
int bar, limite ;
int counted_bars=IndicatorCounted() ;
if(counted_bars<0) return(-1) ;
if(counted_bars>0) counted_bars-- ;
limit=Bars-IndicatorCounted() ;
for(bar=0 ; bar<limit ; bar++)
ExtMapBuffer1 = iRSI(NULL,0,14,PRICE_TYPICAL,bar) ;
for(bar=0 ; bar<limit ; bar++)
ExtMapBuffer2=iMAOnArray(ExtMapBuffer1,Bars,14,0,MODE_SMA,bar) ;
return(0) ;
}
***************************************************************************************************************************************
Merci et salutations,
GaneshGanesh,
Essayez de faire les barres dans l'ordre chronologique.
Au lieu de for(bar=0 ; bar<limit ; bar++)
Utilisez for(bar=limit-1 ; bar>=0 ; bar--)
Chazzmoney
Bonjour
Merci pour la réponse rapide... J'ai essayé, mais cela ne fait aucune différence...
Cela aussi si nous utilisons Bars dans la boucle, il doit calculer des valeurs entières (pour toutes les barres) pour chaque tick... et il pourrait y avoir un retard ... De plus, la valeur de la SMA serait nulle.
Dans l'indicateur, nous calculons le RSI et l'EMA uniquement pour la nouvelle barre en utilisant IndicatorCounted(), mais nous ne pouvons pas l'utiliser dans l'EA...
Le point exact du problème est la 2ème boucle for et les valeurs pour le iMAOnArray...
La première boucle for fonctionne parfaitement même si nous la codons en dur...
Merci pour votre réponse. Mais cela ne fonctionne pas s'il y a eu un slippage lors de la fermeture de la position, n'est-ce pas ?
Certains courtiers écrivent [sl] et [tp] dans le champ de commentaires. Vous pouvez également l'utiliser.
Merci. Je vais essayer.
comment est-il possible de sélectionner le dernier ordre clôturé avec le bon numéro magique ?
merci. je vais essayer. comment est-il possible de sélectionner le dernier ordre fermé avec le bon numéro magique ?
Si vous le trouvez dans la liste historique, il s'agit d'un ordre clôturé, s'il est dans la liste totale - il est encore ouvert.
Demande de code Ea : Fermer l'ordre précédent lors de l'ouverture d'une nouvelle position
Bonjour, je voudrais faire une demande de code pour que lorsque la nouvelle position est ouverte, l'ordre précédent soit automatiquement fermé, c'est-à-dire que je ne veux pas utiliser le take profit ou le trailling.
Exemple :
Lorsque l'ordre d'achat est ouvert, l'ordre de vente précédent se ferme.
Lorsque l'ordre de vente est ouvert, l'ordre d'achat précédent se ferme.
J'ai trouvé le code OrderCloseBy() mais je ne sais pas exactement où mettre ce code.
merci
Bonjour, je voudrais faire une demande de code pour que lorsque la nouvelle position est ouverte, automatiquement l'ordre précédent se ferme, c'est-à-dire que je ne veux pas utiliser le take profit ou le trailling.
Exemple :
Lorsque l'ordre d'achat est ouvert, l'ordre de vente précédent se ferme.
Lorsque l'ordre de vente est ouvert, l'ordre d'achat précédent se ferme.
J'ai trouvé le code OrderCloseBy() mais je ne sais pas exactement où placer ce code.
MerciProblème résolu
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // fermer la position
}
mettre après OrderSend SELL
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // fermer la position
}Autre code que j'ai obtenu de ForexFactory grâce à(Fulltime247,magnumfreak)
extern double LOTSize=0.10 ;
extern string ORDERComment="Texte du commentaire de l'ordre" ;
//Total Compte..
int botal=0 ; int stotal=0 ; int ticket=0 ; double closelots=0 ; bool xbool ;
for( int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
xbool=OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;
if(OrderType()==OP_BUY && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){btotal++ ; ticket=OrderTicket() ; closelots=OrderLots();}
if(OrderType()==OP_SELL && OrderMagicNumber()==MAGICTerminal && OrderSymbol()==Symbol()){stotal++ ; ticket=OrderTicket() ; closelots=OrderLots();}
}// END TOTAL count..
if(QUELLE QUE SOIT VOTRE CONDITION POUR UN ACHAT)
{
si(btotal>0){OrderClose(ticket,closelots,Bid,3,CLR_NONE);}
ticket=OrderSend(Symbol(),OP_BUY,LOTSize,Ask,3,0,0,ORDERComment,MAGICTerminal,0,Magenta) ;
}
if(QUELLE QUE SOIT VOTRE CONDITION POUR UNE VENTE)
{
si(stotal>0){OrderClose(ticket,closelots,Ask,3,CLR_NONE);}
ticket=OrderSend(Symbol(),OP_SELL,LOTSize,Bid,3,0,0,ORDERComment,MAGICTerminal,0,Lime) ;
}Je suis nouveau sur MT4.
Je veux calculer le nombre de barres après que le shortMA a croisé le longMA, quelqu'un sait comment coder cette fonction ?
Merci d'avance !