StepMA_Stoch_v1 EA. Simple mais satisfaisant - page 3

 

Désolé, j'étais en retard hier soir et j'ai posté le mauvais expert. DOH

Le voici à nouveau

Dossiers :
 

Spepstochcross

Juste un rapide backtest

Dossiers :
 
jorgka:
Juste un rapide backtest

Salut Jorgka,

Tnx pour l'effort et cet EA.

Mais je ne vois pas de réglages permettant d'optimiser les paramètres. Standard il utilise 1.0 mais dans la plupart des situations on peut voir que ce n'est pas le paramètre idéal. Sur des graphiques de 30 minutes, l'expérience nous apprend qu'une valeur de +/- 1.4-1.6 fait un meilleur travail. Donc, est-il possible d'ajouter le paramètre du stepmatoc afin qu'ils puissent être optimisés ?...

TNX a lott is advance...iGoR

 

Salut Jorgka,

Je ne pense pas que l'EA fonctionne correctement. Il ne donne que 15 trades quand on essaie de backtester vos paramètres par défaut sur un câble de 30min sans aucun stop. Il devrait y avoir des centaines de trades. Si vous regardez l'indicateur sur une période de 2 ans, il y a des centaines de croisements.

salutations iGoR

 

paramètres

Bonjour à tous,

Désolé de ne pas avoir ajouté grand chose à ce fil depuis que je l'ai commencé, mais je suggère à Jorgka de revoir les paramètres que j'ai expliqués au début de ce fil. Si vous utilisez 1.0, l'EA ne sera pas rentable, mais si vous utilisez 1.9, l'EA sera très rentable. Il y aura des pertes, mais les gains sont énormes. Tout ce que l'EA doit faire est d'acheter ou de vendre une fois qu'un croisement est confirmé sur le graphique 30min de Cable, USD/CHF, USD/JPY, et EUR/JPY. Si vous pouvez programmer l'EA pour qu'il vende ou achète deux fois plus d'actions que celles qui sont actuellement en position, cela permettra de fermer la première position et d'ouvrir la suivante pour le même montant mais dans la direction opposée.

La beauté de l'EA est que vous n'avez pas besoin d'un stoploss car il y aura toujours un autre croisement qui mettra fin à la position actuelle. Croyez-moi, avec cet EA vous n'avez pas besoin d'un stoploss. Maintenant, faites attention en programmant la position de fermeture/ouverture comme expliqué ci-dessus car il est possible que la position précédente ne soit pas fermée lorsque vous vendez ou achetez deux fois le montant de la position ouverte. J'ai vu des cas où une toute nouvelle position a été ouverte pour le double du montant de la position précédente sans fermer cette dernière. Par exemple, disons que vous avez une position longue pour un lot standard. Le croisement suivant se produit et l'EA vend alors 2 lots standard. Cela devrait vendre la totalité du premier lot standard, fermant ainsi cette position. Il restera un lot court qui sera la nouvelle position dans la direction opposée. C'est l'idéal. J'ai déjà vu des cas où, au lieu de se retrouver avec un seul lot court perdu, il reste un lot long ouvert et deux lots courts. C'est ce que nous voulons éviter.

Un autre problème qui doit être traité est celui de s'assurer que l'EA ne s'exécute que lorsque les lignes se sont complètement croisées et non lorsqu'elles se croisent, car vous aurez beaucoup d'ouvertures et de fermetures de positions pendant le croisement. L'EA n'a vraiment pas besoin d'être plus compliqué que ce que j'ai mis ici. La seule fonction supplémentaire nécessaire est celle qui permet d'augmenter le nombre de lots au fur et à mesure que le compte augmente, mais une fois que cette fonction est intégrée et que l'EA est programmé correctement, il n'a plus besoin d'être compliqué. Il fonctionnera s'il est bien programmé. Comme je l'ai déjà dit, j'ai backtesté manuellement cette stratégie, et les résultats étaient impressionnants. Je pense que la clé est de s'assurer que l'EA fait exactement ce que nous voulons qu'il fasse.

Merci pour votre aide,

Huhenyo

 

Détails de l'EA

Je vais essayer de répondre à certaines questions et d'apporter un peu de clarté.

double diCustom0=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 0, 0) ; double diCustom1=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 1, 0) ;

double diCustom2=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 0, 1) ;

double diCustom3=iCustom(NULL, 30, "StepMA_Stoch_v1", 10, 1.8, 0, 1, 1) ;

OK Comme vous pouvez le voir, il y a 4 commandes de double dicustom.

dicustom1, dicustom2, dicustom3 & dicustom4.

Je vais le décomposer pour vous les gars aussi simple que possible.

Lorsque NULL, 30, c'est la valeur de l'intervalle de temps. EG 30 = 30 mins ou si vous le changez en NULL, 15, cela appellera un délai de 15 minutes.

"StepMA_Stoch_v1" est l'indicateur que l'expert utilise à partir de l'ensemble d'indicateurs MT.

Valeurs, 10, 1.8, 10 ce sont les paramètres d'entrée de StepMA_Stoch_v1, ils doivent être dans l'ordre. Donc Igor peut les changer de "StepMA_Stoch_v1", 10, 1.4, 0 s'il le souhaite.

Les deux derniers restants, toutes les valeurs dans l'expert se réfèrent à des valeurs. Où la valeur 0 est la ligne jaune et la valeur 1 est la ligne bleue. Vous vous demandez pourquoi la valeur 0 (jaune) n'est pas la valeur 1 et le bleu (valeur 1) n'est pas la valeur 2. C'est parce que dans l'indicateur StepStoch, la valeur 0 est définie comme étant jaune et la valeur 1 comme étant bleue.

