Y a-t-il un modèle dans ce chaos ? Essayons de le trouver ! Apprentissage automatique sur l'exemple d'un échantillon spécifique. - page 27

 
Aleksey Vyazmikin #:

Dans Excel, le décompte se fait à partir de un, et dans CatBoost et mql (et d'autres langages) à partir de zéro.

En d'autres termes, si j'ai bien compris, il suffit de prendre la dernière colonne, de faire un tableau cumulatif et d'obtenir un graphique. Disons que vous avez créé des prédicteurs basés sur ce graphique. Vous avez créé des prédicteurs basés sur ces données. Et la cible est la prochaine valeur de cette série, ou l'originale, c'est-à-dire le delta ? C'est-à-dire un modèle de régression qui donne le résultat conditionnellement (+x||-x), et si +x, nous entrons dans la transaction, n'est-ce pas ?

Je vais essayer de donner les données pour ces dernières colonnes, mais un peu plus tard - des modifications ont été apportées par moi au code depuis, puis elles ont été perdues et tout a été retravaillé à nouveau - cas difficile.

C'est exact ! Une cible est formée à partir du graphique. Ensuite, un seul dindon - un oscillateur - est "ajusté" à cette cible par la génétique. L'oscillateur est utilisé comme prédicteur et constitue également la cible (sa prochaine étape). Si la prochaine étape prédite de la cible est à la baisse, nous vendons, si elle est à la hausse, nous achetons. C'est tout l'algorithme simple. Il n'y a pas de takeout, car le profit n'est réalisé que sur le signal inverse. Le stop est calculé sur tous les trades négatifs du train d'échantillons grâce à l'approche statistique (moyenne de 5 sigma des trades négatifs), mais dans les images ci-dessus, le stop est mis à zéro pour resserrer.

 
RomFil #:

Je ne comprends toujours pas... :( Quels contrats, quelles marques ?

L'approche commerciale est la suivante :

1) Il y a un mouvement de prix (graphique de clôture, par exemple bitcoin). Un mouvement avec une période de 9 et un décalage de -2 est tracé sur le graphique pour plus de clarté.

2) Le trading avec l'approche décrite ci-dessus implique des signaux de vente ou d'achat d'un actif sans être lié au lot. À un moment donné, il n'y a qu'une seule transaction sur l'actif.

3) Si la transaction a généré un profit, le nombre de points +A est enregistré dans le total, sinon -A.

4) C'est ainsi que se forme le revenu en points.

Il est clair que si vous ajoutez le spread et la commission aux graphiques de profit mentionnés ci-dessus, les images ne seront pas si roses.

Tout se résout dix fois plus facilement. Le temps, c'est le temps.
 
RomFil #:

C'est bien cela ! Une cible est formée à partir du graphique. Ensuite, une seule dinde - un oscillateur - est "ajustée" à cette cible par le biais de la génétique. L'oscillateur est utilisé comme prédicteur et il est également la cible (sa prochaine étape). Si la prochaine étape prédite de la cible est à la baisse, nous vendons, si elle est à la hausse, nous achetons. C'est tout l'algorithme simple. Il n'y a pas de takeout, car le profit n'est réalisé que sur le signal inverse. Le stop est calculé sur tous les trades négatifs du train d'échantillons grâce à l'approche statistique (moyenne de 5 sigma des trades négatifs), mais dans les images ci-dessus, le stop est mis à zéro pour resserrer.

Le résultat financier a été compté sur une colonne, si j'ai bien compris.

Essayez d'en avoir deux - la dernière pour les ventes et l'avant-dernière pour les achats. Dans ce cas, la colonne Target_P doit devenir un filtre - si le graphique est à +1 et qu'il y a un signal d'achat, alors faites-le, sinon sautez l'entrée, de même pour la vente - -1.

Si le graphique est en plus, je l'admire.

La stratégie a déjà une direction, donc le résultat final pour l'entrée opposée n'a pas été calculé.

 
Aleksey Vyazmikin #:

Le résultat financier était compté sur une colonne, si j'ai bien compris.

Essayez deux colonnes - la dernière pour les ventes et l'avant-dernière pour les achats. Dans ce cas, la colonne Target_P doit devenir un filtre - si +1 et sigle d'achat, il faut l'effectuer, sinon il faut sauter l'entrée, de même pour les ventes - -1.

Si le graphique est en plus, je l'admirerai.

La stratégie a déjà une direction, donc le résultat fin pour l'entrée opposée n'a pas été calculé.

Désolé, mais je n'essaierai même pas. Qui dit que Target_P est le bon "filtre". Les deux dernières colonnes sont des signaux opposés - la valeur est la même, mais le signe est différent. C'est pourquoi le résultat ci-dessus est obtenu avec les données dont nous disposons.

Il est proposé de créer de nouveaux échantillons. Au moins le "chaos", ou tout autre instrument réel. Deux échantillons suffisent : (1) traine et (2) test. profondeur d'échantillonnage traine à partir de 10k valeurs. Mais qui a besoin de quoi ? :)

Salutations, RomFil.

 
RomFil #:

Désolé, mais je ne vais même pas essayer. Qui a dit que Target_P était le bon "filtre" ? Les deux dernières colonnes sont des signaux opposés - la valeur est la même, mais le signe est différent. C'est pourquoi le résultat ci-dessus a été obtenu sur la base des données disponibles.

Il est proposé de créer de nouveaux échantillons. Au moins le "chaos", ou tout autre instrument réel. Deux échantillons suffisent : (1) traine et (2) test. profondeur d'échantillonnage traine à partir de 10k valeurs. Mais qui a besoin de quoi ? :)

Salutations, RomFil.

Pouvez-vous ensuite présenter les résultats de la classification pour chaque échantillon séparément ?

Je veux juste comprendre comment le résultat obtenu peut être appliqué. Jusqu'à présent, mon idée est que je devrais entrer sans stop loss et peut-être que le résultat correspondra.

Et qu'est-ce que l'oscillateur - dites-moi ?

Je peux faire un autre échantillon, mais je ne comprends pas si j'ai besoin de tout l'échantillon ou seulement de la queue avec les données de marquage/calcul du résultat financier ?

 
Aleksey Vyazmikin #:

Pouvez-vous ensuite déposer les résultats de la classification pour chaque échantillon individuellement ?

Je veux juste comprendre comment le résultat obtenu peut être appliqué. Jusqu'à présent, l'idée est que nous devrions entrer sans stop loss et peut-être que le résultat correspondra.

Qu'est-ce que l'oscillateur - pouvez-vous me le dire ?

Je peux créer un autre échantillon, mais je ne comprends pas si j'ai besoin de tout l'échantillon ou seulement de la queue avec les données de markup/calcul du résultat financier ?

Un oscillateur peut être n'importe quoi ! La tâche principale de tout oscillateur est de convertir un graphique en un autre graphique, mais avec une amplitude connue à l'avance. J'en utilise un que j'ai moi-même écrit, mais ce n'est pas l'essentiel.

L'échantillon peut être quelconque ! Vous pouvez le faire sans aucun résultat.

Cependant, je viens d'essayer un générateur aléatoire normal de 0 à 1 et ... Je n'ai pas réussi à utiliser l'approche !!!

La raison a déjà été déterminée, il s'agit de données très bruitées. Cependant, il existe un moyen de sortir de cette situation ! Augmentez le délai d'échantillonnage ! Si l'échantillon n'est pas rentable, nous en faisons un M2 et le vérifions à nouveau. Si l'échantillon n'est pas rentable à nouveau, on fait M3, etc.


P.S. Bien que sur 10 vérifications, une seule ait échoué... :) Et ce résultat négatif a été obtenu après l'entraînement du comité du réseau neuronal sur un échantillon de plateau. Avec un tel résultat, on peut généralement dire que l'échantillon n'est pas du tout prévisible.

 
RomFil #:

Un oscillateur peut être n'importe quoi ! La tâche principale de tout oscillateur est de convertir un graphique en un autre graphique, mais avec une amplitude connue à l'avance. J'en utilise un que j'ai écrit moi-même, mais ce n'est pas l'essentiel.

L'échantillon peut être quelconque ! C'est possible sans résultat.

Cependant, je viens d'essayer le générateur aléatoire habituel de 0 à 1 et .... N'a pas réussi à utiliser l'approche !!!

La raison a déjà été déterminée, il s'agit de données très bruitées. Cependant, il existe un moyen de sortir de cette situation ! Augmentez le délai d'échantillonnage ! Si l'échantillon n'est pas rentable, faites-en M2 et vérifiez-le à nouveau. S'il n'est toujours pas rentable, faites-en M3, etc.


P.S. Bien que sur 10 vérifications, une seule ait échoué... :) Et ce résultat négatif a été obtenu après l'entraînement du comité du réseau neuronal sur un échantillon de plateau. Avec un tel résultat, on peut généralement dire que l'échantillon n'est pas du tout prévisible.

Enfin, n'importe lequel, bien sûr qu'il peut l'être, mais tout le monde ne sera pas efficace.

Je joins un fichier avec un balisage similaire à celui que vous avez déjà entraîné - vérifiez le modèle sur ce fichier.

Et je ne comprends pas très bien s'il faut s'attendre à ce que le fichier balisé prédise votre modèle ou non ?

Dossiers :
New_data.zip  21 kb
 
Aleksey Vyazmikin #:

Tout le monde peut l'être, bien sûr, mais tout le monde ne sera pas efficace.

Je joins un fichier avec un balisage similaire à celui que vous avez déjà étudié - vérifiez le modèle qu'il contient.

Et je ne comprends pas très bien s'il faut attendre le fichier balisé pour prédire votre modèle ou non ?

Je voudrais clarifier "fichier balisé par prévision" - s'agit-il de créer une nouvelle colonne et d'y spécifier à quelle étape il faut acheter, à quelle étape il faut vendre ?

 
RomFil #:

Je voudrais clarifier la notion de " fichier marqué par les prévisions" - s'agit-il de créer une nouvelle colonne et d'y spécifier l'étape d'achat et l'étape de vente ?

Oui, je pense que oui.

Vous ne pouvez envoyer que cette colonne - vous n'avez pas besoin du reste. Et la date - pour contrôler la synchronisation.
 
Aleksey Vyazmikin #:

Oui, c'est ce que je pense.

Vous ne pouvez envoyer que cette colonne - vous n'avez pas besoin du reste. Et la date - pour contrôler la synchronisation.

J'ai ajouté une colonne : "1" achat, "-1" vente. L'ouverture d'une transaction en cas de changement de signal vers le signal opposé. Je pense l'avoir fait correctement, mais je ne l'ai pas vérifié ... :) Paresse.

Sur le graphique sans spread ni commission, voici le résultat en points :

Résultats : PR=157488 +trades=778 -trades=18 (profit, nombre de trades positifs et négatifs).

Spread de 0.00050 :


Résultats: PR=117688 +trades=629 -trades=167

Spread à 0.00100 :

PR=77888 +trades=427 -trades=369

Spread à 200 :


PR=-1712 +trades=241 -trades=555

Dossiers :
Raison: