リアルタイムで見るTiki - ページ 21

 
Aleksey Mavrin:

それが今日の写真です。もちろん、OnBookとTickが一致しているかどうかは確認せず、OnTickがOnBookより先なら、対応するOnBookは同じか少し後であることを期待して、次のものを取っています。

追加のチェックなしでコースの最大値は、インジケータ、またはオーバーシュートまたは本当にOnBookどこか遅いです。


でも、これは説明できる人?なぜ、多くのOnTicksが展開され、その間にOnBookが1つも入らないのか?


だって、あなた自身が「コードが曲がっているかもしれない、結果を見て みよう」と書いているんですもの。"

//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
{ 
  if((Mode != USE_BOOK) || (symbol != Symbol())) return;
  TimeArrayBook[curBook]=GetMicrosecondCount();
  curBook++
 }
void OnTick()
{
  if(Mode != USE_TICK) return;
  TimeArrayTick[curTick]=GetMicrosecondCount();
  curTick++
}

しかも、タイマーは全く必要ない...。

 
しかし、担当者はその答えに納得しているのだろうか。
 
prostotrader:

だって、あなた自身が「コードがクランクアップしている、曲がっているかもしれない、結果を見て みる」と書いているんですもの。"

しかも、タイマーは全く必要ない...。

原因はコードのミスによるものだとはわからなかったんですね。あるいは、質問を理解していなかったのか。タイマーを使わずにOn関数でマークを出力していますが、OnBookが存在しない間のカチカチ音がまだ続いています。
 
Aleksey Mavrin:
原因がコードのエラーによるものであることがわからなかったのですね。あるいは、質問を理解していなかったのか。また、タイマーを使わずにOn関数でマークを印刷したところ、やはりOnBookがない間にカチカチと音がする。

1.どのようにEAを稼動させたのかが全くわからない

2.Andreiと私自身によって書かれた2つのコードがあります。

互いの裏付けとなる。では、なぜわざわざあなたの ものを?

3.アンドレイと私はデリバティブ市場で、あなたは株式市場でEAを走らせたことがあります。

ファンドでターミナルに欠陥があるのかもしれない(株式市場でMT5も動かせなかった)。

個人的には、ファンドでは、Quickで取引しています。

 
prostotrader:

1.どのようにEAを稼動させたのかが全くわからない

2.Andreiと私自身によって書かれた2つのコードがあります。

互いの裏付けとなる。では、なぜわざわざあなたの ものを?

3.アンドレイと私はデリバティブ市場で、あなたは株式市場でEAを走らせたことがあります。

ファンドではターミナルに欠陥があるのかもしれない(株式市場でMT5を動かしたこともない)。

個人的には、ファンドでは、Quickを通して取引しています。

ああ、なるほど。明日、先物で試してみます。ファンドでmt5使ったら?デメリットはありますか?
Z.s. このコードは3行ですが、キューがハンドラによって遅くならないように、何のチェックもせずに msk の時間を固定し、タイマーで遅延時間を表示してカウントしています。私もあなたのコードを徹底的に理解したわけではありません。一般的な動作原理は、出力からすでに明らかです。
 
Aleksey Mavrin:
1.ああ、なるほどね。明日は先物で試してみます。ファンドでMT5を使わないのはなぜですか?デメリットはありますか?
S.s. このコードは3行です)キューがハンドラによって減速されないように、何のチェックもせずにmscの時間を修正し、タイマーでそれを表示して遅延をカウントしています。私もあなたのコードを徹底的に理解したわけではありません。一般的な動作原理は、出力からすでに明らかです。

1.証券会社の2台目以降の端末は有料で、株だけを取引する戦略(ストックポートフォリオ)は持っていない。

2.蓄積されたGetMicrosecondCount() を出力するのであれば

OnDeinit()でタイマーを使わずに実行すると、EAが終了したときにすべてがプリントアウトされます。

void OnDeinit(const int reason)
{
  if(Mode == USE_BOOK)
  {
    if(is_book == true) MarketBookRelease(Symbol());
  } 
  if(reason == REASON_REMOVE)
  {
   //Распечатываем данные
  } 
}
 
prostotrader:

2.蓄積されたGetMicrosecondCount() を出力するのであれば

OnDeinit()でタイマーを使わずに実行すると、EAが終了するときにすべてがプリントアウトされます。

その方法も可能です。私は当初、記録を残すためにその方法をとっていました。しかし、タイマーの関係で、OnTicksはスキップされる可能性がありますが、OnBooksは保証されているので、スキップされることはないはずです。もしかしたら、私は何かを考慮に入れていなかったかもしれません。すべてのティックがカップの変更、つまりOnBookを開始するわけではないのかもしれません。
 
Aleksey Mavrin:
はい、その方法でも可能です。元々、わかりやすくするためにそのようにしています。しかし、タイマーの関係でOnTicksはスキップされる可能性がありますが、OnBooksはスキップされないはずで、保証されています。 もしかしたら、私は何かを考慮に入れていなかったかもしれません。すべてのティックがガラスの変更、つまりOnBookを開始するわけではないのでしょうか?

また

カウンターを確認する必要があります。

void OnBookEvent(const string &symbol)
{ 
  if(curBook >= 65534) return;
  if((Mode != USE_BOOK) || (symbol != Symbol())) return;
  TimeArrayBook[curBook]=GetMicrosecondCount();
  curBook++
 }
void OnTick()
{
  if(curTick >= 65534) return;
  if(Mode != USE_TICK) return;
  TimeArrayTick[curTick]=GetMicrosecondCount();
  curTick++
}

A、配列を宣言する ときは、次のようにします。

ulong TimeArrayBook[
INT_MAX];

а инициализировать так
ArrayInitialize(TimeArrayBook, 0);

	          
 
prostotrader:

また

カウンターチェックをする必要があります。

A, 初期化時の数値は65536ではなく65535 であるべきです。

いや、必要ない。何も確認しないように、わざとそうしているのです。彼らはUshortです。配列のサイズが 過大ですが、何の影響もありません。
 
Aleksey Mavrin:

これを説明できる人はいるのだろうか。なぜ、多くのOnTicksが登録抹消され、その間にOnBookが1つもないのか?

ログの時間を見てください。全ては1つのmsの中で起こり、その隣には(同じmsの中で)たくさんのOnBookがありました。

すべてのイベントをカウンターで数えることができますが、視覚的にもOnBooksが増えていることがわかります。