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

 
Maxim Dmitrievsky:

Qui le barre sono reindicizzate per tempo morto, perché ci possono essere barre mancanti nella storia, in modo che non ci siano buchi. Poi si buttano via i valori vuoti, e poi si fa il detrend per MA.

Non ci sono omissioni nel commerciante, dal momento che vengono prese n ultime battute. Non dovrebbero essere invertiti.

Non credo che influirebbe molto. Non credo che farebbe molta differenza, ma potrei rifarlo e vedere.

Beh, non rifare, ma semplicemente stamparlo e confrontarlo con l'originale - se la direzione è corretta
 
Simile a quello che è stato scritto qui, che prevedere una barra sconosciuta passata è più facile che prevederne una futura
 
elibrarius:
Beh, non rifarlo, basta stamparlo e confrontarlo con l'originale - se la direzione non è sbagliata
...        ...      ...
3267  0.001091  1.18140
3268  0.000421  1.18077
3269  0.001455  1.18191
3270  0.001636  1.18225
3271  0.001829  1.18258

[3258 rows x 2 columns]
>>>
...        ...      ...
3225  0.001091  1.18140
3226  0.000421  1.18077
3227  0.001455  1.18191
3228  0.001636  1.18225
3229  0.001829  1.18258

[3230 rows x 2 columns]

va bene, l'ultimo valore corrisponde al prezzo dell'ultima barra nel terminale

 

Condividerò la mia esperienza - quando si utilizzano i valori di OHLC della barra corrente del TF superiore sulla barra dei minuti, assicurarsi della stabilità dei dati ottenuti, può benissimo essere critico quando si applica il modello, perché nessuno garantisce che il prezzo sia ottenuto senza prendere in considerazione l'accumulo di OHLC della barra dei minuti corrente.

Ho fatto una funzione che risolve questo problema, la sto condividendo

//+------------------------------------------------------------------+
//|Получение информации о ценах OHLC текущего бара                   |
//+------------------------------------------------------------------+
void Get_OHLC(string symbol,ENUM_TIMEFRAMES TF, double &arr_OHLC[])
{
   ArrayResize(arr_OHLC,4);
   arr_OHLC[0]=iOpen(symbol,TF,0);
   arr_OHLC[3]=iOpen(symbol,PERIOD_M1,0);
   if(TF!=PERIOD_M1)
   {
      double arr_High[];
      double arr_Low[];
      int copied=0;
      datetime s=iTime(symbol,TF,0);
      datetime f=iTime(symbol,PERIOD_M1,1);
      if(s<f)
      {
         copied=CopyHigh(symbol,PERIOD_M1,s,f,arr_High);
         if (copied>0)
         {
            arr_OHLC[1]=arr_High[ArrayMaximum(arr_High,0,WHOLE_ARRAY)];
         }
         else
         {
            Print("Ошибка копирования в массив arr_High");
         }
         copied=CopyLow(symbol,PERIOD_M1,s,f,arr_Low);
         if (copied>0)
         {
            arr_OHLC[2]=arr_Low[ArrayMinimum(arr_Low,0,WHOLE_ARRAY)];
         }
         else
         {
            Print("Ошибка копирования в массив arr_Low");
         }
      }
      else
      {
         if(s==f)//Если ТФ открылся на прошлом минутном баре
         {
            arr_OHLC[1]=iHigh(symbol,PERIOD_M1,1);
            arr_OHLC[2]=iLow(symbol,PERIOD_M1,1);
         }
         if(s>f)//Если ТФ открылся на текущем минутном баре
         {
            arr_OHLC[1]=iOpen(symbol,PERIOD_M1,0);
            arr_OHLC[2]=iOpen(symbol,PERIOD_M1,0);
         }
      }
   }
   else
   {
      arr_OHLC[0]=iOpen(symbol,PERIOD_M1,0);
      arr_OHLC[1]=iOpen(symbol,PERIOD_M1,0);
      arr_OHLC[2]=iOpen(symbol,PERIOD_M1,0);
      arr_OHLC[3]=iOpen(symbol,PERIOD_M1,0);
   }
}
 
Aleksey Vyazmikin:

Condividerò la mia esperienza - quando si utilizzano i valori di OHLC della barra corrente del TF superiore sulla barra dei minuti, assicurarsi della stabilità dei dati ottenuti, può benissimo essere critico quando si applica il modello, perché nessuno garantisce che il prezzo sia ottenuto senza prendere in considerazione l'accumulo di OHLC della barra dei minuti corrente.

Ho creato una funzione che risolve questo problema.

È un bug del terminale o cosa?
Ho pensato che con il primo segno di spunta, ad esempio alle 0:00 di lunedì, tutte le barre fino a quella settimanale appariranno automaticamente.

Se si tratta di un bug, si prega di inviare la richiesta con la descrizione e il codice a servicedek per il replay. Lo sistemeremo nella prossima release.

 
elibrarius:

È un bug del terminale o cosa?
Ho pensato che al primo tick, per esempio alle 0:00 di lunedì, tutte le barre fino a una settimana appariranno automaticamente.

Se si tratta di un bug - inviare una richiesta con descrizione e codice a servicedek per la riproduzione. Questo sarà risolto nella prossima release.

la barra non si aprirà fino a quando non verrà ricevuto il tick per lo strumento. Potrebbe non esserci nessuna zecca per molto tempo ;-)

 
elibrarius:

È un bug del terminale o cosa?
Ho pensato che al primo tick, ad esempio alle 0:00 di lunedì, tutte le barre fino a quella settimanale appariranno automaticamente.

Se si tratta di un bug - inviare una richiesta con descrizione e codice a servicedek per la riproduzione. Questo sarà risolto nella prossima release.

Questo è un bug, non una correzione.

La situazione può essere la seguente: arriva un nuovo tick di una nuova barra di minuti e usiamo un indicatore che non ha calcolato dal primo tick e salta il tick, o semplicemente entra nel calcolo di tutti i predittori, va a questo tempo e nel mezzo del codice chiede l'OHLC della barra attuale. L'OHLC cambia continuamente e può essere critico in caso di MO. Mi sono appena imbattuto in un calcolo diverso dei predittori a seconda del tipo di modellazione del tick, e in effetti quando si applica il modello al mercato.

 

per la terminologia, si prega di consigliare,

Il "predictor" è solo uno degli elementi (uno dei valori) di un vettore che viene sottoposto a training?
solo un mucchio di nomi sulla stessa cosa.

 

Scusa per la sfacciataggine!

Potete anche far passare questi dati attraverso le reti neurali, se avete tempo libero, naturalmente.


EURUSD_options - questo file contiene tutte le possibili opzioni che possono essere nella serie temporale.


EURUSD_data - la serie temporale stessa (l'ultimo valore ricevuto è alla fine del file).

Ci sono tre colonne, la prima è ciò che dovrebbe essere previsto, le altre due sono varianti di risposte.

Infatti, dobbiamo insegnare a NS a scegliere la variante giusta tra due. Se è possibile prevedere il prossimo valore delle colonne con varianti di risposte, va bene anche questo.

File:
 
Evgeny Dyuka:

per la terminologia,

Il "predictor" è solo uno degli elementi (uno dei valori) di un vettore che viene sottoposto a training?
solo un mucchio di nomi sulla stessa cosa.

Sì. I sinonimi sono fetch, input, predictor.