正确的TCs的一些迹象 - 页 15

 
Nikolai Semko:

如果你的TS不需要所有的历史来工作,我有个坏消息给你。

但是,历史的影响会根据其深度而成倍消退。这倒是真的。

这就是为什么我用对数来表示历史。

也就是说,如果我使用20年的历史,那么最接近的每周故事是整个故事的80%。


ZS 这是一个关于重力的好比喻。你知道吗,我们星球的轨迹在很大程度上受到邻近星系--仙女座星云--的引力影响,光照到仙女座星云的时间为250万年。

数字、数字、数字。

地球以大约30公里/秒的速度围绕太阳旋转。

太阳以大约230公里/秒的速度围绕我们的银河系中心旋转。

我们的银河系和仙女座星云星系正以~300公里/秒的速度向对方疾驰。

ZS 续集...这还不是全部

我们的星系及其邻近的星系正以大约500公里/秒的速度向M83星系移动。

总的来说,我们的星系以大约1000公里/秒的速度在宇宙中移动。

你吸毒吗?

 

关于交易、自动交易系统和测试交易策略的论坛

良好的TS的一些迹象

fxsaber, 2020.03.01 21:56

在评论中,有人建议考虑时间倒转后TS的行为--刻度线倒转(从未来到过去),就像倒带被激活一样。

在那里你还可以读到,在哪些符号上,反转可能不影响TS的结果,而对哪些符号来说,它是市场模式的一个严重变化。

幸运的是,从理论上讲,外汇符号不应该用这种时间反转来破坏市场模式。我发现在我的一个TS上测试这个很有意思。


首先,MQL5中的tick系列反转代码。

int TimeDayOfWeek( const datetime Date )
{
  MqlDateTime mTime;
  
  TimeToStruct(Date, mTime);
  
  return(mTime.day_of_week);
}

#define  HOUR 3600
#define  DAY (24 * HOUR)
#define  WEEK 7

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
datetime GetTimeDayOfWeek( const datetime TimeSource, const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
  const datetime Res = TimeSource / DAY * DAY;
  
  return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

void ReverseTick( MqlTick &Tick, const long &Offset )
{
  Tick.time_msc = Offset - Tick.time_msc;
  Tick.time = (datetime)(Tick.time_msc / 1000);
  
  return;
}

// Инверсирование времени.
void ReverseTicks( MqlTick &Ticks[] )
{
  const int Size = ArraySize(Ticks);
  
  if (Size)
  {
    const long Offset = (long)(GetTimeDayOfWeek(Ticks[0].time, 0, MONDAY) + GetTimeDayOfWeek(Ticks[Size - 1].time, -1, SATURDAY)) * 1000;

    for (int i = 0; i < Size; i++)
      ReverseTick(Ticks[i], Offset);

    ArrayReverse(Ticks);
  }

  return;  
}


在这个函数的基础上,附有创建倒置符号的脚本。我们将与之合作。结果如下。


优化者的最佳传球直选符号。


在时间倒置的符号上也是如此传递。


没有结论。


这一结果只具有理论意义。这很难解释。

有一个代码符号,如果需要,每个人都可以在倒置的符号上尝试他的TS。

 
Алексей Тарабанов:

你吸毒吗?

据我所见,这是论坛上最能吃的人之一。而且你要小心翼翼地整理你所说的内容。

 
Uladzimir Izerski:

据我所见,这是论坛上最前卫的人之一。而且你对你所说的话很谨慎。

我问的是他,不是你)。

 
fxsaber:

到目前为止,这一结果只具有理论意义。这很难解释。

符号代码就在那里,所以如果愿意的话,任何人都可以在一个倒置的符号上尝试他们的TS。

对称性已经显示出其所有的光辉。应该是这样。而我想早点证明一些东西。(我不耐烦了))

 
Алексей Тарабанов:

我问的是他,不是你)。

不要问空洞和粗俗的问题。你这样做只会让自己失去信誉。

 
Uladzimir Izerski:

不要问空洞和粗俗的问题。你这样做只会让自己失去信誉。

我没有被坑。

 
Алексей Тарабанов:

我没有遇到麻烦。

谨慎的说法更正确。

 
Nikolai Semko:

...

一个适当的TS需要一个适当的数据结构、存储和访问基础。

目前的版本对于创建一个适当的TS来说是非常麻烦和笨拙的。

我不得不自己开发,结果在我看来,它更加方便、紧凑和灵活。

我可以简要地解释一下。

...

之后,你也可以删除tick阵列,并从30-40Mb的数据库中形成一个对数压缩的数据库,最多1Mb。 在这个数据库中,有一个从当前时刻开始的整个符号历史的完整画面。

...

我对数据库的 "对数压缩 "感兴趣。你能告诉我更多关于它的情况吗?

 
Vladimir:

对数据库的 "对数压缩 "感兴趣。你能说得更具体些吗?

这不完全正确。

正确的说法是 "由于数据表示的对数尺度而产生的压缩"。

这很简单。

下面是在这样的系统中,酒吧的无包装结构。

struct iRates {
   double    open;
   double    high;
   double    low;
   double    close;
   datetime  open_time;
   datetime  high_time;
   datetime  low_time;
   datetime  close_time;
   int       volume;
};

的时间段对数组中的每个条形都是不同的。

例如,有一个有限的数组,其中有28000这样的条形。

零条的时间周期将是例如1秒。
第一条杠的时间段将是int(1.00047) = 1秒。
第二条杠的时间周期将是int(1.00047^2) = 1秒。
第三条杠的时间周期将是int(1.00047^3) = 1秒。
...
1500巴的时间周期将是int(1.00047^1500) = 2秒。
...
3000巴的时间周期将是int(1.00047^3000) = 4秒。
...
10000条的时间段将是int(1.00047^10000) = 109秒 = 1分49秒
...
第12000条的时间段将是int(1.00047^12000) = 281秒 = 4分41秒
...
15000条的时间段将是int(1.00047^15000) = 1150秒 = 19.21分钟 ...
...
第17000条的时间段将是int(1.00047^17000)=2945秒=49分钟...。
...
第20000条的时间段将是int(1.00047^20000) = 12061秒 = 3.35小时 ...
...
第25000个酒吧的时间段将是int(1.00047^25000) = 126404秒 = 1.46天
...
第27999条的时间段将是int(1.00047^27999) = 517331秒=5.99天


条形图以打包形式存储,每个条形图的平均大小约为20字节

用于快速访问的索引阵列 约占总大小的5%。

即这种数据库的总大小将是28000*20*1.05=588 kB,这种阵列将涵盖40-50年的历史。