OK, c'est donc l'indicateur défini.

Maintenant les paramètres d'achat et de vente

lFlagBuyOpen = (diCustom3>=diCustom2) && (diCustom0>diCustom1) ;

lFlagSellOpen = (diCustom2>=diCustom3) && (diCustom1>diCustom0) ;

lFlagBuyClose = (diCustom2>=diCustom3) && (diCustom1>diCustom0) ;

lFlagSellClose = (diCustom3>=diCustom2) && (diCustom0>diCustom1) ;

pour acheter (Go long) Dicustom3 doit être inférieur ou égal à dicustom2

En regardant une barre en arrière, la ligne jaune doit être inférieure ou égale à la ligne bleue.

&

Dicustom0 doit être supérieure à Dicustom1

La ligne jaune doit être supérieure ou égale à la ligne bleue sur la barre actuelle. Si toutes ces lignes apparaissent dans la chaîne IFlagBuyOpen, nous avons une position longue.

Vous remarquerez que Iflagsellclose et Iflagbuyopen sont identiques, car lorsque nous vendons une devise, nous souhaitons sortir de la transaction de la même manière que si nous achetions. Par conséquent, Iflagsellopen et iflagbuyclose ont également les mêmes paramètres.

Je sais que cela peut sembler déroutant pour certains et que d'autres n'auront pas de problème, mais c'est ainsi que l'on identifie un croisement, pour acheter et vendre des transactions basées sur le croisement d'indicateurs.

Igor,

Ne vous fiez jamais aux backtests de MT4.

Aussi, si vous avez besoin de changer les paramètres, ouvrez l'EA et Dicustom1 à 4, la valeur 1.8 et changez-la pour 1.4 ou 1.6, selon ce qui vous convient.

Huhenyo

Comme je vous l'ai dit, l'EA s'ouvrira et se fermera sur l'achat et la vente croisés, en utilisant les paramètres indiqués dans le premier message.

J'ajouterai un gestionnaire d'argent basé sur le % du compte, le défaut sera de 2%.

Je posterai une mise à jour lorsque vous serez satisfait.

Cheers

Jorgka

 
jorgka:
Je vais essayer de répondre à certaines questions ici et d'apporter un peu de clarté.

Où NULL, 30, est la valeur de l'intervalle de temps. EG 30 = 30 minutes ou si vous le changez pour NULL, 15, cela appellera un délai de 15 minutes.

"StepMA_Stoch_v1" est l'indicateur que l'expert utilise à partir de l'ensemble d'indicateurs MT.

Valeurs, 10, 1.8, 10 ce sont les paramètres d'entrée de StepMA_Stoch_v1, ils doivent être dans l'ordre. Donc Igor peut les changer de "StepMA_Stoch_v1", 10, 1.4, 0 s'il le souhaite.

Salut Jorgka,

J'avais déjà compris cela. J'ai fait le test sur un graphique de 30 minutes et j'ai fait plusieurs backtests en changeant chaque fois la valeur de 1.1 à 1.8. Mais comme je l'ai dit sur une période de 2 ans, il n'a pas donné plus de 15 transactions par test... donc en effet le backtesting n'est absolument pas fiable comme je l'ai découvert avec d'autres stratégies simples.

salutations..iGoR

 

Backtesting

iGoR,

J'ai découvert que si vous utilisez l'option every tick dans le backtest, vous obtiendrez beaucoup plus de transactions. En seulement un mois de backtest, il y a eu environ 15 transactions sur $/Yen, & $/CHF.

Jorgka,

Hé, pour la plupart, l'EA fait les transactions avec précision. Le deuxième paramètre de l'indicateur doit être 1,9 au lieu de 1,8. Cela fait une grande différence. Je suis retourné vérifier les trades que l'EA a fait et la plupart d'entre eux étaient corrects, mais il y avait un trade qui était faux et l'indicateur n'était même pas proche de traverser. Savez-vous ce qui a pu se passer ? Je vais joindre une capture d'écran pour que vous puissiez voir. Je dis aussi qu'il y a eu un croisement qui n'a pas été négocié. Avez-vous mis le code pour ne pas trader sur un croisement après un mouvement de 30 pip ? Si oui, je ne pense pas qu'il soit nécessaire d'avoir ce code.

Merci pour votre travail jusqu'à présent. Je pense vraiment que cette application a du potentiel.

Dossiers :
badtrade.jpg  192 kb
 

résultats et faux trades

Ok, j'ai changé les paramètres un tout petit peu pour que PeriodWATR soit 20 et Kwatr soit 1.9. J'ai lancé le testeur en utilisant le paramètre qui évalue chaque tick, le graphique est GBP/USD. Je suis ensuite revenu en arrière et j'ai réévalué chaque transaction. L'EA a fait tout ce qu'il fallait jusqu'au trade #24 - #28 (voir image). Je ne sais pas pourquoi il fait les faux trades comme ça. J'ai également joint les résultats d'un peu plus d'un mois sur GBP/USD ; ils sont très prometteurs tant que nous pouvons trouver comment éviter les faux trades. Sans ces deux faux trades, l'EA aurait généré un rendement d'environ 60 % en un mois avec un lot. Pas mal, non ?

Merci à tous pour votre intérêt et votre aide.

Huhenyo.

Dossiers :
false_trades.jpg  235 kb
results.jpg  185 kb
 

Il semble que le signal de la barre actuelle bouge suffisamment pour déclencher certains faux signaux, merci de l'avoir signalé.

Je vais faire quelques changements pour faire sur la fermeture de la barre actuelle. cela résoudra les faux trades.

Je suis en train de tester l'ea ici et je posterai les résultats la semaine prochaine.

J'aurai une mise à jour sous peu

Jorgka