![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
La domanda è fuori tema e piuttosto filosofica. Ci si rende conto che l'approccio alla classificazione attraverso la divisione degli attributi in segmenti implica una dipendenza discontinua degli output dagli input? Cioè, può verificarsi una situazione in cui uno scambio si aprirà ad un insieme di attributi e non si aprirà ad un altro molto, molto vicino al primo (sono vicini al confine, ma su lati opposti di esso). Non sto dicendo che è un approccio sbagliato. Voglio solo chiedere - c'è una sorta di intuizione del trader dietro o è una scelta arbitraria?
Sì, è possibile, in teoria. Tuttavia, il metodo del binning implica la costruzione di un insieme di alberi consecutivi su predittori diversi, il che significa che il confine giusto può essere selezionato per un altro tratto (se c'è una giustificazione statistica), quindi l'"errore" è livellato.
Come possibile alternativa, si può proporre la classificazione per mezzo della regressione logistica o il metodo del vicino più vicino. Lì, l'output può essere una stima della probabilità di appartenere a una classe, che può, per esempio, essere usata per determinare il volume della transazione. Non insisto su nessun algoritmo particolare, sono solo interessato all'aspetto del trader nella scelta di uno specifico algoritmo MO.
CatBoost dà anche una stima della probabilità di appartenenza alla classe, ma secondo la mia osservazione è esattamente l'opposto - maggiore fiducia nelle osservazioni rare che non si verificano abbastanza spesso e questo porta alla loro sovrastima, e su un campione indipendente questo porterà o a una classificazione errata o a un'occorrenza ancora più rara di un indice elevato.
Perché uso CatBoost per il trading:
1. algoritmo veloce.
2. Un algoritmo moderno e in evoluzione con molti progressi in MO out of the box.
3. Un modo autonomo per applicare il modello in MT5 senza Python e R.
La questione qui è come identificare "molte sezioni di valore e quelle tossiche" - cioè bisogna identificare la loro intercambiabilità, o farlo in due passaggi, come ho suggerito prima. O hai un'altra opzione?
So di un modo per farlo solo in due passaggi. Prima facciamo una mappa, poi scegliamo un percorso. Subito, senza una mappa si può anche andare, ma è molto più grande rischi, soprattutto quando burroni e paludi sulla strada, e una bussola, stelle e sole sono assenti).
La questione è il costo dell'azione e la disponibilità dei dati iniziali. A quanto pare bisogna fissare l'obiettivo da qui. Le condizioni possono essere diverse. Conosciamo il numero di punti e di segmenti. Non conosciamo il numero di segmenti, ma conosciamo il numero di punti, non conosciamo il numero di punti e segmenti, sappiamo solo che sono molti. Sappiamo che il numero di segmenti da un punto è al massimo N.
In generale questa parte deve essere formalizzata prima.
Sì, questo è possibile, in teoria. Tuttavia, il metodo del boosting implica la costruzione di un insieme di alberi consecutivi su predittori diversi, il che significa che il confine giusto può essere scelto per un'altra caratteristica (se c'è una giustificazione statistica), in modo che l'"errore" sia mitigato.
A volte si ha la sensazione che non si tratti affatto di un errore e la dipendenza della risposta dagli attributi (nei nostri problemi) può esserea volte nervosa.
CatBoost dà anche stime di probabilità di appartenenza alla classe, ma dalle mie osservazioni è esattamente l'opposto - maggiore fiducia in osservazioni rare che non si verificano abbastanza spesso e porta alla loro sovrastima, e su un campione indipendente porterà o a una classificazione sbagliata o a un'occorrenza ancora più rara di un indicatore elevato.
Quello che voglio dire è che un modello addestrato per ogni particolare set di caratteristiche, invece di rispondere "o 0 o 1", darà la risposta come un numero su una scala da 0 a 1. La regressione logistica, per esempio, funziona in questo modo. Anche nelle foreste casuali sembra funzionare così, ma non so se intendi questo o se intendi la metrica.
Dimitri, per favore aiutami, ho bisogno di cambiare l'array cut[] nell'algoritmo da int a float, ma il compilatore sta lanciando errori.
Conosco solo un metodo a due passaggi. Prima si fa una mappa, poi si sceglie un percorso. Subito, senza una mappa si può anche andare, ma è molto più rischioso, soprattutto quando burroni e paludi sulla strada, e nessuna bussola, stelle e sole).
L'oscurità totale attende gli intrepidi viandanti :)
La questione è il costo dell'azione e la disponibilità dei dati iniziali. A quanto pare dobbiamo fissare l'obiettivo da qui. Le condizioni possono essere diverse. Conosciamo il numero di punti e di segmenti. Non conosciamo il numero di segmenti, ma conosciamo il numero di punti, non conosciamo il numero di punti e segmenti, sappiamo solo che sono molti. Sappiamo che il numero di segmenti da un punto è al massimo N.
Quindi questa parte deve essere formalizzata prima.
Conosciamo il numero di punti e di segmenti di linea all'inizio della nostra ricerca, conosciamo anche il probabile numero massimo di segmenti di linea che possiamo inserire in uno a 40 (se il segmento contiene almeno il 5% di punti dello stesso obiettivo a due opzioni).
Il numero effettivo di segmenti può essere diverso per la ricerca - ora l'ho ottenuto da 1 a 263, ma ci possono essere duplicati.
A volte si ha la sensazione che non si tratti affatto di un errore e la dipendenza della risposta dalle caratteristiche (nei nostri problemi) può esserea volte saltellante.
Se stiamo parlando di colpire statisticamente una percentuale più alta di una delle classi, allora sì, le sezioni vicine possono avere una diversa predisposizione all'obiettivo. Voglio anche provare una trasformazione per facilitare l'apprendimento, l'essenza della trasformazione sarebbe di classificare i segmenti per il tipo di appartenenza all'obiettivo e il grado di probabilità, così il lato sinistro sarebbe segmenti per gli zeri, e il lato destro per le unità - al centro debolmente espressi.
Voglio dire che il modello addestrato per ogni particolare set di caratteristiche, invece di rispondere "o 0 o 1", darà la risposta come un numero su un segmento da 0 a 1. La regressione logistica, per esempio, funziona in questo modo. Anche nelle foreste casuali sembra funzionare così, ma non so se è questo che intendi o se stai parlando di metriche.
Questo è il modello CatBoost dopo l'allenamento sulla scala di probabilità dell'asse x - la curva blu è il numero di esempi, si può vedere che il loro numero sta diminuendo.
L'acqua è di classe 0 e la magnetta è di classe 1. La curva rossa è la perdita, quella azzurra è il guadagno.
e questo è lo stesso modello su un campione indipendente.
Pensi che la regressione logistica avrà una distribuzione diversa?
Lo stesso algoritmo di regressione logistica perde rispetto a CatBoost senza regolazione dei parametri.
Pensi che la regressione logistica avrà una distribuzione diversa?
Lo stesso algoritmo di regressione logistica, senza regolazione dei parametri, perde contro CatBoost.
No, non sto parlando di confrontare gli algoritmi nella pratica. Mi interessa una questione filosofica, come scegliere un algoritmo e addestrarlo correttamente, tenendo conto che le classi possono essere a) chiaramente separate l'una dall'altra, b) miste, c) una qualche miscela di punti a) e b). Per (a) avete bisogno di una classificazione chiara, per (b) avete bisogno di una classificazione confusa, e per (c) avete bisogno di mescolarle in qualche modo, ma non di agitarle.
Forse dovrei spostare la mia domanda nel thread del MoD.
No, non sto parlando di confrontare gli algoritmi nella pratica. Mi interessa una questione filosofica, come scegliere un algoritmo e addestrarlo correttamente considerando che le classi possono essere a) chiaramente separate l'una dall'altra, b) miste, c) un misto di (a) e (b). Per (a) hai bisogno di una classificazione chiara, per (b) hai bisogno di una classificazione confusa, e per (c) hai bisogno di mescolarle in qualche modo, ma non di agitarle.
Forse dovrei spostare la mia domanda nel thread del MoD.
Qualsiasi algoritmo può probabilmente far fronte a una chiara separazione. La domanda è quale algoritmo può assegnare meglio un sottospazio per evidenziare le aree di classi confuse.
Il problema con il partizionamento nel trading è la dubbia validità del partizionamento - da qui la difficoltà aggiunta nell'addestramento.
Non ho lavorato con molti metodi MO attualmente disponibili, quindi non posso valutare adeguatamente i loro punti di forza e di debolezza.
Può estrapolare lo spazio nel futuro sotto forma di cluster frattali.
Puoi mostrarmi come si fa?