TSR - réanimer les systèmes de trading

 

Poursuivant le thème : Où se situe la limite entre les modèles adaptés et les modèles réels ?


TSR est l'abréviation de Trading Systems Recovery (récupération des systèmes de négociation).


Je poste sans description de la théorie et sans captures d'écran. Les captures d'écran seront dans la base de code


Et je vais prévenir ceux qui sont particulièrement doués :

1. La version ci-jointe du conseiller expert a été réduite au minimum pour être utilisée à des fins éducatives.

2. Sur les questions d'amélioration de l'Expert Advisor, allez au BFG.

Si vous avez des questions, comme : "Pourquoi ai-je des résultats différents ?" Pas de réponse de l'auteur.



Faisons une expérience en utilisant un système de trading qui est basé sur la prévision de la direction future du mouvement des cotations en ajustant les coefficients de pondération du réseau neuronal élémentaire à une couche - perceptron sur des données historiques. Le principe de ce système de trading a été décrit en détail dans mon article "Comment trouver un système de trading". Prenons les données historiques de la paire de devises EURUSD pour les 9 mois précédents ou plus sur le graphique de l'échelle de temps H1. Nous le diviserons en trois sections indépendantes de trois mois chacune. La première sera utilisée pour le test final, tandis que les deux autres seront utilisées pour ajuster l'historique. Pour éviter d'exécuter le système de trading séparément, j'ai immédiatement combiné deux perceptrons dans un seul système de trading. Et j'ai créé la fonction Supervisor() à l'aide de laquelle le système de trading a trois modes de fonctionnement, en fonction du passage des paramètres d'entrée : 1 - ajustement et test du premier perceptron, 2 - ajustement et test du second perceptron, 3 - filtrage par élimination des lectures incohérentes des deux perceptrons en mode test sans optimisation ou en mode auto-trading sur un dépôt démo ou réel.

Les poids du perceptron x11, x12 ... x42 ainsi que p et sl sont ajustables aux données historiques. Le paramètre d'entrée sl est une constante pour toutes les sections. Les niveaux de Stop Loss et Take Profit sont fixés pour toutes les positions ouvertes par cette même valeur. Un autre paramètre d'entrée p - la période de décalage pour la différence de prix d'ouverture, est également une constante. L'entrée sur le marché se fait au début d'une nouvelle formation de barres, c'est-à-dire en fonction des prix d'ouverture des barres et des lectures du perceptron, selon la valeur du paramètre d'entrée pass, et la sortie ne se fait qu'au déclenchement d'un Stop Loss ou Take Profit. L'optimisation est effectuée à l'aide de l'algorithme génétique d'identification des extrema et le solde maximum est pris comme un extremum. Le montant initial, par exemple $1000000, doit être très grand pendant l'optimisation pour éviter que l'algorithme ne se bloque sur les appels de marge. Paramètres d'entrée : lots - volume des positions à ouvrir en lots et mn - numéro magique unique, afin que le Conseiller Expert ne confonde pas la gestion de ses propres ordres (qu'il a ouverts) avec les ordres des autres (qu'il n'a pas ouverts).


Dans un premier temps, nous devons déterminer quelles doivent être les valeurs des variables d'entrée p et sl. Pour ce faire, nous sélectionnons les deux dernières parties de l'historique, c'est-à-dire d'il y a 6 mois à aujourd'hui. Nous avons fixé tous les paramètres des poids du perceptron à des valeurs comprises entre Start = 0 et Stop = 200 par pas de 1. Définissez la valeur p de Start = 3 à Stop =100 par pas de 1, la valeur sl de Start = 100 à Stop =1000 par pas de 10 (ou de 10 à 100 par pas de 1 pour les cotations à quatre chiffres). Définissez la valeur de la passe à 1. Cochez les paramètres suivants à optimiser : x11, x21, x31, x41, p et sl. Toutes les autres cases à cocher doivent être désactivées. Activez l'optimisation. Une fois l'optimisation terminée, réglez les paramètres d'entrée par la meilleure passe.


Deuxième étape : ajustement des poids du premier perceptron sur la deuxième section de données historiques. Définissez la date et l'heure d'optimisation d'il y a 6 mois à il y a 3 mois. Décochez les paramètres optimisés uniquement à partir des variables d'entrée p et sl. Exécutez l'optimisation. Une fois l'ajustement terminé, réglez les paramètres d'entrée en fonction de la meilleure passe.


Troisième étape : ajustement des poids du deuxième perceptron sur la troisième section de données historiques. Définissez la date et l'heure de l'optimisation de il y a 3 mois à aujourd'hui. Décochez les paramètres optimisés : x11, x21, x31, x41 et réglez-les pour x12, x22, x32 et x42. Les autres cases à cocher doivent être décochées. Réglez la variable d'entrée pass à 2. Optimisation de départ. Une fois l'optimisation terminée, réglez les paramètres d'entrée par la meilleure passe.


C'est tout, notre système de trading a été ajusté aux données historiques d'il y a 6 mois jusqu'à aujourd'hui. Enregistrons les valeurs des paramètres d'entrée dans le fichier de configuration. Réglez la variable d'entrée de la passe à 3. Décochez la case "Utiliser la date" et lancez le test. Nous regardons le tableau des tests. Nous pouvons voir que la courbe de la balance et des fonds propres tend vers le haut dans la partie droite du graphique et vers le bas dans la partie gauche. Nous devons maintenant nous assurer que la balance tend vers le haut dans la zone située en dehors de l'échantillon d'ajustement. Nous amenons le curseur de notre souris sur la ligne de solde, où commence la hausse des bénéfices, et nous regardons la date dans l'infobulle. Il s'avère que la courbe d'équilibre s'est orientée à la hausse il y a presque neuf mois, en comptant à partir d'aujourd'hui, à l'exclusion de 10 jours, c'est-à-dire 8 mois et 20 jours. Et l'ajustement a été effectué sur une période de 6 mois. Il y a donc un test réussi en dehors de l'échantillon optimisé . Nous mettons en évidence cette zone hors échantillon pour l'analyser plus en détail. Dans l'ensemble, les résultats sont tout à fait satisfaisants, bien que nettement inférieurs à ceux de J. Soros, mais supérieurs à ceux de W. Niederhoffer.


Afin de s'assurer que nous avons traité l'adaptation dans certaines parties de l'histoire, il est nécessaire et suffisant de décocher la case "Utiliser la date". Et exécutez le test du conseiller expert avec les valeurs 1 et 2 sur l'ensemble de l'historique disponible. Dans chacun de ces modes, on constate que la croissance vers le haut de la courbe d'équilibre n'est observée que dans les périodes sur lesquelles certains perceptrons ont été ajustés. Pour toutes les autres périodes de l'histoire, il n'y a pas de tendance positive, sauf pour les bosses individuelles qui se terminent par des creux.


Comme nous l'avons vu, malgré le fait que les deux perceptrons n'ont pas passé les tests avant en dehors de l'échantillon optimisé de données historiques, néanmoins le filtre de leurs signaux conjoints, a donné des résultats positifs sur des données historiques dont rien n'était connu au moment de l'ajustement. Vous pouvez également expérimenter d'autres systèmes de négociation, tels que ceux basés sur la décomposition de moyennes mobiles simples ou sur des réseaux neuronaux multicouches plus avancés. Si le système de trading est robuste, il est plus susceptible de produire des résultats positifs sur les signaux de trading filtrés en dehors de la période d'optimisation. S'il n'est pas robuste, il ne donnera pas de résultats positifs sur la période optimisée avec le filtre activé. Cependant, la robustesse du TS est secondaire par rapport aux frais généraux du spread, du swap et de la commission du courtier. Par conséquent, avec des frais généraux importants, les résultats positifs des tests prospectifs ne sont qu'un rêve, car le gain attendu est nécessairement négatif.



Dossiers :
tsr.mq4  4 kb
 

Je n'étais pas d'accord avec Reshetov à bien des égards (pas sur ce sujet). Lui et moi avions occasionnellement un échange de vues, et généralement il me renvoyait en me traitant d'idiot et de crétin, explicitement ou implicitement. Pour ma part, je ne l'ai pas pris personnellement.

J'ai une grande demande à tout le monde : ne vous engagez pas dans la fluderasty dans ce fil. Si vous avez quelque chose de constructif à dire sur le sujet, écrivez, et sinon, n'écrivez pas.

 

Gg :) un autre graal pour les nerds de Reshetov :)

Constructif ? Qui regarde l'OOS de derrière ? Ça vient de l'évidence.

 
TheXpert:


Constructif ? Qui regarde l'OOS de derrière ? C'est une évidence.


Mettez OOS à l'avant - personne ne vous arrête. Le fait est qu'en TS la raison vient en premier - un signal de trading, et ensuite la conséquence - un ordre ouvert qui sera clôturé avec un profit ou une perte. Par conséquent, peu importe qu'il se trouve devant ou derrière l'OOS, sur les relations de cause à effet, il n'affectera rien, car les signaux ne sont pas établis sur l'OOS, mais seulement vérifiés sur place pour voir s'ils sont dangereux. Les signaux de transaction précéderont toujours les entrées sur le marché, et non l'inverse, c'est-à-dire que l'ordre ne changera pas. Si le conseiller expert perd, il perdra à la fois à l'avant et à l'arrière. Si elle est rentable, elle ne se souciera pas de savoir où se trouve exactement l'OOS. Le plus important est que la zone OOS soit adjacente aux zones d'ajustement. Et comme les marchés changent constamment et que la parcelle rentable a une durée de vie limitée, il est compréhensible que l'OOS soit mieux vérifié à l'arrière, puisque l'avenir sur lequel nous allons trader est devant nous.

Donc, pour être plus sûr, nous pouvons tester l'OOS à la fois devant et derrière. Si le TS perd ici ou là, alors il n'est certainement pas robuste.

 
Yuri, en quelques phrases, quelle est l'essence et la conclusion de vos résultats ?
 
