C'è uno schema nel caos? Proviamo a trovarlo! Apprendimento automatico sull'esempio di un campione specifico. - pagina 4

 
elibrarius #:

Riprogettato da Alglibow.
Ora ho eseguito più alberi nel calcolo. Entro domattina penso che calcolerà una nuova versione.

O forse ho sbagliato qualcosa, se il risultato è molto peggiore del tuo.

Forse l'hai rifatto correttamente, ma è necessario mettere a punto i parametri o l'algoritmo stesso non tira - la situazione non è semplice.

Perché non usi CatBoost - l'addestramento è più veloce, soprattutto se hai una scheda video di nVideo?

 
elibrarius #:
Ci sono 9.046 linee. Io ne ho 9000. Non farà molta differenza.

Hai una curva molto migliore. Proverò a modificare ancora un po' i parametri.

Non è migliorata. È più o meno la stessa. 0.01400

Con il catbustom stai andando meglio.

 
elibrarius #:

Non è migliorata. Circa lo stesso. 0.01400

Con il Catbustom va meglio.

Allora perché non lo usi?

Hai provato a dividere l'obiettivo in 3 categorie?

 
Aleksey Vyazmikin #:

Quindi dovremmo usarlo?

Avete provato a suddividere l'obiettivo in 3 categorie?

Proverò con 3 categorie uno di questi giorni..... Beh, sto solo allenando 2 modelli, non multiclasse.
 
elibrarius #:
Proverò 3 categorie l'altro giorno..... Beh, sto solo allenando 2 modelli, non multiclasse.

Fai una prova.

Puoi lasciare il tuo campione, cercherò di addestrarlo anch'io.

 

Proverò con l'addestramento e i rinvii. Come si fa a rifare il targeting?
Le ultime 4 colonne


al target 1 scambiare
direzione 1, quindi se la classe 1 è prevista, otterremo un profitto su 1 colonna del risultato finanziario, e se la classe -1 è prevista, otterremo una perdita su 2 colonne del risultato finanziario.
direzione -1, quindi se la classe -1 è prevista, otterremo un profitto su 2 colonne del risultato finanziario, e se la classe 1 è prevista, otterremo una perdita su 1 colonna del risultato finanziario.

al target 0 non scambiare.

se viene prevista una direzione +1 o -1, otterremo una perdita modulo del risultato finanziario? Dalle spiegazioni precedenti appare questa variante. Ma il prezzo può salire o scendere e se viene scelta la direzione giusta, dovremmo ottenere un profitto.

Oppure sarà come nel caso 1
direzione 1, allora se la classe 1 è prevista, otterremo un profitto su 1 colonna del risultato finanziario, e se la classe -1 è prevista, otterremo una perdita su 2 colonne del risultato finanziario.
direzione -1, allora se la classe -1 è prevista, otterremo un profitto su 2 colonne del risultato finanziario, e se la classe 1 è prevista, otterremo una perdita su 1 colonna del risultato finanziario.

Quale variante è corretta?
Oppure potete mostrare come si forma il target direttamente nel codice tramite if(){}else{}?

 
elibrarius #:

Proverò con l'allenamento e i rinvii. Come rifare il targeting?
Ultime 4 colonne


se il target 1 fa trading
direzione 1, allora se la classe 1 è prevista, otterremo un profitto su 1 colonna del risultato finanziario, e se la classe -1 è prevista, otterremo una perdita su 2 colonne del risultato finanziario.
direzione -1, allora se la classe -1 è prevista, otterremo un profitto su 2 colonne del risultato finanziario, e se la classe 1 è prevista, otterremo una perdita su 1 colonna del risultato finanziario.

se il target 0 non fa trading.

Se si prevede una direzione +1 o -1, si otterrà una perdita modulo del risultato finanziario? Dalle spiegazioni precedenti appare questa variante. Ma il prezzo può salire o scendere e se viene scelta la direzione giusta, dovremmo ottenere un profitto.


Oppure sarà come nel caso 1
direzione 1, allora se la classe 1 è prevista, otterremo un profitto su 1 colonna del risultato finanziario, e se la classe -1 è prevista, otterremo una perdita su 2 colonne del risultato finanziario.
direzione -1, allora se la classe -1 è prevista, otterremo un profitto su 2 colonne del risultato finanziario, e se la classe 1 è prevista, otterremo una perdita su 1 colonna del risultato finanziario.

Quale variante è corretta?
Oppure potete mostrare come si forma il target direttamente nel codice tramite if(){}else{}?

Gli zeri rimarranno tali, ma gli "1" possono essere convertiti in "-1" e "1", a seconda della direzione. Di conseguenza, se classifichiamo "1" o "-1" al target "0", otteniamo un modulo di perdita, altrimenti otteniamo un modulo di guadagno da una delle ultime due colonne.

Il mio risultato finanziario è calcolato in base alle posizioni/transazioni chiuse - e se c'è stata una perdita, allora viene impostato uno zero, quindi l'approccio non permette di stimare cosa sarebbe successo se ci fosse stata un'entrata opposta - molto spesso una perdita, secondo la strategia, perché uno stop loss sarebbe stato impostato subito dopo l'estremo dell'ultima barra.

Ho quindi diviso il campione in due in base alla direzione di entrata, aumentando così il numero di modelli che hanno superato la soglia dei 3000 pip.

Devo aggiungere che se l'obiettivo è "1", ma il segnale è stato classificato come "-1", allora apparentemente non ci sarà alcuna perdita, perché in realtà un tale segnale non passerebbe.
 
Aleksey Vyazmikin #:

Gli zeri rimarranno tali e gli "1" potranno essere riclassificati come "-1" e "1", a seconda della direzione. Di conseguenza, se al target "0" classifichiamo "1" o "-1", otteniamo una perdita di modulo, altrimenti otteniamo un guadagno di modulo da una delle ultime due colonne.

Il mio risultato finanziario è calcolato in base alle posizioni/transazioni chiuse - e se c'è stata una perdita, allora viene impostato uno zero, quindi l'approccio non consente di stimare cosa sarebbe successo se ci fosse stata un'entrata opposta - molto spesso una perdita, secondo la strategia, perché uno stop loss sarebbe stato impostato subito dopo l'estremo dell'ultima barra.

Ho quindi diviso il campione in due in base alla direzione di entrata, aumentando così il numero di modelli che hanno superato la soglia dei 3000 pip.

Devo aggiungere che se l'obiettivo è "1", ma è stato classificato come "-1", allora apparentemente non ci sarà alcuna perdita, perché in realtà un tale segnale non passerebbe.
È tutto molto confuso. Penso che mi fermerò sui test effettuati.
 
elibrarius #:
È tutto un po' confuso. Penso che mi fermerò con i test che ho fatto.

No, non è confuso, è una conversione logica. Se siete confusi, posso fare un obiettivo separato con la ripartizione e postarlo qui.

 
Aleksey Vyazmikin #:

No, non c'è confusione, è una conversione logica. Se siete confusi, posso creare un obiettivo separato con la ripartizione e postarlo qui.

È necessario un risultato finanziario accurato dagli errori. Senza di essi, la linea di bilancio è inaffidabile.
Ris. fin. se scegliamo 0 (non si può includere, sarà sempre 0), se 1, se -1. Sempre, anche se segnate come classe 0 non fate trading. Il modello sarà sbagliato ed è necessario conoscere il prezzo dell'errore.
Motivazione: