CopyTicks」のテスト - ページ 47

 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.10
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 

誰も見向きもせず、分解してしまう。取引所のティックとMT5の比較分析が行われない限り、話は空振りに終わる。なぜなら、ブローカーに曲がったデータを流しているのは、常に取引所であると言えるからです。

 
fxsaber #:

誰も見向きもしないし、分解もしない。取引所のティックとMT5の比較分析が行われない限り、話は空振りに終わる。なぜなら、ブローカーに曲がったデータを流しているのは、常に証券取引所であると言えるからです。

よく見れば、外部に確認する必要のないものもあるのですが......。


 
prostotrader #:

よく見れば、外部からの検証を必要としないものもあるのですが......。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

CopyTicks」のテスト

fxsaber, 2021.11.12 08:05

ブローカーに曲がったデータを流しているのは取引所だと、いつでも言える。

 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.12
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 

ステップバイステップのビデオを見る

https://www.mql5.com/ru/forum/381623/page2#comment_25878109

Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.12
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 
Котировки Срочного рынка в МТ5
Котировки Срочного рынка в МТ5
  • 2021.11.17
  • www.mql5.com
Уважаемые модераторы! Перенесите, пожалуйста сообщения из темы "Клиринг по существу????* не относящиеся к клирингу, сюда...
 

ある時点の実際のティックを調べるのは難しいという理解でいいのでしょうか?


例えば、どの刻みが実際の2022.04.29 23:00:00.000だったかを調べる必要があります。スクリーンショットでは、それが強調表示されています。


唯一、思い浮かんだ解決策。

bool GetActualTick( const string Symb, const ulong time, MqlTick &Tick, int Amount = 20 )
{
  MqlTick Ticks[];
  
  int Offset = 500;
  int Res = 0;
  
  while (!::IsStopped() && (Res <= 0) && (bool)Amount--)
    Res = ::CopyTicksRange(Symb, Ticks, COPY_TICKS_INFO, time - (Offset <<= 1), time);
    
  if (Res > 0)
    Tick = Ticks[Res - 1];
  
  return(Res > 0);
}

void OnStart()
{
  MqlTick Tick[1];
  
  if (GetActualTick(_Symbol, D'2022.04.29 23:00' * 1000, Tick[0]))
    ArrayPrint(Tick);
}
 
fxsaber #:

ある時点の実際のティックを調べるのは難しいという理解でいいのでしょうか?


例えば、どの刻みが実際の2022.04.29 23:00:00.000だったかを調べる必要があります。スクリーンショットでは、それが強調表示されています。


唯一、思い浮かんだ解決策。

美しく仕上がっている。そんな風にできるなんて、今まで思いもよらなかった。

このように、1回だけなら意味は同じなので、訂正します。

 bool GetActualTick( const string Symb, const ulong time, MqlTick &Tick, int Sec = 30 )
{
  MqlTick Ticks[];
   
  int Res = ::CopyTicksRange(Symb, Ticks, COPY_TICKS_INFO, time - Sec*1000, time);
    
  if (Res > 0)
    Tick = Ticks[Res - 1];
  
  return(Res > 0);
}

void OnStart()
{
  MqlTick Tick[1];
  
  if (GetActualTick(_Symbol, D'2022.04.29 18:00' * 1000, Tick[0]))
    ArrayPrint(Tick);
}  

このようなタスクに直面したのは、2つ以上のtick配列を同期させるときと、ここだけ でした。しかし、いずれの場合も、一度にアンロードされたレディアレイを使用して同期が行われる。あそこもここも、インデックスを1つずつずらして同期させました。このツールで(未来の)一番近い時間を見て、インデックスを++していくのです。

 
Andrey Miguzov #:

意味は同じ、ただ1回だけ、というように訂正します。

残念ながら、隣り合う刻みの間隔を推測することは不可能です。時には30分以上かかることもあります。

理由: