L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 253
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sotto "cose interessanti". ))
Algoritmo DTW
Immaginate di dover trovare alcune parti uguali del prezzo nella serie, ma poiché il prezzo non è stazionario, naturalmente a causa di questa proprietà la dimensione di queste parti sarà diversa, come affrontare questo caso?
Conosco due possibili soluzioni - interpolazione e algoritmo dwt.
про dwt - https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D1%88%D0%BA%D0%B0%D0%BB%D1%8B
Non mi preoccuperò di formule perché non le conosco, non mi preoccuperò nemmeno di parole, darò solo il codice commentato perché chiunque possa riprodurlo...
Quindi questo codice è stato usato per risolvere un problema:
Abbiamo un certo modello chiamiamolo "modello principale" di dimensione (lunghezza) 8 punti (il numero è un'ipotesi arbitraria)
Dovresti trovare dei modelli simili al modello principale ma la loro dimensione è di 5 e 13 punti (le cifre sono prese a caso)
il risultato è sulla foto
come può essere utilizzato ed è anche possibile è una questione aperta, mi sembra che sono riuscito ad usarlo con successo, ma è necessario ricordare che tutto questo è solo uno strumento per attuare la vostra idea, ma non l'idea stessa ...
Posterò il codice qui sotto
In termini semplici, l'intero punto del codice è questo:
X <- rnorm(10)
Y <- rnorm(20)
my.dtw <- dtw(X ,Y)
my.dtw$distance
dove
[1] 14.17198
è una misura di prossimità (distanza euclidea), più è piccola e maggiore è la vicinanza di X e Y
In termini semplici, l'intero punto del codice è questo:
X <- rnorm(10)
Y <- rnorm(20)
my.dtw <- dtw(X ,Y)
my.dtw$distance
dove
[1] 14.17198
è una misura di prossimità (distanza euclidea), più è piccola e maggiore è la vicinanza di X e Y
Nel caso: se la misura di prossimità = 1, allora la seconda riga è ottenuta dalla prima per distorsione?
Di solito quando si vuole cambiare la vicinanza tra due righe, la regola è che queste righe devono essere della stessa lunghezza.
dtw può misurare la vicinanza di due righe con dimensioni diverse, naturalmente distorcerà le righe per trovare il corretto valore di vicinanza
mytarmailS:
Abbiamo un modello, chiamiamolo "modello principale" dimensione (lunghezza) di 8 punti (la figura è a caso)
dovete trovare dei modelli simili al modello principale ma che abbiano 5 e 13 punti (le cifre sono prese dalla spazzatura)
Era nello stesso thread, pg. 130.
In breve, il classico algoritmo DTW confronta due segmenti di lunghezza fissa n e m rispettivamente, riempie la matrice [1..n, 1..m] e prende il risultato dalla cella [n, m]. Se volete che qualche segmento abbia una lunghezza casuale, per esempio n=8 e m assume valori da 5 a 13, riempite la matrice 8*13 e prendete il risultato minimo dalle celle [8,5] a [8,13] diviso per la lunghezza del percorso.
Si scopre che la wikipedia russa ha riscritto l'intero articolo durante questo periodo, e io non lo sapevo. Nell'articolo inglese nulla è cambiato e rimane lo pseudocodice, con il quale è più facile capire il principio dell'algoritmo.
Approccio #4) Ma non è riuscito ad entrare nel club dei "primi cento"(133) (0,68705), facendosi prendere a pugni in faccia dai nerd-coglioni))
Era nello stesso thread, pg. 130.
In breve, nel classico algoritmo DTW ....................
Oppure si può fare in un altro modo, semplicemente interpolare senza mezzi termini tutte le sezioni arbitrarie a una sola dimensione, e misurare semplicemente la correlazione o l'euclidea...
Ciao a tutti!
Chiedo aiuto e propongo di unire gli sforzi per creare un algoritmo chiamato "approssimazione polarmonica" - questo è un'approssimazione di funzione molto profonda e intelligente nel contesto della famiglia di algoritmi "MSUA" perché penso così, lo dirò più tardi con spiegazioni e possibilmente immagini
ссылка https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%83%D1%87%D1%91%D1%82%D0%B0_%D0%B0%D1%80%D0%B3%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2
estratto dal link
Вместо полинома Колмогорова-Габора можно использовать ряды Фурье. Их имеет смысл применять, если в исходных данных наблюдается периодичность (например, уровень воды в реках, температура воздуха, объём осадков). Полученная в таком случае модель будет полигармонической [1].
===================================================
Anche un link a uno dei tanti libri su questo meraviglioso metodo di quelli "MSUA".
Il libro ha idee molto forti ed è facile da leggere (finché non iniziano le formule) letturaMOLTO consigliatahttps://www.gmdh.net/articles/theory/bookNoiseIm.pdf
===================================================
anche alcuni commenti che confermano che l'approssimazione polarmonica è il modo giusto per pre-elaborare i dati per MO
estratto del commento
…. И вот с такой моделью мне удалось построить сеть, которая имела очень хорошие обобщающие свойства: новые данные почти все правильно распознавала........................
link alla fonte originalehttp://www.kamynin.ru/archives/4917
Sembra complicato e non c'è certezza del risultato, passo.
R ha un pacchetto GMDH ("MGUA" in inglese).
A proposito, in Numerai ho anche finalizzato il modello a logloss <0,69
0.68930
Ma da qualche parte è uscito un centinaio di persone con risultati 0.4-0.5, qualche inferno, ora per i premi è come la luna.