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

 
c0d3:
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)

.


J'ai ajouté du code à votre progamme, marqué par djp. Déposez cet EA sur un graphique, dans la section propriétés remplissez le start step stop avec les valeurs dans les commentaires.

Cochez la case optimisation et changez les dates d'utilisation dans l'onglet paramètres. Décochez le mode visuel si vous l'avez coché. Appuyez sur Start. Si vous savez déjà comment faire, désolé, je ne sais pas si vous êtes familier avec le testeur. Je ne dis pas que cela va vous aider mais vous pourriez être surpris par certains de ces résultats.

Dans votre code vous avez 2 lignes [double fastSTD = ........ ] Vous n'utilisez jamais fastSTD ailleurs dans votre code. Je pense que vous aviez l'intention de l'utiliser, mais que vous avez utilisé slowSTD à la place par erreur.

Vous pourriez vouloir vérifier cela avant de tester, et aussi prendre en compte les commentaires des autres posters avant de commencer à tester. Si vous n'avez jamais fait d'optimisation auparavant, vous pouvez simplement le faire sans changer votre code, juste pour vous familiariser. Je ne pense pas que cela prendra plus d'une heure avec les quatre variables.

 
danjp:


J'ai ajouté du code à votre programme, marqué par djp. Déposez cet EA sur un graphique, dans la section des propriétés remplissez le start step stop avec les valeurs dans les commentaires.

Cochez la case optimisation et modifiez les dates d'utilisation dans l'onglet paramètres. Décochez le mode visuel si vous l'avez coché. Appuyez sur Start. Si vous savez déjà comment faire, désolé, je ne sais pas si vous êtes familier avec le testeur. Je ne dis pas que cela va vous aider mais vous pourriez être surpris par certains de ces résultats.

Dans votre code vous avez 2 lignes [double fastSTD = ........ ] Vous n'utilisez jamais fastSTD ailleurs dans votre code. Je pense que vous aviez l'intention de l'utiliser, mais que vous avez utilisé slowSTD à la place par erreur.

Vous pourriez vouloir vérifier cela avant de tester, et aussi prendre en compte les commentaires des autres posters avant de commencer à tester. Si vous n'avez jamais fait d'optimisation auparavant, vous pouvez simplement le faire sans changer votre code, juste pour vous familiariser avec. Je ne pense pas que cela prendra plus d'une heure avec les quatre variables.


Merci, je vais l'expérimenter sur mon compte réel, au lieu du compte de démonstration.
 
c0d3:
est-il possible pour vous de poster l'EA modifié ici ?

Bien sûr. Ce sont quelques-unes des principales modifications apportées lors du test ci-dessus :

1) Votre condition précédente :

if(Close[0]<fastMA[tradingTimeFrame-1])shortEntry();else if(Close[0]>fastMA[tradingTimeFrame-1])longEntry();

2) Comme vous le voyez ci-dessus : Tous les signaux MA, entF ont été "arrayed" et "bind" by

tradingTimeFrame-1

& par l'équation, lors de l'initialisation :

if(tradingTimeFrame<3)tradingTimeFrame=3;
   entryTF=tradingTimeFrame-3;

et le reste des changements suit : cette façon de faire est plus facile pour le développement futur, en particulier à des fins d'optimisation (il suffit d'avancer le tradingTimeFrame de 1).

Désolé, s'il n'y a pas de commentaires dans mes codes. J'ai l'habitude de lire les codes intacts, et sans commentaires, c'est plus facile, plus propre pour moi à lire.

 
c0d3:

Merci, je vais l'expérimenter sur mon compte réel, au lieu du compte de démonstration.

Il existe un programme appelé WinMerge, http://winmerge.org/downloads/. Il vous rendra la vie beaucoup plus facile. Il est gratuit et rend la fusion de code facile. Prenez mon fichier et fusionnez les modifications avec celles de Diostar, puis repostez ce fichier avec un numéro de version afin qu'il soit plus facile de suivre la version la plus récente. MAybe commencer avec MTFzMA_v1.0, puis vous incrémentez le .0 par un à chaque fois que l'un d'entre nous fait un changement.
 
diostar:

Bien sûr. Ce sont quelques-uns des principaux changements pendant le test ci-dessus :

1) Votre condition précédente :

2) Comme vous le voyez ci-dessus : Toutes les MA, les signaux entF ont été "arrayed" et "bind" par

& par l'équation, lors de l'init :

et le reste des changements suit : cette façon de faire est plus facile pour le développement futur, en particulier à des fins d'optimisation (il suffit d'avancer le tradingTimeFrame de 1).

Désolé, s'il n'y a pas de commentaires dans mes codes. J'ai l'habitude de lire les codes intacts, et sans commentaires, il est plus facile, plus propre pour moi à lire.


Un code vraiment propre, avec beaucoup de boucles :)


Merci.
 
danjp:

Il existe un programme appelé WinMerge, http://winmerge.org/downloads/. Il vous rendra la vie beaucoup plus facile. Il est gratuit et rend la fusion de code facile. Prenez mon fichier et fusionnez les modifications avec celles de Diostar, puis repostez ce fichier avec un numéro de version afin qu'il soit plus facile de suivre la version la plus récente. MAybe commencer avec MTFzMA_v1.0, puis vous incrémentez le .0 par un à chaque fois que l'un d'entre nous fait un changement.

fera
 

Voici quelques résultats (test avant), à partir d'un ratio RR de 1:1, et c'est perdant jusqu'à présent !

  • Question : si je devais inverser les types d'ordre (par exemple, un achat devient une vente), le rapport gains/pertes serait-il également inversé ?
  • Il y a 7 pertes et 4 gains. Si j'inversais les types d'ordre, le résultat serait-il de 7 gains et 4 pertes ?
  • Mon hypothèse est-elle correcte ?

Si c'est le cas, alors je pense que ce serait une bonne idée de déterminer quand inverser les ordres, et quand les garder tels quels, juste une pensée...

Qu'en pensez-vous ?

Déclaration : 7064834 - 3
Interbank FX, LLC

Compte : 7064834 Nom : 3 Devise : USD 2011 6 octobre, 20:45
Transactions fermées :
TicketHeure d'ouvertureTypeTailleArticle PrixS / LT / PHeure de fermeture PrixCommissionTaxesSwapProfit
1024655882011.10.04 16:12soldeDépôt1 000.00
1024691902011.10.04 16:50vendre0.10eurusdm1.328561.343961.313162011.10.06 18:071.343960.000.00-0.27-15.40
90620112011.10.04 16:50:08 [sl]
1024860502011.10.04 20:32vendre0.10audusdm0.953180.968860.937502011.10.06 07:350.968860.000.00-0.62-15.68
90620112011.10.04 20:32:48 [sl]
1024861442011.10.04 20:33vendre0.10gbpusdm1.547191.559581.534802011.10.06 11:001.534800.000.00-0.2812.39
90620112011.10.04 20:33:37 [tp]
1024862472011.10.04 20:34vendre0.10gbpjpym118.828120.182117.4942011.10.06 11:00117.4940.000.00-0.4917.40
90620112011.10.04 20:34:36 [tp]
1024876952011.10.04 21:15acheter0.10usdchfm0.916660.907080.926242011.10.06 07:000.926240.000.00-0.0710.34
90620112011.10.04 21:15:17 [tp]
1024877232011.10.04 21:16acheter0.10usdcadm1.052841.044261.060782011.10.05 17:041.044260.000.000.00-8.22
90620112011.10.04 21:16:53 [sl]
1025641342011.10.06 11:00vendre0.10gbpusdm1.533371.540811.528612011.10.06 11:121.528610.000.000.004.76
90620112011.10.06 11:00:10 [tp]
1025652822011.10.06 11:12vendre0.10gbpusdm1.528141.535071.521312011.10.06 14:221.535070.000.000.00-6.93
90620112011.10.06 11:12:51 [sl]
1025692942011.10.06 12:30acheter0.10usdjpym76.84776.69876.9942011.10.06 12:3076.8060.000.000.00-0.53
90620112011.10.06 12:30:01
1025692962011.10.06 12:30acheter0.10usdjpym76.84776.69976.9952011.10.06 12:3076.8050.000.000.00-0.55
90620112011.10.06 12:30:02
1025692982011.10.06 12:30acheter0.10usdjpym76.84776.69976.9952011.10.06 13:3376.6990.000.000.00-1.93
90620112011.10.06 12:30:02 [sl]
0.00 0.00 -1.73 -4.35
P/L fermé : -6.08
Transactions ouvertes :
TicketTemps ouvertTypeTailleArticle PrixS / LT / P PrixCommissionTaxesSwapProfit
1025791662011.10.06 15:21acheter0.10usdchfm0.923010.918380.927320.920920.000.000.00-2.27
90620112011.10.06 15:21:28
1025877442011.10.06 18:18vendre0.10gbpusdm1.543221.550521.535801.544310.000.000.00-1.09
90620112011.10.06 18:18:43
0.00 0.00 0.00 -3.36
P/L flottant : -3.36
Ordres de travail :
TicketTemps ouvertTypeTailleArticle PrixS / LT / PPrix du marché
Aucune transaction
Résumé :
Dépôt/retrait : 1 000.00 Facilité de crédit : 0.00
P/L de la transaction fermée : -6.08 P/L flottant : -3.36 Marge : 50.86
Solde : 993.92 Fonds propres : 990.56 Marge libre : 939.70
Détails :

Marge brute : 44.05 Perte brute : 50.13 Bénéfice net total : -6.08
Facteur de profit : 0.88 Gain attendu : -0.55
Décroissance absolue : 14.25 Drawdown Maximal : 25.61 (2.51%) Drawdown relatif : 2.51% (25.61)
Total des transactions : 11 Positions courtes (% gagné) : 6 (50.00%) Positions longues (% gagné) : 5 (20.00%)
Trades à profit (% du total) : 4 (36.36%) Transactions perdantes (% du total) : 7 (63.64%)
Le plus grand plus grande transaction de profit : 16.91 plus grande perte : -16.30
Moyenne moyen : 11.01 transaction à perte : -7.16
Maximum gains consécutifs ($) : 3 (33.78) pertes consécutives ($) : 5 (-25.61)
Maximal gains consécutifs (compte) : 33.78 (3) perte consécutive (compte) : -25.61 (5)
Moyenne victoires consécutives : 2 pertes consécutives : 2
 
c0d3:

Voici quelques résultats (test avant), à partir du ratio 1:1 RR, et c'est perdant jusqu'à présent !

  • Question : si je devais inverser les types d'ordre (c'est-à-dire que l'achat est maintenant une vente), le rapport victoire/perte serait-il également inversé ?

Bon Dieu, vous l'avez mentionné.

Parce que c'est aussi ce que j'ai découvert l'autre jour. Il s'est amélioré, mais pas à un niveau glorieux, cependant cette amélioration, dans un sens technique, était une quantité hautement significative de taux de changement. Juste trop significative pour être laissée en suspens, "non découverte".

J'ai donc créé un nouveau fil de discussion ici: Que pensez-vous de cette approche "Graal" de l'évaluation environnementale ? J'aimerais connaître les méthodologies des autres en ce qui concerne leur propre approche de l'évaluation environnementale.

La méthodologie que nous utilisons ici est similaire à l'ingénierie inverse, pour information. Cependant la forme est plutôt :

Trouver la meilleure solution dans le temps le plus court possible. Dans le même temps (très court), 5-10 minutes au maximum, tester la logique par unité, de sorte que la logique PEUT être déterminée, disons. 99% bon ou 99% mauvais, c'est à peu près confirmé.

Essayez-le. Vous pourriez être surpris comme je l'ai été. C'est une façon de faire assez peu orthodoxe - un mauvais Graal "espérant" se transformer en Saint Graal, cela sonne comme une sorte de repentir, comme tourner une nouvelle feuille. Néanmoins, c'est une possibilité.

 
diostar:

Bon Dieu, vous l'avez mentionné.

Parce que c'est ce que j'ai découvert aussi l'autre jour. Il s'est amélioré, mais pas à un niveau glorieux, cependant cette amélioration, dans un sens technique, était une quantité hautement significative de taux de changement. Juste trop significative pour être laissée en suspens, "non découverte".

J'ai donc créé un nouveau fil de discussion ici: Que pensez-vous de cette approche "Graal" de l'évaluation environnementale ? J'aimerais connaître les méthodologies des autres en ce qui concerne leur propre approche de l'évaluation environnementale.

La méthodologie que nous appliquons ici est similaire à celle de l'ingénierie inverse, fyi. Cependant la forme est plutôt :

Trouver la meilleure solution en un minimum de temps. Tout en dans le même temps (très court), 5-10 mins au plus, tester par unité la logique, de sorte que la logique PEUT être un déterminé, disons. 99% bon ou 99% mauvais, c'est à peu près confirmé.

Essayez-le. Vous pourriez être surpris comme je l'ai été. C'est une façon de faire assez peu orthodoxe - un mauvais Graal "espérant" se transformer en Saint Graal, cela sonne comme une sorte de repentir, comme tourner une nouvelle feuille. Néanmoins, c'est une possibilité.

J'ai essayé cette méthode auparavant, et à chaque fois que j'ai inversé les types d'ordre, le système a continué à échouer, LOL ? ?? J'ai le sentiment que si je change ce système, et que je fais un test, je vais obtenir exactement les mêmes résultats.

Néanmoins, je vais l'essayer !

 
c0d3:

J'ai déjà essayé cette méthode, et chaque fois que j'ai inversé les types d'ordre, le système a échoué, LOL ? J'ai la forte impression que si je change ce système et que je fais un test, je vais obtenir exactement les mêmes résultats.

Néanmoins, je vais l'essayer !

Non. Ce n'est pas vraiment ça, à ce stade. Cela PEUT être une perte de temps, de tester de l'achat à la vente, et vice versa, bien que cela ait donné des changements. Quand je dis, c'est ce que je voulais dire :

Trouver la meilleure solution dans le temps le plus court possible. Dans le même temps (très court), 5-10 minutes au plus, tester la logique par unité, de sorte que la logique PEUT être déterminée, disons. 99% bon ou 99% mauvais, c'est à peu près confirmé.

1) Vous prenez juste 1 logique principale, disons par ex :

if(Close[0]<fastMA[tradingTimeFrame-1])shortEntry()

et vous enlevez tout le reste, et vous faites ceci :

if(Close[0]<fastMA[tradingTimeFrame-1]){shortEntry();longEntry();}

c'est-à-dire par unité de logique - en testant à la fois l'achat et la vente, au MÊME moment. Donc, si vous souhaitez faire de l'optimisation avec cette logique maître, vous optimiserez simplement vos paramètres de base - sl, tp, lots, etc. uniquement. Puis analysez les instances de leurs achats et de leurs ventes, jugez si cette logique unique peut faire l'affaire, dans les deux scénarios - si elle fait des entrées incorrectes ou correctes. Les deux. Puis passez à la logique suivante.

Au fur et à mesure que vous avancez, vous pouvez essayer des combinaisons... 1ère logique juste acheter, 2ème logique, juste vendre, ou les deux, etc. Je trouve que cette méthode est plus structurée et vous pouvez vraiment voir quelle logique précise est vraiment à l'origine du drawdown.