Testing real-time forecasting systems - page 73

 

a small refinement on gold:


The most likely trajectory is the lower one (subtract 30 min from the publication time will be the start of the forecast). But the forecast cannot be particularly trusted, because it requires running a procedure to identify some characteristics of the series, which I have not done yet (the procedure is one-off, but it works for two days)

 
grasn >> :

PS: I would add all the trajectories, but I just can't transfer the 2-dimensional matrix from the text :o). And how you do it - I don't understand it, or rather I don't understand it completely. Now I have the following code (at least I understand it) which I suspect may be simplified:

In order to display more than one trajectory I added several instances of my own indicator in the window, because I didn't want to bother with displaying several buffers at once, moreover their number is limited to 8 in MT4. I don't really understand why the data is copied back and forth through dynamic arrays in your code - isn't it easier to read it into the indicator buffer? Because of the absence of the concept of array arrays in MQL, to fill several buffers you have to write a complex if. ;-/ Something like that:

  // 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 >> :

I simply added several instances of my indicator in the window to display several trajectories, because I didn't want to bother displaying several buffers at once, especially as their number is limited to 8 in MT4. I don't really understand why the data is copied back and forth through dynamic arrays in your code - isn't it easier to read it into the indicator buffer? Because of the absence of the concept of array arrays in MQL, to fill several buffers you have to write a complex if. ;-/ Something like this:


I just want to finalise the forecast in MQL, i.e. calculate levels and zones. Just as an experiment, I'm still studying it.


I understand the idea of buffers, thank you.

 
GOLD did fall (forecast above) Just a little bit :o( We will have to look into the criterion, maybe we really don't need to choose the extreme value :0( OK, I will look into it
 
mpeugep >> :

Difficult because I get the data for the script that draws the forecast curves every morning in Deductor. Therefore - only by hand =)

Here, I once struggled with Expert Advisor for Deductor v.5.0 Lite :)

It's even possible to run it in vis.tester, but it's necessary to choose delay time more accurately

Files:
 
Piboli >> :

Here, I used to struggle with Expert for deductor v.5.0 Lite :)

You can even run it in vis.tester, but you'll have to fine tune delay time

Ooh, thanks, I'll have a look this weekend =))

 

Good day to all!

Today the picture for the instrument FDAXZ9 (H1) is as follows:

Sell at market opening, target is 5714, stop in area is 5799.

Trading is done with 0.1 lot.

Account: 642842
Investment password: 1fisfwv
Server: BroCo-Demo

 

The position closed on the take:

 

I did write a script to generate an array of probable realisations (it's very simple):

#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);
}

Here's how the script works:

How to automatically determine the length of probability sample from a text file is a mystery to me, so far it's set manually. If you have any ideas, please advise me.

 
You can view the forecast.csv file
Reason: