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

 
Aleksey Nikolayev:


L'unica cosa - per combattere i gap e i deflussi delle quotazioni, è meglio prendere close[i]-open[i], invece diclose[i]-close[i-1], come incrementi.


Capisco, ma in che modo aiuta le lacune nelle citazioni? Non è meglio considerarle per l'H1?

"è meglio prendere close[i]-open[i] come incremento" - forse è meglio una variazione percentuale?
 
Aleksey Nikolayev:

Non è difficile, sono sicuro che puoi farlo se vuoi. L'unica cosa che dovreste fare è prendere close[i]-open[i] invece diclose[i]-close[i-1] come incrementi per controllare i gap e i deflussi delle quotazioni.

close[i-1] e open[i] differiscono di 1 tick. Che senso ha combattere con la prima zecca?

 
Evgeniy Chumakov:


Ho capito che cosa riguarda le lacune, ma come aiuta con le citazioni che cadono? Non è meglio calcolare per H1?

Quando una barra = un incremento, non è un problema se alcune barre vengono perse. Se l'incremento è contato da due barre, ci saranno molti picchi.

Evgeniy Chumakov:


"Se vogliamo usare close[i]-open[i] come incrementi" - forse sarebbe meglio usare la variazione percentuale?

Sì, così va meglio. Si possono anche prendere incrementi di logaritmo.

 
elibrarius:

close[i-1] e open[i] differiscono di 1 tick. Che senso ha combattere con 1 zecca?

Praticamente garantito per eliminare le lacune e i salti nella storia.

 
Aleksey Nikolayev:

Quasi garantito per eliminare le lacune e i vuoti della storia.

Un gap può verificarsi in qualsiasi altro tick entro un minuto. Le barre mancanti devono essere riempite dall'ultimo prezzo noto dell'ultima barra nota.
 
elibrarius:
Un gap può verificarsi in qualsiasi altro tick entro un minuto. Le barre mancanti devono essere riempite dall'ultimo prezzo noto dell'ultima barra nota.

Le lacune distribuite uniformemente tra le barre non sono molto spaventose. Quelli sgradevoli sono quelli che sono ammassati insieme in un certo momento, che di solito sono spazi vuoti tra le barre.

Le barre "mancanti" sono un concetto ambiguo, può trattarsi di una vacanza, una breve sessione, ecc. o semplicemente di barre mancanti per ragioni del tutto poco chiare. Ho deciso che è più facile calcolare gli incrementi per una sola barra che mostrare Sherlock Holmes alle prese con diverse barre di un minuto del periodo di dieci anni.

 
elibrarius:

Faccio così:

1) Creo un array di indici di stringhe con una lunghezza pari al numero di stringhe, lo riempio con valori da 0 a N stringhe

2) Mescolo questo array

Dove RandomInteger() è una qualsiasi variante del metodo

3) poi prendo tutti i valori di questi indici in un ciclo e dall'array principale la stringa richiesta, risulta essere pseudo-casuale dopo aver mescolato gli indici

Ho provato questo algoritmo con la funzione casuale, che è stata data prima. Si scopre che c'è uno spostamento verso la prima metà dell'array numerico, se si prendono i primi n valori dell'array risultante e poi si filtra l'array in ordine. E i gruppi in fila sono osservati, il che non è nemmeno buono, ma meglio di niente.

 
Aleksey Vyazmikin:

Ho provato questo algoritmo con la funzione casuale che è stata data prima. Si scopre che c'è un offset alla prima metà della serie di numeri, se si prendono i primi n valori dall'array risultante e poi si filtra l'array in ordine. E i gruppi in fila sono osservati, il che non è neanche il massimo, ma meglio di niente.

Strano. Mi chiedo come si possa spiegare?
Ho un'altra versione commentata, ma non mi piaceva per ragioni logiche:

        for (int r = 0; r<rows; r++) {//перебор train участка
                //j = r + RandomInteger(rows - r);//номер строки с которой поменять  
                j = RandomInteger(rows);//номер строки с которой поменять - так равномернее. Формулой выше меняются последние с последними. А тут с любыми.
                c = idx[r]; idx[r] = idx[j]; idx[j] = c;
        }

Quale RandomInteger() usate? Io uso XOR.

 
elibrarius:

close[i-1] e open[i] differiscono di 1 tick. Che senso ha combattere con 1 zecca?

Ti sbagli) non differiscono di 1 tick, questi valori saranno uguali. Solo nel caso di un divario ci sarà una differenza. Sì, close[i-1] non funzionerà)) per una nuova barra
 
Alexander Alekseyevich:
Ti sbagli) non differiscono di 1 tick, questi valori saranno uguali.

https://www.mql5.com/ru/docs/runtime/testing

Una nuova barra dei minuti si apre non quando inizia un nuovo minuto (il numero di secondi diventa 0), ma quando arriva un tick - un cambiamento di prezzo di almeno un punto.

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха, ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...