Test di sistemi di previsione in tempo reale - pagina 73

 

una piccola rifinitura sull'oro:


La traiettoria più probabile è quella più bassa (sottraendo 30 minuti dall'ora di pubblicazione sarà l'inizio della previsione). Ma la previsione non può essere particolarmente affidabile, perché richiede l'esecuzione di una procedura per identificare alcune caratteristiche della serie, che non ho ancora fatto (la procedura è una tantum, ma funziona per due giorni)

 
grasn >> :

PS: aggiungerei tutte le traiettorie, ma non riesco a trasferire la matrice bidimensionale dal testo :o). E come lo fai - non lo capisco, o meglio non lo capisco completamente. Ora ho il seguente codice (almeno lo capisco) che sospetto possa essere semplificato:

Per visualizzare più di una traiettoria ho aggiunto diverse istanze del mio indicatore nella finestra, perché non volevo preoccuparmi di visualizzare diversi buffer contemporaneamente, inoltre il loro numero è limitato a 8 in MT4. Non capisco davvero perché i dati vengono copiati avanti e indietro attraverso gli array dinamici nel tuo codice - non è più facile leggerli nel buffer dell'indicatore? A causa dell'assenza del concetto di array in MQL, per riempire più buffer bisogna scrivere un if complesso. ;-/ Qualcosa del genere:

  // ViewCount - количество используемых буферов (1 - 8)
  // F1 ... F8 - индексные буфера
  for(int p = ForecastBars; p >= 0; p--)
  {
    if( ViewCount > 0)
      F1[ p] = GetData(0, p);
    if( ViewCount > 1)
      F2[ p] = GetData(1, p);
    ...
    if( ViewCount > 7)
      F8[ p] = GetData(7, p);
  }
 
marketeer >> :

Ho semplicemente aggiunto diverse istanze del mio indicatore nella finestra per visualizzare diverse traiettorie, perché non volevo preoccuparmi di visualizzare diversi buffer contemporaneamente, soprattutto perché il loro numero è limitato a 8 in MT4. Non capisco davvero perché i dati vengono copiati avanti e indietro attraverso gli array dinamici nel tuo codice - non è più facile leggerli nel buffer dell'indicatore? A causa dell'assenza del concetto di array in MQL, dovete scrivere un complesso if. ;-/ Qualcosa del genere:


Voglio solo finalizzare la previsione in MQL, cioè calcolare livelli e zone. Solo come esperimento, lo sto ancora studiando.


Capisco l'idea dei buffer, grazie.

 
L'ORO è sceso (previsione sopra) solo un po' :o( Dovremo esaminare il criterio, forse non abbiamo davvero bisogno di scegliere il valore estremo :0( OK, lo esaminerò
 
mpeugep >> :

Difficile perché prendo i dati per lo script che disegna le curve di previsione ogni mattina in Deductor. Quindi - solo a mano =)

Ecco, una volta ho lottato con Expert Advisor for Deductor v.5.0 Lite :)

È anche possibile eseguirlo in vis.tester, ma è necessario scegliere il tempo di ritardo con più precisione

File:
 
Piboli >> :

Ecco, io lottavo con Expert for deductor v.5.0 Lite :)

Potete anche eseguirlo in vis.tester, ma dovrete mettere a punto il tempo di ritardo

Ooh, grazie, darò un'occhiata questo fine settimana =))

 

Buona giornata a tutti!

Oggi il quadro per lo strumento FDAXZ9 (H1) è il seguente:

Vendi all'apertura del mercato, l'obiettivo è 5714, lo stop in area è 5799.

Il trading viene fatto con 0,1 lotti.

Conto: 642842
Password di investimento: 1fisfwv
Server: BroCo-Demo

 

La posizione si è chiusa all'incasso:

 

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

#property copyright ""
#property link      ""

#property show_inputs

extern int timeShift = 3;
extern int N = 101;

int start()
{
   int i;
   int idCount;

   int Handle;
   
   double realisation;
   
   string FILE="FORECAST.csv";
   string COUNT;

   Handle=FileOpen( FILE, FILE_CSV| FILE_READ,",");

   if( Handle<0)
   {
      if(GetLastError()==4103)
      {
         Alert("Нет файла с именем ", FILE);
      }
      else
      {
         Alert("Ошибка при открытии файла ", FILE);
      }

      return;
   }

   Handle=FileOpen( FILE, FILE_CSV| FILE_READ,",");
   
   ObjectsDeleteAll();

   idCount=0;
   i=0;

   while(FileIsEnding( Handle)==false)
   {
      if( i>= N)
      {
         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;

      if(FileIsEnding( Handle)==true)
      {
         break;
      }
   }

   FileClose( Handle);

   return(0);
}

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.

 
Puoi visualizzare il file forecast.csv