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

 
Mihail Marchukajtes:

Ciao a tutti!!! Ragazzi, potete dirmi come ritardare il calcolo dell'indicatore? Si è aperta una nuova barra e l'indicatore deve essere calcolato dopo 30 secondi!!!!!

Ho bisogno di un ritardo nel calcolo dell'indicatore, deve aspettare 30 sec. o consigliarmi dove è scritto o un esempio, ho inciampato dappertutto, non riesco a trovare :-(

A cosa serve un ritardo?

 
Vitaly Muzichenko:

Perché questo ritardo?


I dati dello SME sono caricati con un ritardo di 30 secondi. E a volte l'indicatore viene calcolato e poi i dati vengono caricati, poi ricompilo l'indicatore e cambia la sua direzione, perché i dati vengono caricati completamente, in contrasto con i primi 5 secondi di vita della barra. Come regola, 30 secondi sono sufficienti. È possibile farlo con l'indicatore? Intendo il ritardo.....

 
Mihail Marchukajtes:

I dati dello SME sono caricati con un ritardo di 30 secondi. E a volte l'indicatore viene calcolato e poi i dati vengono caricati, poi ricompilo l'indicatore e cambia la sua direzione, perché i dati vengono caricati completamente, in contrasto con i primi 5 secondi di vita della barra. Come regola, 30 secondi sono sufficienti. È possibile farlo con l'indicatore? Intendo il ritardo.....

O si crea un evento timer una tantum,
o fare da soli: viene memorizzato un nuovo tempo di barra e ogni tick viene controllato se sono passati 30 secondi.
 
Aleksey Terentev:
O creare un evento timer una tantum,
o fare da soli: viene memorizzato un nuovo tempo di barra e ogni tick viene controllato se sono passati 30 secondi.

La funzione del timer non è molto chiara. Ho usato i consigli precedenti per fare la seguente funzione e ora la barra viene calcolata senza ritardi. (senza, non conta affatto fino a quando non si cambia il TF)

void OnTimer()
{
   int bars = Bars(_Symbol, _Period);
   if (bars <= 0) return;
   
   datetime T[];
   int res = CopyTime(_Symbol, _Period, 0, bars, T);
   if (res <= 0) return;
   
   // unused params
   double d[];
   long l[];
   int i[];
   OnCalculate(bars, bars - 1, T, d, d, d, d, l, l, i);
   ChartRedraw();
}

Qual è il modo migliore per organizzarlo, potresti suggerire????

 
Mihail Marchukajtes:

I dati dello SME sono caricati con un ritardo di 30 secondi. E a volte l'indicatore viene calcolato e poi i dati vengono caricati, poi ricompilo l'indicatore e cambia la sua direzione, perché i dati vengono caricati completamente, in contrasto con i primi 5 secondi di vita della barra. Come regola, 30 secondi sono sufficienti. È possibile farlo con l'indicatore? Intendo il ritardo.....

La prima cosa che è venuta:

 int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
 // здесь ваши расчёты 
 int limit=rates_total-prev_calculated;
  if(limit>0) { 
  ...
  }

 // задержим на 30 сек
 if(time[0] > TimeCurrent()-30)
   return(rates_total-1);

 // остальной код
   ...
 
Vitaly Muzichenko:

La prima cosa che è venuta fuori:


Interessante!!! Metti il tuo codice nel tacchino, vedrò cosa c'è. Ma pensavo che un tale ritardo dovesse essere descritto in onTimer, no?

Grazie comunque!!!
 
Mihail Marchukajtes:

Ciao a tutti!!! Ragazzi, potete dirmi come ritardare il calcolo dell'indicatore? Si è aperta una nuova barra e l'indicatore deve essere calcolato dopo 30 secondi!!!!!

Ho bisogno di un indicatore ritardato dopo 30 sec. o consigliarmi dove è scritto o un esempio, ho inciampato dappertutto, non riesco a trovarlo :-(

Perché 30 secondi? - Fatelo per 60 secondi - cioè non contate per la prima barra, ma per la seconda. Cioè avete una nuova barra 0, dovete ancora aspettare la prima per 30 secondi, ma la seconda è pronta.

Inoltre, è necessario ottimizzare e testare i prezzi di apertura.

 
Review of Econometric Models Applicable to Hedge Fund Returns Capturing Serial Correlation and Illiquidity by Ludovic Dubrana :: SSRN
  • papers.ssrn.com
Hedge Fund returns are often highly serially correlated mainly due to illiquidity exposures given that investments in such securities tend to be inactively traded and associated market prices are not always readily available. Following that, observed returns of such alternative investments tend to be smoother than “true” unobserved returns...
 
elibrario:

Perché 30 secondi? - Fallo per 60 secondi in una volta sola - cioè non contare dalla prima barra ma dalla seconda. Cioè la nuova barra 0 è uscita, devi ancora aspettare 30 secondi per la prima, ma la seconda è pronta.

Inoltre, probabilmente fai ottimizzazione e test sui prezzi di apertura.


Lo faccio con le barrette! Ma non funziona con la strategia principale, significa che dobbiamo spostare la barra di decisione all'indietro, il che è contrario alla strategia di base, quindi non è un'opzione....