测试实时预测系统 - 页 74

 
neoclassic писал(а)>>
你可以看到预测.csv文件

没有了 :o( 但这个周末我还会有一些! :o)

 
我需要了解数据的结构。我记得我解决了一个类似的问题,我需要在图表上显示轨迹。但为了这个目的,我使用了一个指标。所以,有必要获得轨迹的长度来确定SetIndexShift。载有轨迹的文件有以下格式:有第一条轨迹的数值的行,空,第二条,空,等等。为了确定长度,每个读数都要检查是否有空行,当发现空行时,就把下一个缓冲区填进去,用移位来确定。我希望这有帮助。
 
grasn >> :

我确实写了一个脚本来生成一个可能实现的阵列(非常简单)。

以下是该脚本的工作原理。

如何从一个文本文件中自动确定概率样本的长度对我来说是个谜,到目前为止都是手动设置。如果你有什么想法,请告诉我。

我在ShowSeries中有一个函数来确定系列的大小--它是在全局中通过对文件的额外抢先读取来完成的,像这样。

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

如果你保存为二进制格式的文件,你可以通过明显的公式(长度-文件头-如果是)/大小-一条记录来快速计算。

不过我不明白使用一堆对象而不是指标有什么好处。我通常相反,如果我碰巧需要使用一些应用对象的代码,我会将其转换为缓冲区。唯一有必要的对象是标题,imho;-),而且只是因为methacquotes不屑于做文本指示。

还有一个重要的问题。我们将无法通过对象来建立TS。一个指标必须是一个信号的--通过iCustom给出可用的信号。

我认为这个方向的对象是不恰当的购买设计;-)。但当然,你最清楚。

 
neoclassic >> :
我需要了解数据的结构。我记得我解决了一个类似的问题,我需要在图表上显示轨迹。但我为此目的使用了指标。所以,有必要获得轨迹的长度来确定SetIndexShift。载有轨迹的文件有以下格式:有第一条轨迹的数值的行,空,第二条,空,等等。为了确定长度,每个读数都要检查是否有空行,当发现空行时,就把下一个缓冲区填进去,用移位来确定。我希望这有帮助。

有一个矩阵。我只是需要确定该矩阵的大小。

 
marketeer >> :

我在ShowSeries中有一个函数来确定系列的大小--通过额外的抢先读取文件来斜着做,像这样。

如果你保存到一个二进制文件,你可以通过明显的公式(长度-文件头-如果是的话)/大小-一条记录来快速计算。

不过我不明白使用一堆对象而不是指标有什么好处。我通常相反,如果我碰巧需要使用一些应用对象的代码,我会将其转换为缓冲区。唯一有必要的对象是标题,imho;-),而且只是因为methacquotes不屑于做文本指示。


我已经看到了这个功能,甚至从概念上理解了它的作用。尚待了解的是它是如何工作的。好吧,我周末休息一下,想一想,如果我不明白,我就求你解释一下。


还有一个重要的问题。我们将无法通过对象来建立TS。该指标应该是信号 - 通过iCustom提供信号。

我将以这种方式关闭对象作为错误的购买设计)。但你当然知道得更清楚。


这我知道,但现在我只需要它来实现预测的可视化。当然,会有一个水平的讨价还价,我会把数据输入到矩阵中 :o)

 
grasn >> :

有一个矩阵。我只是需要确定该矩阵的大小。

如果矩阵的每一行都是一个轨迹,那么我将这样做
   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 >> :
如果矩阵的每一行都是一个轨迹,那么我就会做

到目前为止,grasn生成的文件中,行是时间计数,轨迹是按列写的。保持这种布局会更方便,至少我认为;-)-我到处使用它。顺便说一句,Deductor也是如此。

 

我看了grasn在前一页发布的指标的代码,它是按行读取轨迹的。据我所知,问题是我需要知道从第0个小节的时间开始画的轨迹的长度。

我建议的方法是自动检测行末并移动滑块:-)。

关于什么更方便--我同意。

 
同事们,非常感谢你们的建议。我将试一试。
 

欧元兑美元,M15。

预测为300个计数(刚刚超过3天)。

主要轨迹。


两组最有可能的轨迹,大致 "相等"。


转入MT。



PS1: 以防万一--该系统正在测试中,现在用它来交易还为时过早。

PS2:我强烈怀疑图表会在第一次引用时 "转向 "历史。

附加的文件:
files.rar  44 kb