Suggestions pour EA (de perte à profit) - page 4

 

Voici à quoi cela ressemble sur un test de 2 ans, passage à 1 lot, passage à l'image 240, les deux paramètres sont synchronisés l'un avec l'autre = 60. (Et toutes ces logiques ont été supprimées, sauf M60).

Barres dans le test 13544
Ticks modélisés 5961890
Qualité de la modélisation 90.00%.
Erreurs de correspondance des graphiques 0
Dépôt initial 10000.00
Bénéfice net total 30459.02
Bénéfice brut 99716.99
Perte brute -69257.97
Facteur de profit 1.44
Gain attendu 152.30
Pertes absolues 1037.97
Pertes maximales 20707.98 (35.94%)
Tirage relatif 35.94% (20707.98)
Total des transactions 200
Positions courtes (% gagnées) 97 (30.93%)
Positions longues (% gagné) 103 (30.10%)
Transactions gagnantes (% du total) 61 (30.50%)
Transactions perdantes (% du total) 139 (69.50%)
Le plus grand
transaction à profit 5833.00
transaction perdante -3156.00
Moyenne
transaction à profit 1634.70
perte de transaction -498.26
Maximum
gains consécutifs (profit en argent) 6 (14728.00)
pertes consécutives (perte en argent) 12 (-1587.00)
Maximal
gains consécutifs (nombre de gains) 14728.00 (6)
Perte consécutive (nombre de pertes) -9507.00 (5)
Moyenne
gains consécutifs 1
pertes consécutives 3

 
diostar 2011.10.05 12:37

Vous avez mal compris. La MTF n'est pas la raison, ni même un problème. Le prb est juste la MA. Laissez-moi essayer d'expliquer, très brièvement.

MA dit le passé. Donc quand on prend un signal MA, disons sur un H1, l'attente, E, est que sur le cadre suivant, disons H4, sera "en accord" avec le passé du H1. Le profit est quand le passé de H1 se manifeste sur H4 actuel. Quand E se produit, cela signifie fermer le trade, ou faire ce que la stratégie veut.

Mais dans ce cas, l'affiche a pris l'inverse. C'est une erreur de base, car toutes les attentes sont mélangées.


Le Multi-TimeFrame n'est pas mon point fort. Donc, s'il vous plaît, corrigez ma pensée si elle est fausse.

Dans la logique que vous avez postée ci-dessus :

if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))

le && que j'ai souligné en rouge me dit que la fastMA240 doit aussi être d'accord.

Vu que le fastMA240 est le plus lent de tous les MA. Ne serait-il pas raisonnable de dire que la fastMA240 rend le système plus lent à changer. Et que tout le système est bousculé par ce que le fastMA240 a à dire ?

Maintenant si nous prenons votre suggestion :

if((Close[0]<=fastMA30 && Close[0]<=fastMA60))

Il me semble qu'en laissant le MA240 rapide de côté, le système réagira plus vite au changement. Mais nous avons toujours le problème du MA60 qui dirige le spectacle.

En conclusion : tout ce qui compte, c'est de savoir si c'est une approche rentable à long terme. IMO, il n'y a aucun moyen de dire laquelle est la meilleure. Votre approche ou l'approche de l'auteur original sans test :)

Enfin, les choses que je n'aime pas dans les codes ci-dessus. 1) L'utilisation de la barre actuelle, comme dans Close[0] ce code n'est pas convivial pour le back-tester. 2) L'utilisation du signe =, comme dans <=, premièrement, il est très rare qu'un prix soit = car il est de type double. Et deuxièmement, dans les rares cas où toutes les MAs sont =Close[0], le système devient sans direction, exemple : if(xMA>=Close[0]){Buy}_____if(xMA<=Close[0]){Sell}, quelle est l'action correcte quand c'est =Close[0].

 
diostar:

A en juger par les résultats, je ne recommanderai aucune optimisation. Jusqu'à ce que ces questions de stratégie et de logique soient examinées.

Tout d'abord, je n'ai pas eu autant de temps après avoir effectué ce test de 7 ans sur un H1, ni autant de motivation pour examiner toutes les lignes de codes dans l'EA, mais j'ai été certainement frappé par l'utilisation de 2 nombres magiques - pour les trades "lents" et les trades "rapides". Quel genre de stratégie est-ce là, me suis-je dit ?

Ensuite, je regarde à travers pour les modèles de codage, essayer de commenter le nombre slowmagic. L'ea n'a pas fonctionné, comme prévu.

Puis, j'ai commenté l'autre nombre magique rapide. Et surprise, surprise, l'ea se compile sans erreur.

Donc, il semble que la logique soit complètement incomplète par rapport à ce qui est souhaité ? Il est certain que votre EA ne se remplit que sur la base d'une logique de MA lente, mais jamais sur la rapide ?

Puisque vous êtes le propriétaire de cet EA, vous devriez avoir de meilleures réponses à toutes ces questions, que mes moyens simples.


J'avais des idées qui n'ont pas été mises en œuvre, d'où les nombres magiques lents et rapides.


L'EA n'utilise que le nombre magique lent pour les ordres, et c'est complètement séparé des MAs lentes et rapides qui sont scannées par les entrées.

J'espère que cela répond à votre question

merci

 
ubzen:
Vous devriez transformer cela en un petit projet de création d'un système gagnant à partir de cela. Tout le monde commence avec la version actuelle de l'EA et y ajoute quelque chose. Ensuite, vous choisissez le codeur le plus fort parmi vous pour rassembler les meilleures idées. Quand vous aurez atteint votre objectif, vous l'intégrerez dans le code de base. Ce sera très intéressant de voir ce qui en sortira.

J'aimerais beaucoup collaborer à un tel effort pour construire un EA rentable à partir d'une version de base de l'EA qui a été postée.

 
mbirrell:

Je chercherais un autre moyen d'entrer sur le marché. Lorsque le signal est donné par ces indicateurs, il est déjà trop tard. J'utilise toujours des ordres à cours limité pour anticiper ce que le marché va faire. Certains peuvent se moquer de cette approche, mais elle a fonctionné pour moi. N'oubliez pas qu'il ne s'agit pas d'un sprint, mais d'un marathon.


Je suis tout à fait d'accord avec votre logique, mais comment puis-je convertir ma logique existante pour l'adapter au modèle d'ordre à cours limité ?
 
danjp:

Idée intéressante, je si c0d3 est d'accord, je l'essaierai. Je devrais pouvoir remplacer ma fonction de règles par les règles de Mfro. Cela lui donnerait des règles sur les heures de trading, la notification par email, la vérification des erreurs, l'empilage, les ordres limites et en attente, le trailing stop, le stop, etc. Cela ne prendrait probablement qu'un jour ou deux pour que ces règles fonctionnent dans mon shell EA. Je pourrais alors envisager de modifier les règles pour essayer de le rendre plus rentable.

Je suis tout à fait d'accord avec cela, mais seriez-vous d'accord pour partager votre code sur ce fil de discussion ?
 
diostar:

si vous aviez vu ses "règles", elles sont quelque chose comme ceci (pour le cas de la vente) :

Mathématiquement parlant, c'est un non-sens. La raison en est que la MA sur un cadre supérieur est, comme prévu, plus lente en raison du temps plus long nécessaire pour compléter une barre, que les cadres inférieurs. Donc, dans l'ensemble, cette logique finit par être principalement déterminée par cette condition inférieure :

Donc, à ce moment-là, la MA montre le passé du point de vue de MA240, puis 60, puis 30, le marché était vendeur. Ma suggestion peut être simplement "d'inverser" cette règle absurde, donc au lieu d'une entrée courte, allez longue, et vice versa. Je suis certain que le résultat sera plus joli.



Laissez-moi vous expliquer une transaction courte, c'est l'inverse pour une transaction longue :

  • Condition d'entrée 1 : Si le cours de clôture actuel est inférieur à MA30(100 échantillons), MA60(100 échantillons) et MA240(100 échantillons), nous sommes dans une tendance baissière.
if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))
   {
      // we are in a downtrend
      //Comment("\n"+"short only");
      shortEntry();
   }
  • Condition d'entrée 2 : Attendre que le prix de clôture de l'entryTF(15M) soit au-dessus de MA30(50 échantillons) et MA60(50 échantillons)

if(iClose(Symbol(),entryTF,1)>=slowMA30 && iClose(Symbol(),entryTF,1)>=slowMA60)
  • Entrer en position courte

L'idée : MTF Logic

  • Lorsque le prix est inférieur à la MA30 qui est basée sur la M30.
  • Quand le prix est en dessous de la MA60 qui est basée sur la H1
  • Lorsque le prix est inférieur à la MA240 qui est basée sur H4
  • attendre que les cours de clôture de la M15 soient supérieurs à la MA30 qui est basée sur la M30
  • attendre que les cours de clôture de la M15 soient supérieurs à la MA60, qui est basée sur la M60.
  • Entrer en position courte : avec les paramètres de l'ordre


Je vais aussi essayer d'inverser les entrées, et voir ce qui se passe


J'espère que cela répond à votre question

 
ubzen:

@diostar, idées et points de vue intéressants sur les logiques MTF. C'est quelque chose que j'ai remarqué à propos des logiques MTF, une seule période de temps domine généralement le système.

@danjp, oui, c'est probablement le moyen le plus rapide d'intégrer les règles dans un programme opérationnel auquel vous faites confiance. Puisque la plupart d'entre nous ont déjà un modèle sur lequel brancher une logique. Si quelqu'un ne se sent pas à l'aise pour donner ses codes, une suggestion serait que celui qui assemble les codes utilise des bibliothèques de confiance de notre base de code. (Exemple : OrderReliable.mqh.).

Vous savez quoi ? J'aime bien cette idée. Si je peux obtenir 3 personnes pour signer d'ici, je vais commencer un nouveau fil de discussion. Nous collaborons dans l'effort d'essayer de créer un EA rentable. Ce sera un bon test pour voir si plusieurs traders peuvent vraiment trader le même système :)


Merci de poster ici le fil de discussion, si vous le démarrez, je veux absolument participer.
 
danjp:

Je ferais une série d'optimisation avec (1*std) -> (5*std) et j'essaierais également sur la même série 0,3 - > 1,5 sur le SL et le TP. Je commencerais par une exécution sur 12 mois. Si vous obtenez des résultats décents sur certaines de ces séries, j'ajouterais alors à l'EA une routine d'heures de trading et j'utiliserais les valeurs que vous avez obtenues sur la série précédente pour voir si vous pouvez l'améliorer encore plus sans avoir à trader 24/7.

Bonne chance, continuez à publier les résultats.

Pouvez-vous me recommander une documentation sur l'exécution d'un backtest avec (1*std) -> (5*std) et (0,3 - > 1,5 sur le SL et le TP) ?
 
diostar:

Le total des 156 transactions du test avant est beaucoup plus fiable que les 39 transactions du backtest. L'idée générale du backtest est d'effectuer autant de transactions que possible et d'obtenir des résultats rapides. À quoi sert le backtesting ?







Lebacktesting sert juste à tester la stratégie, et à voir que votre logique fonctionne, mais pour juger si elle sera rentable, seuls des tests en amont peuvent le déterminer.


Il y a eu de nombreuses fois où vous avez vu un EA rentable sur le backtest, puis vous l'avez exécuté en direct, et vola, votre EA a cassé votre banque.