Comment coder ? - page 166

 

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 ?

 
codersview:
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,

Ganesh

Ganesh,

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...

 
jan100:
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 ?

 
jan100:
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

 
darkkiller:
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.

Merci

Problème résolu

mettre après l'OrdreSend BUY

{

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 int MAGICTerminal=101 ;

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 !

Raison: