![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
thx mais pouvez-vous m'expliquer pourquoi
BuyCondition = BuyValueCurrent1 != EMPTY_VALUE
pourquoi empty_value ?
de toute façon ça ne marche pas et je ne comprends pas et ne trouve pas pourquoi...
voici mes variables
and here is the statement
[PHP] BuyCondition = (BuyValueCurrent != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE);il donne des résultats totalement flous même lorsque les indicateurs (Braintrend2stop et BrainTrend1Stop) sont SELL.
J'ai un EA qui ouvre et gère la position, mais parfois l'indikateur donne le même signal multiple et l'EA ouvre chaque fois que ce signal sort une nouvelle position - mais je ne veux pas une deuxième ou troisième et ainsi de suite et sur la position, je veux seulement la première - est-il possible que l'EA vérifie la position ouverte sur la base du nombre magique et de la paire pour éviter ces entrées multiples ?
Voilà l'idée :
{
int count=0 ;
int trade ;
int métiers=OrdersTotal() ;
for(trade=0;trade<trades;trade++) {
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES) ;
if(OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber) continue ;
if(OrderType()==OP_BUY) count++ ;
} //---- pour
return(count) ;
}
int CountShorts()
{
int count=0 ;
int trade ;
int trades=OrdersTotal() ;
for(trade=0;trade<trades;trade++) {
OrderSelect(trade,SELECT_BY_POS,MODE_TRADES) ;
if(OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber) continue ;
if(OrderType()==OP_SELL) count++ ;
} //---- pour
return(count) ;
}Et dans la fonction start() :
if(CountLongs() == 0 && CountShorts() == 0) {
Votre condition d'entrée ici
}J'espère que cela vous aidera.
FerruFx
Quoi qu'il en soit, cela ne fonctionne pas et je ne comprends pas pourquoi...
voici mes variables
and here is the statement
[PHP] BuyCondition = (BuyValueCurrent != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE);Je ne connais pas vos indicateurs Braintrend1 et 2, j'ai juste supposé que lorsqu'une condition d'achat est remplie, ils dessinent une flèche sur le graphique. Dans MT4, la valeur par défaut du tampon est une constante nommée "EMPTY-VALUE", donc s'il n'y a pas de flèche, la valeur renvoyée par iCustom() est cette constante, et s'il y a une flèche, la valeur renvoyée est le prix où la flèche est placée.
Si j'ai bien compris, vous voulez acheter lorsque les deux indicateurs montrent une flèche, n'est-ce pas ?
oui, c'est exactement ce que je veux faire
oui, c'est exactement ce que je veux faire
Alors, s'il vous plaît, vérifiez votre syntaxe iCustom().
qu'est ce que je dois vérifier ? peut être que j'ai raté quelque chose
Je suppose que s'il y a un signal d'achat, il est stocké dans le tampon 0, sinon il est vide et le tampon 1 contient le signal de vente.
qu'est ce que je dois vérifier ? peut-être que j'ai raté quelque chose
Postez votre indicateur ici, je vais regarder.
ok thx !
et s'il vous plaît expliquer
ok thx ! et s'il vous plaît expliquez
Ouvrez BrainTrend1Stop.mq4.
Au début du fichier, vous trouverez :
extern int EnableAlerts=0;
extern int SignalID=0;[/PHP]This means that you have to fill those three parameters as arguments in the iCustom() call, like this:
[/PHP]About the buffer's number, you can see this:
#property indicator_color2 Aqua[/PHP]So the buffer 0 is Magenta and the buffer 1 is Aqua.
Thus if the Buy arrow's color is Aqua, the buffer's number is 1 and the iCustom call is:[PHP]BuyValueCurrent = iCustom(NULL,0,"BrainTrend1Stop",NumBars,EnableAlerts,SignalID,1,1); // braintrend1This means that the default empty value for the buffer 1 is set to 0.0; so when there is no arrow, the value returned by the iCustom() call will be 0.0.
So you should know the presence of the arrow checking its value against 0, like this (if the second indic follows the same behavior):[PHP]BuyCondition = (BuyValueCurrent > 0 && BuyValueCurrent2 > 0);A propos de la deuxième indication, je pense que vous devriez être capable de faire la même analyse par vous-même.