Avals:
Yuri, en quelques phrases, quelle est l'essence et la conclusion de vos résultats ?
Le début est présenté ici : https://www.mql5.com/ru/forum/131724
 
Avals:
Yuri, pouvez-vous expliquer brièvement, en quelques phrases, quelle est l'essence et la conclusion de vos résultats ?

1. Même à partir de l'appareillage, les faux signaux peuvent être identifiés et éliminés dans une plus ou moins grande mesure. Mais pour ce faire, nous aurons besoin d'au moins deux parcelles différentes sur lesquelles l'optimisation a été effectuée. Parmi ceux-ci, la comparaison de la (non-)coïncidence des relevés permet d'éliminer les faux signaux des signaux potentiellement rentables. Il est clair qu'il est impossible de couper tous les faux signaux sans exception, c'est-à-dire qu'une partie d'entre eux sera de toute façon perdue. Mais il suffit à certaines TS d'obtenir un avantage sous la forme d'une espérance mathématique positive.

2. De nombreux TS ont été rejetés auparavant, simplement parce qu'ils s'adaptaient bien, mais lors de tests ultérieurs, ils ont donné des résultats insatisfaisants. Or, après avoir analysé ces TS selon la méthode décrite ci-dessus, il s'avère que certains d'entre eux se sont révélés être d'assez bons chevaux de trait. Ainsi, une partie des systèmes de trading peut être réanimée de cette manière.

3. Si vous disposez d'un TS robuste configuré selon cette méthodologie, il est plus fiable qu'un simple OOS optimisé et testé.

 
Reshetov:
... il est compréhensible qu'il soit préférable de vérifier à l'arrière sur OOS, car l'avenir sur lequel nous allons commercer est devant nous.
J'ai vérifié par moi-même, il y a quelques années, si le fait d'être "derrière" donne quelque chose "devant". Et je suis arrivé à la conclusion que la corrélation n'est pas du tout évidente. Il n'y a pas de garanties particulières. La probabilité de succès du TS peut légèrement augmenter, mais le Conseiller Expert peut ne pas donner de bénéfice et le perdre. Nous avons besoin d'autres méthodes ici.
 
voltair:
En ce qui me concerne, il y a quelques années, j'ai vérifié si l'OOS "derrière" donne quelque chose "devant". Et je suis arrivé à la conclusion que la corrélation n'est pas du tout évidente. Il n'y a pas de garanties particulières. La probabilité de succès du TS peut légèrement augmenter, mais le Conseiller Expert peut ne pas donner de bénéfice et le perdre. Nous avons besoin d'autres méthodes ici.

Encore une fois, en utilisant la méthode ci-dessus, personne n'interdit de vérifier les OOS à l'avant et à l'arrière. Si le bénéfice ne sera pas obtenu sur l'un des avantages, l'AT n'est pas robuste et il vaut mieux s'en débarrasser plutôt que d'essayer de réanimer le mort-né. En ce qui concerne la différence de résultats sur différents OOS, personne n'a prédit une correspondance à 100%.


Quant aux garanties, je ne les ai promises à personne. Chacun doit tester mes suggestions de TS sur des comptes OOS, démo ou cent et décider par lui-même s'il est satisfait ou non du résultat.


Je ne serais pas surpris que vous passiez toute votre vie à chercher en vain une méthode aux résultats garantis et que vous mouriez sans l'avoir trouvée.

 
Reshetov:

Poursuivant le thème : Où se situe la limite entre les modèles adaptés et les modèles réels ?

TSR est une abréviation de Trading Systems Recovery ...................

......................

Comme nous l'avons vu, bien que les deux perceptrons n'aient pas passé les tests avant en dehors de l'échantillon optimisé de données historiques, le filtre de leurs signaux conjoints a néanmoins donné des résultats positifs sur l'historique.

Yuri, je suis ravi. Même une légère jalousie (je me suis éloigné de cette idée il y a quelques années) n'entame pas le plaisir. Ça m'a rendu heureux. Je vais poursuivre l'expérience.

 
Reshetov:
... personne n'interdit de vérifier les OOS à l'avant et à l'arrière. ... Si... le TC n'est pas robuste et il est préférable de s'en débarrasser ... il y aura une différence dans les résultats des différents OOS, donc il n'y a aucune promesse d'une correspondance à 100%.
Yuri, c'est évident. Qui peut interdire de le vérifier ou de s'en débarrasser ? La question n'est pas là, la question est (à mon avis) que tous ces contrôles s'apparentent à... Pré-optimisation ! C'est-à-dire qu'en obtenant un résultat positif sur OOS, nous obtenons un TC optimisé figurativement (et réellement) sur un autre site (qui inclut maintenant OOS également). Quelle est la probabilité qu'il soit robuste plus loin dans le futur ou dans le passé ? Quels sont les critères objectifs pour évaluer la robustesse future, autres que "je pense que oui" ?