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

 
Aleksey Vyazmikin:

C'est correct, mais si nous supprimons les chaînes qui sont déjà abondantes dans les feuilles, il y en aura un peu moins (classe "0"), et la qualité ne devrait pas baisser, tandis que les valeurs relatives pour "1" deviendront plus grandes, et donc le modèle sera capable de prendre en compte ces variantes de feuilles dans la recherche qui n'étaient pas statistiquement correctes auparavant.

Une autre option consiste à supprimer les feuilles uniques, car elles peuvent nuire à l'apprentissage.

S'il y a beaucoup de lignes similaires, cela signifie que la situation se répète souvent. Si vous les supprimez, par exemple la classe 0, et que vous commencez à activer une feuille avec la classe 1 dans une transaction de rallye, alors si le modèle ne change pas, vous obtiendrez à nouveau beaucoup de 0 au lieu du 1 prédit. Et subir des pertes. En avez-vous besoin ?

Le MO ne peut prédire qu'en partant du principe que le modèle se maintiendra et agira comme il l'a fait dans le passé. Retirez les modèles de la formation et vous obtiendrez des résultats aléatoires

 
Aleksey Nikolayev:

Il peut être plus facile de l'expliquer par un exemple d'application.

point 1) - tester l'hypothèse de la persistance-antipersistance des fluctuations diurnes. Il s'agit d'une vérification de la propension du prix à se maintenir ou vice versa - à changer de direction en fonction du moment de la journée. Pour cela, vous devez connaître la corrélation.

Points 2) et 3) - vérification de l'hypothèse selon laquelle les renversements de prix "se produisent à l'heure" et qu'il est préférable de le faire au "bon" moment.

Point 3) - recherche des moments plats (tendance) de l'heure du jour par l'étude de la distribution empirique des longueurs de zigzag.

1) Corrélation entre quoi et quoi ?

 
Valeriy Yastremskiy:

Je comprends pour la journée, je suis d'accord. La question porte sur le jour de la semaine. Le temps dans la période de calcul de la moyenne, les jours, n'est pas initialement lié au jour de la semaine. Vous pouvez détecter la répétabilité intra-hebdomadaire, en tenant compte de l'heure de la journée, en la liant initialement au jour de la semaine. Vous avez un lien avec l'heure du jour du mois seulement.

Bien sûr, nous pourrions faire une analogie avec les minutes intrajournalières (par exemple) avec des périodes de cinq minutes dans la semaine, mais dans ce cas, nous devons séparer la périodicité purement hebdomadaire de la périodicité quotidienne héritée, ainsi que des effets des nouvelles et autres non-stationnarités. Quoi qu'il en soit, je ne suis pas sûr que la saisonnalité hebdomadaire soit aussi prononcée.

 
elibrarius:

1) Corrélation entre quoi et quoi ?

Incréments adjacents.

 
Aleksey Nikolayev:

On pourrait, bien sûr, faire une analogie avec les minutes intrajournalières (par exemple) avec des périodes intrahebdomadaires de cinq minutes, mais il faudrait alors séparer la périodicité purement hebdomadaire de la périodicité quotidienne héritée, ainsi que des effets des nouvelles et autres non-stationnarités. Quoi qu'il en soit, je ne suis pas certain que la saisonnalité hebdomadaire soit aussi prononcée.

Apparemment, je suis obtus. Je ne considère pas la moyenne hebdomadaire. Comment obtenir la réponse, un événement périodique tous les jours à 9 heures, ou tous les troisième, cinquième et dixième jours du mois, ou tous les mercredis à 9 heures ?

 
Valeriy Yastremskiy:

Apparemment, je suis obtus. Je ne considère pas le calcul de la moyenne hebdomadaire. Comment obtenir la réponse, un événement récurrent tous les jours à 9 heures, ou tous les troisième, cinquième et dixième jours du mois, ou tous les mercredis à 9 heures ?

Je pense vous avoir compris et avoir écrit dans l'esprit qu'un événement se répétant tous les jours à 9 heures serait aussi un événement se répétant tous les mercredis à 9 heures. Il serait assez difficile d'isoler les événements qui ont une période VRAIMENT HEBDOMADAIRE (mais pas diurne) en raison de la très forte périodicité diurne. Bien sûr, je peux me tromper, mais je n'ai pas encore remarqué de périodicité hebdomadaire claire, et il n'y a donc aucun moyen de la détecter dans mon code.

 
elibrarius:

S'il y a beaucoup de rangées similaires, la situation se répète souvent. Si vous les jetez, par exemple la classe 0, et commencez à activer une feuille avec la classe 1 dans un rallye, si les modèles ne changent pas, vous obtiendrez à nouveau beaucoup de 0 au lieu des 1 prévus. Et subir des pertes. En avez-vous besoin ?

Le MO ne peut prédire qu'en partant du principe que le modèle se maintiendra et agira comme il l'a fait dans le passé. En supprimant les modèles de la formation, vous obtiendrez des résultats aléatoires.

Il y a des stratégies, des stratégies de tendance qui gagnent bien à 40% de précision, mais les méthodes standard de MO ne permettent pas de les entraîner, rejetant la classe "1" à zéro si la précision est insuffisante, et j'ai juste besoin de tels fractionnements pour séparer et améliorer, donc je cherche de telles méthodes. Sinon, le rappel est très faible, à 1 unité.

 
Aleksey Nikolayev:

La recherche de modèles intrajournaliers est entravée par les fluctuations de la volatilité intrajournalière. Nous devons nous débarrasser d'eux d'une manière ou d'une autre. Méthodes possibles :

1) Réajustement des incréments pour tenir compte de la volatilité intrajournalière.

2) Passez à un nouveau moment intraday, dans lequel la variance croît uniformément.

3) Utilisation d'un motif en zigzag. Les valeurs des genoux ne dépendent pas des fluctuations de la volatilité. Les temps de pointe dépendent bien sûr de la volatilité (ils sont plus fréquents lorsque la volatilité est élevée), mais lorsqu'on passe à un temps uniforme, ces grappes disparaissent.

c'est en théorie... mais en pratique, peu importe comment vous tournez les verres... )

J'ai normalisé pour la volatilité des incréments, égalisé la dispersion. Je n'ai perdu que des informations.

 
Aleksey Vyazmikin:

Il y a des stratégies, des stratégies de tendance qui gagnent bien à 40% de précision, mais les méthodes standard de MO ne permettent pas de les entraîner, je laisse tomber la classe "1" à zéro si la précision n'est pas suffisante, et j'ai juste besoin de séparer et d'améliorer de tels fractionnements, donc je cherche de telles méthodes. Sinon, le rappel est très faible, à 1.

Si c'est une tendance, TP est grand, mais SL est petit. Par exemple 500 à 100. Dans le cas d'une erreur de 80 %, il y aura 20 % de transactions réussies et 80 % de transactions perdues. Le solde sera proche de zéro. Si vous négociez des feuilles avec une erreur de 70%, vous serez déjà en profit. Et si vous trouvez 50/50, le bénéfice sera énorme.


Comment ça, largué? 70% d'erreurs il semble seulement être déversé à la classe 0, vous pouvez déjà faire de l'argent sur les 30% restants de la classe 1.

 
Aleksey Vyazmikin:

Maxim, je soupçonne que le modèle pour C++ n'est pas correctement déchargé de CatBoost - pouvez-vous comparer avec le modèle pour python ?

J'ai une divergence entre les valeurs d'interprétation du modèle dans MQL5 où les valeurs sont prises dans le modèle CPP et les valeurs du modèle binaire. Le delta est d'environ 0,15 - ce qui est beaucoup.

Celui de python est un cpp dans un wrapper. Tout fonctionne bien.

Je veux dire que vous pouvez l'enregistrer à la fois au format python et au format cpp. Je l'enregistre en cpp et le convertit ensuite en mql avec des actions simples, car le modèle lui-même est constitué de plusieurs tableaux.