L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 3242

 
Renat Fatkhullin #:
Le système d'essai se compose de trois éléments :
1) notre modèle de robot unique
2) votre wrapper model.mq5 en code source pour fournir des données d'entrée/sortie au modèle ONNX, l'interprétation des résultats et la génération de transactions.
3) model.onnx - votre modèle neuronal

Une autre question sur MM, y aura-t-il des limitations ici ?

 
Maxim Dmitrievsky #:
Je suis frappé par le désir des offtoppers de s'affirmer aux dépens des échecs des autres, apparemment ils n'en ont pas assez à cause de leur existence inintéressante :)).
Il semble que cela leur permette de se sentir de grands praticiens du commerce, alors que des façons plus raisonnables de le faire ne sont pas disponibles pour des raisons évidentes).
 
Aleksey Vyazmikin #:

Autre question de MM, y aura-t-il des restrictions ici ?

J'ai aussi immédiatement pensé à la nécessité d'une martingale).
 
Ce que je comprends :
Le modèle de robot doit être inséré comme un fragment de code dans le fichier *.mq5.
Code dans le fichier *.mq5, tout en faisant une vérification de MQLInfoInteger() pour l'attribut
MQL_TESTER ?
 
Maxim Dmitrievsky #:

... Les réseaux neuronaux sont probablement plus difficiles, peut-être seulement en python.

Tout prétraitement, au niveau de l'exécution d'un modèle déjà entraîné, est généralement assez simple et peut être réécrit dans un autre NPS.

1. Il n'y a pas de problème avec les réseaux neuronaux en R. Il existe un portage de Torch(1.13.1), et il y a H2O. Les deux peuvent être convertis en ONNH avec un peu de gymnastique.

2. La complexité du prétraitement dépend des connaissances et des compétences du programmeur. Et "tout" ne peut pas être réécrit ou converti en ONH.

La question du concours est différente :

  • Sera-t-il possible d'utiliser ses propres prédicteurs ou tout le monde utilisera-t-il les prédicteurs communs proposés par les développeurs ?
  • Si les tests sont effectués sur l'histoire de 2023, sur quelle période les modèles doivent-ils être entraînés ? Il est possible de présenter un modèle entraîné sur la même période et d'obtenir de bons résultats lors du test. Comment le tester ?

" ONNX peut être comparé à un langage de programmation spécialisé dans les fonctions mathématiques. Il définit toutes les opérations nécessaires et le modèle d'apprentissage automatique doit implémenter la fonction de sortie avec ce langage". Si nous tenons compte du fait que ce "langage" est en constante expansion et change assez rapidement, alors les problèmes de débogage du code ONNX lui-même et de son implémentation dans le MCL seront une mer de temps perdu.

Sinon, l'idée est intéressante pour ceux qui ont beaucoup de temps libre.

Bonne chance

 
Je vous le dis, docker est la vraie solution.
N'importe quel code, n'importe quel langage, n'importe quelle bibliothèque.

Mais ce n'est pas le cas.
 
Vladimir Perervenko #:
  • Sera-t-il possible d'utiliser ses propres prédicteurs ou tout le monde utilisera-t-il des prédicteurs communs proposés par les développeurs ?
  • Si le test porte sur l'histoire de 2023, sur quelle période les modèles doivent-ils être entraînés ? Il est possible de présenter un modèle entraîné sur la même période et qui donnera de bons résultats lors du test. Comment allez-vous vérifier cela ?

Je crois qu'ils ont dit que vous pouviez utiliser votre propre fichier mqh avec votre propre code, de sorte que vous pouvez utiliser vos propres prédicteurs, si j'ai bien compris.

Mais encore une fois, si vous avez besoin d'indicateurs spéciaux, vous ne pouvez pas les attacher via la ressource.....
 

Vérification du template sur un MA standard, uniquement sur les ticks.

#include "EMA.mqh" // https://www.mql5.com/ru/code/download/22770/ema.mqh

input int inPeriod1 = 50;
input int inPeriod2 = 150;
input int inSensitivity = 100;

// https://www.mql5.com/ru/forum/86386/page3239#comment_49322318
double SignalONNX( const MqlTick &Tick )
{  
  static EMA EMA1(inPeriod1);
  static EMA EMA2(inPeriod2);
  static int Sensitivity = 0;
    
  const double Price = Tick.bid * Tick.ask;
  
  Sensitivity += Price ? 1 - ((EMA1.Get(Price) > EMA1.Get(Price)) << 1) : 0;  
  Sensitivity = MathMax(-inSensitivity, MathMin(Sensitivity, inSensitivity));

  return((Sensitivity == inSensitivity) ? 1 : -(Sensitivity == -inSensitivity));
} 



Modèle de travail.
 
fxsaber #:

Vérification du modèle sur un MA standard, uniquement sur les ticks.



Modèle qui fonctionne.

Maintenant sur des centimes réels, 10 livres, de préférence sans réinvestissement.

et vous allez perdre, à 100%.

parce que dans letrading réel, il y aura beaucoup plus de trades négatifs que de trades positifs.

et l'épopée du glorieux MO sera enfin terminée.

 
Renat Akhtyamov #:

et l'épopée avec l'illustre MoD sera enfin terminée.

Le conseiller n'a rien à voir avec le ministère de la défense. Il s'agit d'un test technique du modèle proposé.

Pourquoi s'adresser à la direction du ministère de la défense et signaler que le ministère de la défense ne fonctionne pas - je ne le sais pas.

Raison: