Quotazioni del mercato dei derivati in MT5 - pagina 10

 

Saluti Colleghi, riassumiamo l'uso di COPY_TICKS_ALL o COPY_TICKS_TRADES!!!

Come ho capito da quello che ho letto, per un calcolo delta più corretto è meglio usare i tick per mestiere piuttosto che tutti. Giusto?

Qual è la differenza di usare l'uno o l'altro. Qual è l'effetto sul risultato?

 
Mihail Marchukajtes #:

Saluti Colleghi, riassumiamo l'uso di COPY_TICKS_ALL o COPY_TICKS_TRADES!!!

Come ho capito da quello che ho letto, per un calcolo delta più corretto è meglio usare i tick per mestiere piuttosto che tutti. Giusto?

Qual è la differenza di usare l'uno o l'altro. Qual è l'effetto sul risultato?

Che delta intendi?

 
Mihail Marchukajtes #:

Saluti Colleghi, riassumiamo l'uso di COPY_TICKS_ALL o COPY_TICKS_TRADES!!!

Come ho capito da quello che ho letto, per un calcolo delta più corretto è meglio usare i tick per mestiere piuttosto che tutti. Giusto?

Qual è la differenza di usare l'uno o l'altro. Qual è l'effetto sul risultato?

Ho visto un link agli screenshot di un membro del forum nel suo profilo.

O ha avuto un errore nei suoi calcoli o la formula dei prezzi è sbagliata

Non fare pubblicità, basta guardare le foto come appare

ma mi sembra che il prezzo dovrebbe colpire Last con precisione millimetrica, cioè senza delta, se è calcolato correttamente

gli stessi agenti di cambio dicono che il prezzo viene calcolato ogni secondo, almeno su MOEX

Non credo nell'utilità di calcoli così grandi, ho voluto controllare una volta, mi hanno fatto rotolare tutta la tazza, che dire di Last...., sono rimasto deluso e sono scappato dallo scambio
 
prostotrader #:

A quale delta si riferisce?

Delta, la differenza tra il numero di acquirenti e venditori di una particolare barra.

Ecco un po' di codice dove avviene la richiesta di tick e il calcolo di delta e volume

   Linterest[0]=GlobalVariableGet("LLINTER");

   double delta=0;  
   double vola=0;
   int num= CopyTicksRange(Name_instrFS,tick_array,COPY_TICKS_TRADE,StartDate*1000,Start1Date*1000);
   //Print (num);
   if (num>0){
   long sumVolBuy=0;
   long sumVolSell=0;
       for (int q=0;q<num && !IsStopped();q++)
          { 
if(( tick_array[q].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY && (tick_array[q].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) // Если тик обоих направлений
      Print(__FUNCTION__,": ОШИБКА! Тик '""' неизвестного направления!");
   else if(( tick_array[q].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY) // Если тик на покупку
   sumVolBuy+=(long)tick_array[q].volume;
   else if(( tick_array[q].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) // Если тик на продажу
   sumVolSell+=(long)tick_array[q].volume;
           
       if(( tick_array[q].flags&TICK_FLAG_VOLUME)==TICK_FLAG_VOLUME)   vola+=tick_array[q].volume_real; 
          }
    delta=double(sumVolBuy-sumVolSell); 
    if (Ldelta!=delta) Ldelta=delta; else delta=0;
  }
    for (int i=0;i<5 && !IsStopped();i++)
    { 
      h=FileOpen("OpenI\\"+Name_instr+"_OI.csv",FILE_WRITE|FILE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON|FILE_SHARE_READ,";");
       if(h!=INVALID_HANDLE)                                                         
       {  
         
         FileSeek(h,0,SEEK_END);
         FileWrite(h,RecDate,DoubleToString(Linterest[0],0),DoubleToString(delta,0),DoubleToString(vola,0)); 
         FileClose(h); 
         Sleep(100);
         FlagOFupdate[0]= true;
        break; 
       }
    } 

Originariamente era COPY_TICKS_ALL in CopyRang, ma l'ho cambiato ieri in COPY_TICKS_TRADE. Quanto sarebbe più corretto in relazione al problema espresso prima?

 
Mihail Marchukajtes #:

Delta, la differenza tra il numero di acquirenti e venditori di una particolare barra.

Ecco un po' di codice dove avviene la richiesta di tick e il calcolo del delta e del volume

Inizialmente era COPY_TICKS_ALL in CopyRang, ma ieri l'ho cambiato in COPY_TICKS_TRADE. Quanto è più corretto rispetto al problema che ho espresso prima?

Nella tua situazione dovresti prendere solo COPY_TICKS_TRADE perché solo i trade hanno il parametro del volume del contratto.

Per utilizzare i volumi dei contratti ASK e BID, è necessario utilizzare un bicchiere.

for (int i=0;i<5 && !IsStopped();i++)
    { 
      h=FileOpen("OpenI\\"+Name_instr+"_OI.csv",FILE_WRITE|FILE_READ|FILE_ANSI|FILE_CSV|FILE_COMMON|FILE_SHARE_READ,";");
       if(h!=INVALID_HANDLE)                                                         
       {  
         
         FileSeek(h,0,SEEK_END);
         FileWrite(h,RecDate,DoubleToString(Linterest[0],0),DoubleToString(delta,0),DoubleToString(vola,0)); 
         FileClose(h); 
         Sleep(100);
         FlagOFupdate[0]= true;
        break; 
       }
    } 

Questo è un codice piuttosto triste.

Ad ogni iterazione si apre e si chiude il file.

 
prostotrader #:

Nella tua situazione si dovrebbe prendere solo COPY_TICKS_TRADE, perché solo i trade hanno il parametro del volume del contratto.

Per utilizzare i volumi dei contratti ASK e BID, è necessario utilizzare un bicchiere.

Questo è un codice piuttosto triste.

Ad ogni iterazione si apre e si chiude il file.

Se il primo tentativo ha successo, allora no, ma i dati sono scritti all'inizio del minuto per la barra precedente è abbastanza buono per registrare OI, delta e volume!!!
 
Mihail Marchukajtes #:
Se il primo tentativo ha successo, allora no, ma i dati sono scritti all'inizio del minuto per la barra precedente è abbastanza buono per registrare OI, delta e volume!!!

Puoi mostrarmi uno screenshot?

 
Renat Akhtyamov #:

Posso vedere uno screenshot?

Sì, per favore....

Vedete, tutto scrive bene, ma sapere la differenza tra registrare tutti i tick o solo il trading non è possibile. Non voglio disturbare. Dopo tutto, per NS gli offset e gli errori insignificanti non sono così importanti, la cosa principale che dopo l'addestramento i dati non sono stati cambiati perché durante l'inizializzazione dell'EA con NS deve calcolare correttamente la storia fino al momento attuale per il prossimo per iniziare il calcolo dai parametri attuali e corretti. Se l'inizializzazione non è stata corretta, il valore attuale dell'ultimo segnale conosciuto sarà diverso e il nuovo segnale inizierà a calcolare da altre posizioni, il che porterà a risultati imprevedibili. Perciò non importa come l'avete fatto, anche con errori. La cosa principale è non cambiarla dopo la formazione!!!!

 
Mihail Marchukajtes #:

Sì facilmente....

Vedete, tutto scrive bene, ma sapere la differenza di registrare tutti i tick o solo il trading non è possibile. Non voglio disturbare. Dopo tutto, per NS gli offset e gli errori insignificanti non sono così importanti, la cosa principale che dopo l'addestramento i dati non sono stati cambiati perché durante l'inizializzazione di EA con NS deve calcolare la storia correttamente al momento attuale per il prossimo per iniziare il calcolo dai parametri attuali e corretti. Se l'inizializzazione non è stata corretta, il valore attuale dell'ultimo segnale conosciuto sarà diverso e il nuovo segnale inizierà a calcolare da altre posizioni, il che porterà a risultati imprevedibili. Perciò non importa come l'avete fatto, anche con errori. La cosa principale è non cambiarla dopo la formazione!!!!

C'è un limite al numero di linee in Excel. Se la macchina lancia, tenetelo a mente. È meglio usare sql. Qual è il risultato del calcolo dallo screenshot, qual è il punto pratico?
 
Renat Akhtyamov #:
C'è un limite al numero di linee in Excel. Se la macchina lancia, tenetelo a mente. Migliore sql. Qual è il risultato del calcolo dallo screenshot, qual è il punto pratico?

Viene scritto un file CWS ordinario.

Raccolta della storia degli OI, delta e volume rispettivamente. I dati che 100% non saranno cambiati nella storia, per non parlare dell'assenza di storia OI come tale. Il codice per calcolare i parametri registrati che ho dato sopra ....

Motivazione: