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
Je pense, je vais confirmer, que j'ai vu le même problème dans le testeur de stratégie, je ne sais pas exactement comment cela pourrait se produire, je vais essayer à nouveau avec un peu plus de rapports d'erreurs ajoutés pour être sûr.
OK, un mystère résolu... Je n'avais pas réalisé que le spread utilisé dans le testeur de stratégie est tiré des données de l'historique, en particulier des données M1. La raison pour laquelle j'ai des stops invalides dans mon test de stratégie est que le spread est plus grand que mon SL. Je vais ajouter un test pour cela.
Konstantin83:
2013.03.10 11:19:18 2012.01.04 15:00:00 failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]
Je ne comprends pas le stop invalide. le sl est en dessous du sl d'achat : 1.28375 <1.30505 ?
CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);
Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits);
- conceptionmal comprise .
Choisir parmi les valeurs du maximum double et utiliser cela au lieu de l 'indice entier
MerciKonstantin83 :
mais je ne comprends pas ce que vous dites.
le top est le plus haut des 5 dernières bougies et le top est un double et non un indice entier
dan5:
Je ne comprends pas ce qu'est un stop invalide. Le sl est en dessous du sl d'achat : 1.28375 <1.30505 ?
Ne prenez pas les "stops invalides" trop au pied de la lettre. Il ne s'agit pas seulement du Stop Loss, mais aussi du prix d'entrée et/ou du TP. Lorsque vous obtenez une erreur, imprimez les informations suivantes, elles vous aideront à comprendre ce qui ne va pas :
dan5:
2013.03.10 11:19:18 2012.01.04 15:00:00 failed buy stop 1.00 EURUSD at 1.30505 sl : 1.28375 tp : 1.30375 [Invalid stops]
Je ne comprends pas le stop invalide. le sl est en dessous du sl d 'achat : 1.28375 <1.30505 ?
Avez-vous remarqué que l'entrée 1.30505 est > au TP 1.30375 ?
merci pour votre aide j'ai modifié mon sl et tp c'est ok maintenant
mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits) ; // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);// Take Profit
au lieu de
mrequest.sl = NormalizeDouble(last_price.bid + STP*_Point,_Digits) ; // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits) ; // Take Profit
merci pour votre aide j'ai modifié mon sl et tp c'est ok maintenant
mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits) ; // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);// Take Profit
au lieu de
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits) ; // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits) ; // Take Profit
C'est une bonne nouvelle, j'espère que vous ne m'en voulez pas d'avoir subverti votre fil de discussion, mais je pense que nous avons tous deux obtenu quelque chose d'utile à la fin :-)
Avez-vous trouvé une autre solution que celle que je propose avec OnTradeTransaction pour procéder à un sl & tp sur un cas d'exécution de marché (courtier ECN) ?
Le code que j'ai suggéré dans ce post https://www.mql5.com/en/forum/11051#comment_446272 fonctionne bien pour autant que je puisse dire, j'ai supposé qu'il ne fonctionnait pas dans le Strategy Tester parce que mon hypothèse sur le spread étant fixe (comme dans MT4) était incorrecte. Mon code fonctionne maintenant dans le Strategy Tester et dans Demo pour les symboles avec le type d'exécution Instant ou Exchange, mon code détermine le type et envoie les requêtes appropriées. Idéalement, je voudrais que mon code gère automatiquement tout type d'exécution.