Test di sistemi di previsione in tempo reale - pagina 74

 
neoclassic писал(а) >>
Puoi vedere il file forecast.csv

Non più :o( Ma ne avrò di più questo fine settimana! :o)

 
Ho bisogno di capire la struttura dei dati. Ricordo di aver risolto un problema simile, avevo bisogno di visualizzare le traiettorie su un grafico. Ma ho usato un indicatore per questo scopo. Quindi, era necessario ottenere la lunghezza delle traiettorie per determinare SetIndexShift. Il file con le traiettorie aveva il seguente formato: linee con i valori della 1° traiettoria, vuoto, 2°, vuoto, ecc. Per determinare la lunghezza, ogni lettura è stata controllata per una linea vuota, e quando è stata trovata, il buffer successivo è stato riempito e determinato con uno spostamento. Spero che sia stato d'aiuto.
 
grasn >> :

Ho scritto uno script per generare un array di probabili realizzazioni (è molto semplice):

Ecco come funziona lo script:

Come determinare automaticamente la lunghezza del campione di probabilità da un file di testo è un mistero per me, finora è impostato manualmente. Se avete qualche idea, per favore consigliatemi.

Ho una funzione in ShowSeries per determinare la dimensione della serie - è fatto in modo globale da una lettura preventiva extra del file, come questa:

int GetFileCount()
{
  int count = 0;
  int columns = 0;
  int handle = FileOpen( FileName, FILE_CSV| FILE_READ, Delimiter);
  if( handle > 0)
  {
    while(!FileIsEnding( handle))
    {
      string x = FileReadString( handle);
      if(StringLen(StringTrimLeft(StringTrimRight( x))) == 0) break;
      if( count == 0)
      {
        columns++;
      }
      if(FileIsLineEnding( handle))
      {
        count++;
      }
    }
    FileClose( handle);
  }
  Comment("Column ", ColumnNo, "(", columns, "),", " Lines:", count);
  return( count);
}

Se salvate in un file in formato binario, potete calcolare rapidamente con la formula ovvia (lunghezza-file-intestazione-se-è)/dimensione-un-registro.

Non capisco però il vantaggio di usare un mucchio di oggetti invece di indicatori. Io di solito, al contrario, se mi capita di dover utilizzare del codice in cui si applicano degli oggetti, lo converto in buffer. Gli unici oggetti che sono necessari sono le didascalie, imho ;-), e solo perché methacquotes non si è preoccupato di fare indicatori di testo.

E un altro punto importante. Non saremo in grado di costruire la ST per oggetti. Un indicatore deve essere un segnale - dare segnali disponibili attraverso iCustom.

Scarterei questa direzione con gli oggetti come un improprio buy-design ;-). Ma naturalmente lei lo sa meglio di me.

 
neoclassic >> :
Ho bisogno di capire la struttura dei dati. Ricordo di aver risolto un problema simile, avevo bisogno di visualizzare le traiettorie su un grafico. Ma ho usato l'indicatore per questo scopo. Quindi, era necessario ottenere la lunghezza delle traiettorie per determinare SetIndexShift. Il file con le traiettorie aveva il seguente formato: linee con i valori della 1° traiettoria, vuoto, 2°, vuoto, ecc. Per determinare la lunghezza, ogni lettura è stata controllata per una linea vuota, e quando è stata trovata, il buffer successivo è stato riempito e determinato con uno spostamento. Spero che sia stato d'aiuto.

C'è una matrice. Ho solo bisogno di determinare la dimensione di questa matrice.

 
marketeer >> :

Ho una funzione in ShowSeries per determinare la dimensione della serie - fatta in modo obliquo da una lettura preventiva extra del file, come questa:

Se salvate in un file binario, potete calcolare rapidamente con la formula ovvia (lunghezza-file-intestazione-se-è)/size-one-record.

Non capisco però il vantaggio di usare un mucchio di oggetti invece di indicatori. Io di solito, al contrario, se c'è bisogno di usare del codice in cui si applicano degli oggetti, lo converto in buffer. Gli unici oggetti necessari sono le didascalie, imho ;-), e solo perché methacquotes non si è preoccupata di fare indicatori di testo.


Ho visto la funzione e ho anche capito concettualmente cosa fa. Quello che resta da capire è come funziona. OK. Mi prenderò una pausa durante il fine settimana e ci penserò, e se non lo capirò, chiederò una spiegazione.


E un altro punto importante. Non saremo in grado di costruire la ST per oggetti. L'indicatore dovrebbe essere segnale - dare segnali disponibili attraverso iCustom.

Chiuderei in questo modo con gli oggetti, come se comprassi un design sbagliato). Ma ovviamente lei lo sa bene.


Questo lo so, ma per ora mi serve solo per la visualizzazione delle previsioni. Naturalmente ci sarà un livello da contrattare, e io inserirò i dati nelle matrici :o)

 
grasn >> :

c'è una matrice. Ho solo bisogno di determinare la dimensione di questa matrice.

Se ogni riga della matrice è una traiettoria, allora farei
   while(FileIsEnding( Handle)==false)
   {
      if(FileIsLineEnding(Handle)) //если строка закончилась, начинаем новую траекторию с 0
      {
         i=0;
      }

      COUNT=FileReadString( Handle);
      realisation=NormalizeDouble(StrToDouble( COUNT), 5);

      ObjectCreate(DoubleToStr( idCount, 10), OBJ_ARROW, 0,Time[0]- timeShift*15*60)+( i)*Period()*60+1, realisation);
      ObjectSet(DoubleToStr( idCount, 10), OBJPROP_ARROWCODE, 250);
      
      i= i+1;
      idCount= idCount+1;

   }
 
neoclassic >> :
Se ogni riga della matrice è una traiettoria, allora farei

Finora grasn ha generato file in cui le righe sono conteggi di tempo e le traiettorie sono scritte per colonne. Mantenere questo layout sarebbe più conveniente, almeno imho;-) -Lo uso ovunque. A proposito, anche Deductor lo fa.

 

Ho guardato il codice dell'indicatore che grasn ha postato nella pagina precedente, legge le traiettorie per righe. Il problema, per quanto ho capito, è che bisogna conoscere la lunghezza delle traiettorie per iniziare a disegnare dalla 0a barra nel tempo.

Il metodo da me suggerito rileva automaticamente la fine della linea e sposta il carrello :-).

Su ciò che è più conveniente - sono d'accordo.

 
Colleghi, grazie mille per i consigli. Farò un tentativo.
 

EURUSD, M15.

Previsione di 300 conteggi (poco più di 3 giorni).

Traiettorie principali:


Due gruppi di traiettorie più probabili, più o meno "uguali":


Trasferito a MT:



PS1: Solo nel caso - il sistema è in fase di test, è troppo presto per usarlo per il trading.

PS2: Ho il forte sospetto che il grafico si "sposterà" nella storia alla prima citazione.

File:
files.rar  44 kb
Motivazione: