Utilisation de l'intelligence artificielle chez MTS

 
Discuter de l'utilisation de l'intelligence artificielle dans les stratégies de trading en général et de mon Expert Advisor en particulier dont le code peut être téléchargéICI. Les résultats du backtest sont sur la capture d'écran ci-dessous.



L'optimisation du conseiller expert prend beaucoup de temps, et seulement avec l'utilisation d'algorithmes génétiques. Les paramètres d'entrée pour la sélection des coefficients de pondération : x1, x2, x3 et x4 sont limités à des valeurs comprises entre 0 et 200. Le paramètre sl est un stop loss en pips. Le capital et la gestion des risques ne sont pas utilisés.
 

Equivalent à un lissage de l'AC à l'aide d'un filtre cypher avec certaines caractéristiques. Les coefficients de lissage ne sont pas équilibrés, ce qui équivaut à une brique sur le bouton d'achat. La brique (+ par exemple stochastique) fonctionne très bien par elle-même, si seulement on sait quand l'acheter et quand la vendre. Aussi, en tenant compte du fait que le CA peut descendre 2 fois en 21 bars et de la présence de 4 paramètres optimisables......))))

Mais pour moi, cela permet de comprendre comment fonctionnent les réseaux neuronaux et pourquoi ils ne sont pas aussi efficaces qu'on le souhaiterait.

J'avais un hobby au début de la période créative - écrire des EAs pour travailler sur m1 sur la base des résultats de la semaine dernière (7200 barres, par opposition à 66000) - jusqu'à 300 pourcents par semaine ont été montrés dans le testeur......

Je me demande combien d'harmoniques il faut décomposer le prix en série de Fourier pour obtenir un graal après optimisation ?

 
Integer:

Equivalent à un lissage de l'AC à l'aide d'un filtre cypher avec certaines caractéristiques. Les coefficients de lissage ne sont pas équilibrés, ce qui équivaut à une brique sur le bouton d'achat. La brique (+ par exemple stochastique) fonctionne très bien par elle-même, si seulement on sait quand l'acheter et quand la vendre. Aussi, en tenant compte du fait que l'AC peut descendre 2 fois en 21 bars et de la présence de 4 paramètres optimisables......))))

Mais pour moi, il éclaire le fonctionnement des réseaux neuronaux et explique pourquoi ils ne sont pas aussi efficaces que nous le souhaiterions.

J'avais un hobby au début de la période créative - écrire des EAs pour travailler sur m1 sur la base des résultats de la semaine dernière (7200 barres, par opposition à 66000) - jusqu'à 300 pourcents par semaine ont été montrés dans le testeur......

Je me demande combien d'harmoniques il faut décomposer le prix en série de Fourier pour obtenir un graal après optimisation ?

Les réseaux neuronaux ne sont efficaces que lorsque les objets identifiés sont linéairement séparables, c'est-à-dire lorsqu'une classe d'objets peut être séparée d'une autre dans l'espace des caractéristiques par un plan décrit par une équation linéaire.

Comme pour l'oscillateur AC, le Conseiller Expert ne regarde pas seulement sa dernière valeur (les décisions basées sur les dernières valeurs sont le plus souvent utilisées en analyse technique), mais il étudie l'historique, c'est-à-dire quelles étaient les 3 autres valeurs de l'indicateur dans le passé. Il s'intéresse au comportement de l'oscillateur pour prendre des décisions. Ce même comportement se retrouve à l'entrée du réseau neuronal. Et à la sortie, on obtient Acheter ou Vendre.

Une autre nouveauté n'est pas l'entraînement standard du réseau neuronal, mais la sélection des poids sur des données historiques à l'aide de l'algorithme génétique. J'ai essayé les deux variantes. La génétique donne un résultat légèrement moins bon et plus lent. Mais il n'existe pas d'algorithme neuronique intégré et son apprentissage dans MT4. Mais il existe une optimisation basée sur la génétique. Et certains chercheurs dans ce domaine ont réalisé que l'apprentissage dynamique n'est pas très adéquat si la situation change radicalement. Si les haussiers l'emportent sur le marché, le système se réorientera vers la tendance haussière et oubliera la tendance baissière, et vice versa. Samuel A. L. 1959, "Some studies in machine learning using the game of checkers" (IBM J. Research and Devepopmend 3 : 210 - 229), a été le premier à rencontrer et à décrire cette monstruosité. Il a observé que si son programme avait un adversaire professionnel, il passait progressivement à un jeu de niveau professionnel. Mais si l'adversaire était un débutant, alors le programme "oubliait" le niveau précédent et commençait à passer au jeu primitif. Par conséquent, il n'est probablement pas judicieux d'enseigner dynamiquement le neurone sur ses propres erreurs et pertes. Il est plus facile de passer par l'histoire, afin de développer une stratégie de trading adéquate au marché.

Quant aux grails, il n'est pas nécessaire d'être très intelligent. Vous devez simplement remplir un certain nombre de conditions :

1. Le système doit ouvrir des positions soit sans aucun stoploss, soit avec des stoploss à une très grande distance, de sorte que la probabilité de leur fonctionnement soit proche de 0.
2. Un filtre puissant basé sur plusieurs indicateurs avec des conditions de déclenchement séparées par un ET logique (&&). Et de tirer un grand nombre de paramètres d'entrée de ces mêmes indicateurs dans les paramètres externes de MTS, de sorte que seules quelques positions ont été ouvertes pendant plusieurs années de données historiques sur les tests.
3. À tout cela, il faut ajouter la gestion des capitaux et des risques avec une fraction élevée.
 
prendre la valeur de 4 points, multiplier chaque valeur par un facteur, faire la somme - qu'est-ce qui n'est pas un lissage par un filtre ?
 
Je ne comprends pas comment vous pouvez discuter sérieusement d'une stratégie qui rapporte 44 affaires en 2 ans... Il y a trop peu de statistiques !
 
Mathemat:
Je ne comprends pas comment tu peux discuter sérieusement d'une stratégie qui rapporte 44 affaires en 2 ans... Trop peu de statistiques !
Il n'y a en réalité que 44 métiers, et beaucoup plus d'appels à la fonction Perceptron. Les économies d'argent et de temps sont appliquées ici. Disons que nous avons un poste à pourvoir. MTS lit le réseau neuronal. Si le réseau signale que le mouvement de la cotation doit être inversé ainsi que la position ouverte, MTS inversera la position. Si le perceptron nous informe que les cotations vont continuer à évoluer dans la même direction par rapport à l'ordre, MTS ne fait que resserrer le Stop Loss - trailing stop (ce qui revient à fermer une position en ayant fixé le profit et à en ouvrir une nouvelle mais avec une perte réduite). Et si nous ouvrons une nouvelle position, après avoir fermé la précédente, nous perdons sur le spread et la commission). Comme le système de trading ne fournit pas de takeprofits, il doit fonctionner sur les tendances et essayer de détecter les moments de retournement. Étant donné que les renversements sur un instrument de tendance ne représentent que 1 pc. par tendance (si la tendance elle-même n'est pas latérale, bien sûr), nous obtenons un nombre aussi faible de transactions. Plus précisément, il y a un peu plus de transactions que de revirements, car le système est parfois erroné.
 
Integer:
on prend la valeur de 4 points, on multiplie chaque valeur par un coefficient, on fait la somme - qu'est-ce qui n'est pas un lissage par un filtre ?
Si l'on prend les valeurs d'un certain nombre de points et que l'on multiplie chacune d'entre elles par la constante correspondante pour obtenir le résultat, cette action est appelée équation linéaire en mathématiques :

a1 * w1 + a2 * w2 + ... + an * wn = d

Et le lissage nécessite une récursion, c'est-à-dire qu'une certaine valeur connue est utilisée pour calculer la valeur lissée :

a1 = a1 * w1 + a2 * w2 + ... + an * wn


 
Reshetov писал (а):
Integer a écrit :
on prend la valeur de 4 points, on multiplie chaque valeur par un coefficient, on fait la somme - qu'est-ce qui n'est pas un lissage par un filtre ?
Si l'on prend les valeurs d'un certain nombre de points et que l'on multiplie chacune d'entre elles par la constante correspondante pour obtenir le résultat, cette action est appelée équation linéaire en mathématiques :

a1 * w1 + a2 * w2 + ... + an * wn = d

Et le lissage nécessite une récursion, c'est-à-dire qu'une certaine valeur connue est utilisée pour calculer la valeur lissée :

a1 = a1 * w1 + a2 * w2 + ... + an * wn





Avez-vous entendu parler des moyennes mobiles linéaires pondérées ?
 

Quoi qu'il en soit, il a droit à la vie. L'idée n'est peut-être pas nouvelle, mais elle est très intéressante, et intelligemment mise en œuvre, et... est capable de faire des bénéfices. J'ai effectué plusieurs tests en avant après "l'apprentissage" ; les résultats sont encourageants. Merci à l'auteur.

 
Figar0:

Quoi qu'il en soit, il a droit à la vie. L'idée n'est peut-être pas nouvelle, mais elle est très intéressante, et intelligemment mise en œuvre, et... est capable de faire des bénéfices. J'ai effectué plusieurs tests en avant après "l'apprentissage" ; les résultats sont encourageants. Merci à l'auteur.

Je l'ai posté afin de trouver au moins un commerçant qui essaierait de le vérifier dans la pratique au lieu de harceler l'auteur. D'autant plus que le code est fiable et fonctionnel, et non un graal développé à la hâte, qui montre accidentellement d'énormes bénéfices dans les tests. Le résultat sur le compte réel est presque, mais pas toujours, inférieur à l'extremum du test, mais il est stable.

Et se disputer avec des gundosos pour savoir si les neurones sont efficaces ou non, eh bien, c'est juste une perte de temps. Je l'expose selon le principe suivant : si vous le voulez, vous pouvez l'avoir, mais si vous ne voulez pas le voir. Mais avec l'espoir de trouver quelqu'un qui s'y connaisse et qui puisse améliorer le code ou suggérer une idée plus intéressante pour résoudre le problème.
 
Integer:
Reshetov:
Entier:
on prend la valeur de 4 points, on multiplie chaque valeur par un coefficient, on fait la somme - qu'est-ce qui n'est pas un lissage par un filtre ?
Si l'on prend les valeurs d'un certain nombre de points et que l'on multiplie chacune d'entre elles par la constante correspondante pour obtenir le résultat, cette action est appelée équation linéaire en mathématiques :

a1 * w1 + a2 * w2 + ... + an * wn = d

Et le lissage nécessite une récursion, c'est-à-dire qu'une certaine valeur connue est utilisée pour calculer la valeur lissée :

a1 = a1 * w1 + a2 * w2 + ... + an * wn





Avez-vous entendu parler des moyennes mobiles linéaires pondérées ?
Faites une pause. Dommage que le forum ne propose pas d'ignorer les interlocuteurs très gênants.