Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 64
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
Chers utilisateurs du forum, je vous prie de bien vouloir m'aider.
if (TimeBar==Time[0]) return(0) ;
double MA1 = NormalizeDouble(iMA(NULL,TimeFrame_2,MA_Period_2,MA_Shift_2,MA_Method_2,Applied_Price_2,0),Digits) ; // où 0 est le décalage de la barre actuelle de la valeur spécifiée. nombre de périodes en arrière
//double MA21 = NormalizeDouble(iMA(NULL,timeframe_2,period_2,ma_shift_2,ma_method_2,applied_price_2,2),Digits) ;
double MA2 = NormalizeDouble(iMA(NULL,timeFrame_3,MA_Period_3,MA_Shift_3,MA_Method_3,Applied_Price_3,0),Digits) ;
//double MA31 = NormalizeDouble(iMA(NULL,timeframe_3,period_3,ma_shift_3,ma_method_3,applied_price_3,2),Digits)
double MA3 = NormalizeDouble(iMA(NULL,TimeFrame_4,MA_Period_4,MA_Shift_4,MA_Method_4,Applied_Price_4,0),Digits) ;
double OsMA = NormalizeDouble(iOsMA(NULL,TimeFrame_5,FastEMA_5,SlowEMA_5,SignalSMA_5,Applied_Price_5,0),Digits)
si (MaxOrders>b && Low[0]>=MathMax(MA1,MA2)&& Low[0]>MA3 && Ask>MathMax(MA1,MA2)+DeltaOpen*Point && Ask>MA3 && MA2<MA3 && MA1<MA3 && OsMA>0 && Trade)
{
if (OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Blue) ==-1) TimeBar=0 ;
else TimeBar=Time[0] ;
}
si (MaxOrders>s && High[0]<=MathMin(MA1,MA2) && High[0]<MA3 && Bid<MathMin(MA1,MA2)-DeltaOpen*Point && Bid<MA3 && MA1>MA3 && MA2>MA3 && OsMA<0 && Trade)
{
if (OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Red) ==-1) TimeBar=0 ;
else TimeBar=Time[0] ;
}
retour(0) ;
Dans ces conditions, le conseiller expert ouvre une transaction, disons, sur VENTE, la ferme sur un bénéfice, et ouvre immédiatement une autre transaction sur VENTE. Comment prescrire dans un EA, que lorsque le signal est reçu, une seule transaction doit s'ouvrir, c'est-à-dire un signal - une transaction.
Merci d'avance.
1 variante - soit vérifier la condition de la transaction de sorte que : l'indice 2 montre un signal d'achat et l'indice 1 un signal de vente, alors à l'ouverture d'une barre avec l'indice 0 ouvrira une transaction de vente.
La 2ème variante consiste à vérifier l'historique des ordres et à comparer les indices de signaux et d'ordres, s'ils coïncident, alors n'ouvrez plus d'ordres.
Où et comment la variable TimeBar est-elle initialisée ?
Bien que cela ne vous aidera pas beaucoup dans votre cas. Je vois la variable commerciale dans les conditions, alors ajustez l'ouverture avec elle.
Cela fait deux jours que je me bats et je n'arrive pas à comprendre. J'ai besoin de trouver le prix le plus bas des n dernières barres, mais pas à partir de la barre actuelle, mais à partir de la barre reçue par la fonction. La fonction renvoie l'indice de la barre à laquelle l'ordre a été ouvert. C'est à partir de cette barre qu'il faut remonter dans l'historique des n barres pour trouver le prix le plus bas. Voici mon code, qu'est-ce qui ne va pas ?
comme ceci
quelque chose comme ça.
Merci beaucoup ! J'ai essayé d'utiliser cette fonction aussi, mais encore une fois dans une boucle, elle s'avère être simple )))). Merci encore !
gyfto:
J'ai la question suivante. Comment intercepter la molette de la souris, quelles fonctions winapi ? Je vais vous expliquer pourquoi. Il existe un paramètre int dans les externs. Vous devez faire tourner la roue pour l'augmenter ou la diminuer.
Quand vous aurez trouvé comment faire, postez-le...
Jusqu'à présent, c'est comme ça que ça s'est passé :
.
Comme Vadim m'a dit de ne pas utiliser de crochets sous MT4, la plateforme ne les aime pas, donc je n'y touche pas. Probablement pour rien)