L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 1558

 
Vladimir Perervenko:

È un sacco di lavoro smontare il codice di qualcun altro. Guardiamo solo la funzione custom_tester() e solo la parte evidenziata.

Qual è l'errore nel calcolo del risultato? Si calcola il risultato ad ogni iterazione aggiungendo risultato += testpr[i] - lastpr al valore precedente. È la differenza tra la chiusura della barra attuale e quella precedente. Idealmente, sarebbe meglio usare Close - Open, ma non importa. L'importante è che avendo ricevuto un segnale alla chiusura della barra corrente, lo considererete come un segnale diff(Close) della stessa barra. Questo non è corretto. Il premio di segnale della barra attuale è diff(Close) della barra successiva. Il segnale deve essere spostato a destra di una barra per calcolare correttamente il risultato. p = model.predict_proba(X) a destra di una barra. Mostrerò altri calcoli su R perché è più facile per me.

Nella prima linea, convertire le previsioni in nominale (1,-1), spostare a destra di una barra, rimuovere NA, ottenere un vettore di segnali. La seconda linea riassume cumulativamente il prodotto del vettore segnali e del vettore diff(Close), avendolo precedentemente allineato al vettore segnali in lunghezza. Questo ci darà il risultato corretto.

Buona fortuna

Quando si apre una posizione il prezzo corrente viene salvato. Nel loop, se il segnale non cambia, continuiamo a muovere il prezzo in avanti, mantenendo il trade aperto.

Se il segnale cambia sulla prossima barra, invertire il commercio (lastdeal) e sottrarre dal prezzo corrente il prezzo di apertura del commercio, la differenza = profitto o perdita, aggiungere al totale accumulato del saldo

Per l'acquisto, sottrarre il prezzo di apertura dal prezzo corrente, per la vendita - viceversa. Non c'è nessun errore lì

Poiché il segnale è preso per la barra corrente, non dovrebbe essere spostato

1 - vendere, 0 - comprare. Leggenda. Il tester è molto semplice

Forse il codice può essere abbreviato, non mi sono preoccupato

 
Maxim Dmitrievsky:

quando si apre una negoziazione, viene mantenuto il prezzo corrente. Nel ciclo, se il segnale non è cambiato, continuiamo a muovere il prezzo in avanti, mantenendo il trade aperto.

Se il segnale cambia sulla prossima barra, invertire il commercio (lastdeal) e sottrarre dal prezzo corrente il prezzo di apertura del commercio, la differenza = profitto o perdita, aggiungere al totale accumulato del saldo

Per l'acquisto, sottrarre il prezzo di apertura dal prezzo corrente, per la vendita - viceversa. Non c'è nessun errore lì

Poiché il segnale è preso per la barra corrente, non dovrebbe essere spostato

1 - vendere, 0 - comprare. Leggenda. Il tester è molto semplice

Forse il codice può essere abbreviato, non mi sono preoccupato

Questo è un altro approccio. Con questa variante sembra essere davvero giusto. Ritiro la mia osservazione.

Buona fortuna

 

Per coloro che sono interessati ai rimpatriati - alcune informazioni nei cammini

https://smart-lab.ru/blog/569692.php#comments

Тестирование модели на машинном обучении. Часть четвертая.
Тестирование модели на машинном обучении. Часть четвертая.
  • smart-lab.ru
Тестирование модели на машинном обучении. Часть четвертая.
 
Maxim Dmitrievsky:

Per coloro che sono interessati ai rimpatriati - alcune informazioni nei cammini

https://smart-lab.ru/blog/569692.php#comments

il solo nome fa paura :-)

 
Amico, sono bloccato come al solito. Chi avrebbe mai pensato che rendere unico un array in Java sarebbe stata una tale rottura di scatole. :-(
 
Grigoriy Chaunin:

È stata pubblicata una nuova versione della libreria per collegare Python a MT5. Richiamando il link https://github.com/RandomKori/Py36MT5 Ma ci sono problemi. In Visual Studio il progetto di prova funziona come dovrebbe, ma in MT ci sono alcuni problemi poco chiari. Ora la libreria funziona bene con la directory dove si trova lo script Python. Non so come fare il debug del link a MT. MT è protetto dal debugger. Forse qualcuno sa come fare il debug?

Salve,

Si prega di consigliare come collegare la biblioteca.

Lo script può essere situato in qualsiasi directory? Secondo il codice, è cablato a "C:\local\Scripts\"

Quando si mette la dll nella cartella "MQL5\Libraries" la libreria è inclusa ma tutte le altre librerie, "python36.dll, kernell32.dll etc." non sono visibili.

Nel percorso percorso al python prescritto.

Come collegare pymt.dll correttamente?

 
 
 
Maxim Dmitrievsky:

C'è un chiaro sovrallenamento in apparenza. Si può vedere che si comportano oggi come ieri, quindi i 200 anni di esperienza che si suppone stiano guadagnando nel processo di formazione sono lontani da ciò che è necessario :-(

 
Mihail Marchukajtes:

C'è un chiaro sovrallenamento in apparenza. Potresti vedere che si comportano oggi nello stesso modo in cui si comportavano ieri, quindi i 200 anni di esperienza che presumibilmente guadagnano nel processo di formazione non sono ciò di cui hai bisogno - ahimè :-(

Sì, intelligenza zero