Régression bayésienne - Est-ce que quelqu'un a fait un EA en utilisant cet algorithme ? - page 45
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
http://www.quantalgos.ru/?p=1898 peut-être que l'auteur de ce sujet en profitera...
Générateur de nombres pseudo-aléatoires. (PRNG)
En utilisant la méthode des coordonnées polaires suggérée ci-dessus, j'ai transformé МТ4 PRNG en PRNG avec une valeur aléatoire normalement distribuée.
Pour vérifier visuellement l'exactitude du code, j'ai projeté les résultats sur le graphique des prix.
Voici ce que montre le PRNG de base après 1000 appels. Les surfaces des rectangles de l'histogramme sont proportionnelles au nombre de nombres aléatoires générés qui se situent dans cette plage de l'échelle verticale.
Maintenant, en convertissant ces milliers d'occurrences à l'aide des formules de la méthode, on obtient les résultats suivants
une cloche parfaitement adéquate.
En utilisant la méthode des coordonnées polaires proposée ci-dessus, nous avons converti le PRNG MT4 en un PRNG avec une variable aléatoire normalement distribuée.
A une tentative d'application de la formule bayésienne. Encore une fois.
Tâche. En utilisant le théorème de Bayes, déterminez quelle valeur d'un tick qui n'est pas encore arrivé est la plus probable.
Étant donné. Série chronologique x,y.
y=ax+b Une ligne allant du dernier tick au futur.
P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y) ; (1) Formule de Bayes.
P(a,b|x,y)est la probabilité que les coefficients a et b correspondent aux coordonnées x et y d'un futur tic.
Nous devons trouver des valeurs a et b telles que cette probabilité (plus correctement appeléemesure de probabilité) soit maximale.
P(x,y|a,b) - prenons l'histogramme réel de la distribution des ticks par niveaux de prix comme fonction de vraisemblance. La fonction est définie par un tableau à deux dimensions (matrice) : fourchette de prix - probabilité, rapport en pourcentage des ticks tombant dans cette fourchette sur le nombre total de ticks.
P(b) - la distribution normale des incréments est prise comme une probabilité a priori b. On utilise un PRNG dont la valeur est normalement distribuée.
Le coefficient P(a) détermine la pente de la ligne droite et le signe de l'incrément prédit. Pour l'instant, je pense utiliser le code de régression linéaire que j'ai posté plus tôt. C'est-à-dire que la probabilité que le coefficient a y soit trouvé est égale à l'unité. Et dans (1) substituer la probabilité P(a) calculée en tenant compte de la différence de ce a et du calculé pour le y donné.
Peut-être avez-vous des idées sur le comportement du signe des incréments de chaque tick ?
Il n'est absolument pas nécessaire de mettre des tics dans la formule. N'importe qui peut générer ces ticks sur FORTS, ce qui est fait tous les jours.
Le problème ne réside pas dans les méthodes mathématiques, plutôt. Mais dans l'adéquation du choix des données auxquelles s'appliquer.
Pourquoi prendre des tics artificiels ? Vous pouvez apprendre à les prédire sans avoir recours aux mathématiques supérieures. Demandez à MQ comment.
Ainsi, la fonction de vraisemblance P(x,y|a,b) dans (1) est la distribution réelle des ticks réels (volumes de ticks). Il est extrêmement rare que ce soit normal. Et P(a) et P(b) sont des probabilités correctives, par lois prises comme probabilités a priori.
Que demander à MQ ? Le principe de la modélisation des tics dans le testeur de stratégie ? Oui, il doit y avoir un principe. En le sachant, nous pourrions peut-être créer des "grails" de testeurs. Mais pour l'instant, je ne peux pas le développer en mode test, car je n'ai ni historique de tics, ni pratique pour travailler avec lui. Tout sera en temps réel.
Vos propos m'intéressent :
"Je ne fais pas du tout de régression et de valeurs de prix (ou ses transformations) dans mes expériences, je prédis le signe, mais on pourrait dire que cela fait aussi partie de l'information sur le prix.
Mes erreurs ressemblent à ceci :
0 1
0 0,58 0,42
1 0,43 0,57
Ou à peu près comme à l'origine :
1 - correct, 0 - erreur : 1, 1, 1, 0, 0, 0, 1 , 1, 1, 1, 0, 1
Et la distribution de probabilité qui en résulte doit être aussi différente que possible de 0,5 / 0,5. Si nous obtenons l'inséparabilité mutuelle de ces résultats, nous arriverons à la distribution binomiale, et il existe de très nombreuses formules pour celle-ci et des tests statistiques" Fin de citation.
La distribution binomiale est-elle vraiment la règle dans le cas de la prédiction d'un signe ? Quelle est l'indépendance mutuelle des résultats ? Merci.
Ainsi, la fonction de vraisemblance P(x,y|a,b) dans (1) est la distribution réelle des ticks réels (volumes de ticks). C'est très rarement normal. Et P(a) et P(b) sont des probabilités correctives, par lois prises comme probabilités a priori.
Que demander à MQ ? Le principe de la modélisation des tics dans le testeur de stratégie ? Oui, il doit y avoir un principe. En le sachant, nous pourrions peut-être créer des "grails" de testeurs. Mais je ne peux pas le développer en mode test, car je n'ai ni l'historique des tics, ni l'habitude de travailler avec lui. Tout sera en temps réel.
Vos propos m'intéressent :
"Je ne fais pas du tout de régression et de valeurs de prix (ou ses transformations) dans mes expériences, je prédis le signe, mais on pourrait dire que cela fait aussi partie de l'information sur le prix.
Mes erreurs ressemblent à ceci :
0 1
0 0,58 0,42
1 0,43 0,57
Ou à peu près comme à l'origine :
1 - correct, 0 - erreur : 1, 1, 1, 0, 0, 0, 1 , 1, 1, 1, 0, 1
Et la distribution de probabilité qui en résulte doit être aussi différente que possible de 0,5 / 0,5. Si nous obtenons l'indépendance mutuelle de ces résultats, nous arrivons à la distribution binomiale, pour laquelle il existe de très nombreuses formules et tests statistiques" Fin de citation.
La distribution binomiale prévaut-elle vraiment dans le cas de la prédiction d'un signe ? Quelle est l'indépendance mutuelle des résultats ? Merci.
Utiliser les ticks pour la prédiction est dangereux à mon avis, et le modèle devrait être configuré pour chaque courtier séparément.
Si nous prenons les ticks du testeur de stratégie, il y aura une sérieuse différence avec les ticks réels, car les ticks dans le testeur sont générés par un modèle à partir des valeurs ohlc des barres minutes(https://www.mql5.com/en/articles/75). C'est pourquoi personne ne teste jamais les scalpeurs, mais les place immédiatement sur un compte réel et les optimise en cours de route.
À propos des ticks réels - ils peuvent varier considérablement d'un courtier à l'autre. Par exemple, dans ce fil de discussion https://www.mql5.com/en/forum/64228/page2#comment_1960403 (https://c.mql5.com/3/78/tbd.png ), vous trouverez en annexe une capture d'écran, qui montre la distribution des incréments de tick sur le même intervalle de temps chez deux courtiers différents. Je ne me souviens pas de la durée de l'intervalle, quelque chose entre un jour et une semaine. En général, ils coïncident, mais l'un d'eux a deux fois plus de ticks sans changement de prix. Si vous comparez plus de dix courtiers, je pense qu'il peut y avoir d'énormes différences, notamment pour les "chandeliers surprises".
Comme alternative, tous les ticks peuvent être retirés sans changement de prix. Ensuite, il y a une nuance : l'événement OnTick() peut être ignoré dans l'EA et un nouveau prix avec le précédent sera envoyé au terminal. C'est-à-dire, pas 1.23456 -> 1.23490 -> 1.23410, mais simplement 1.23456 -> 1.23410. Et au lieu de deux changements, votre modèle n'en aura qu'un.
Il s'avérera que l'intervalle de temps entre deux ticks voisins n'est pas défini et il y aura des lacunes dans les données, je pense que c'est mauvais.
Cela vaut quand même la peine d'essayer, vous devez utiliser MT4 et le programme Tickstory Lite (il existe une version gratuite) pour insérer des ticks réels dans le testeur (ils sont pris du courtier Dukascopy). Seul le terminal MT4 doit être utilisé avec un build inférieur à 950, sinon la version gratuite de tickstory fera des données de test avec un spread nul.
J'ai essayé quelque chose avec des ticks, comme trouver une moyenne et acheter et vendre si le prix actuel s'écarte fortement de la moyenne. S'il y avait un profit, le spread mangeait tout et je suis passé à des périodes plus longues.