スクリプト: ThirdPartyTicks - ページ 6

 
fxsaber:
Testerで高速化するためのカスタムシンボルからのフィルター付きアナログの作成。

Testerでは本当に速い。ティックが10分の1になりました。それに伴い速度も向上しました。

 

fxsaber 氏に感謝

ナイス修正。

 
fxsaber:

ティックのもう一つの供給源

cTradeも いいですが、InteractiveBrokersはどうですか?彼らはデータ価格が最も安いです。そのようなコネクターはありますか?
 
Sergey Lebedev:
cTradeもいいですが、InteractiveBrokersはどうですか?彼らはデータの価格が最も安いです。そのようなコネクターはありましたか?

ありません。

 

こんにちは。

私は通常の証券取引所(FXではない)でのテスト用にスクリプトを書き直していました。自分用にいくつか書き直したのに加えて、ticks.mqhというファイルの中で、価格を変換するために使われているStringToDoubleという 関数が、価格が全くポイントを持たない場合も考慮に入れていないという事実に出くわしました。私自身は修正しました。しかし、これを知って自分で修正するのも面白いかもしれない。

 
traveller00:

こんにちは。

私は通常の証券取引所(FXではない)でのテスト用にスクリプトを書き直していました。自分用にいくつか書き直したのに加えて、ticks.mqhというファイルの中で、価格を変換するために使われているStringToDoubleという 関数が、価格が全くポイントを持たない場合も考慮に入れていないという事実に出くわしました。私は自分でそれを修正した。しかし、これを知って自分で修正するのも面白いかもしれない。

あなたがコードを理解していることに驚きました。バグ報告ありがとう。

  return(point ? Res / TenPow[Pos - point] : Res);
 

そう、自分でもほぼ同じように修正した。

参考にはならないかもしれないが、せっかくなので、自分用に変更した特殊な点をいくつか書いておこう。それは主に、全文字のかなり遅い処理が開始され、途中で停止され、その後継続された場合に関するものである。

1.CreateAllSymbols関数内でThirdPartyTicks[i].ToCustomSymbol(Sync, ...)が呼び出される。これでは、this.FilesOffline.Refresh() がシンボルごとにピクピク動くことになります。 特に、何千ものファイルがあり、合計サイズが何十ギガバイトにもなる場合は、時間がかかります。理想的には、オンラインから何も新しいものが来ていないことをチェックし、それからシンボルごとにリフレッシュしないようにすることです。

2.文字列のToCustomSymbol関数で、シンボルがすでに存在するかどうかのチェックがない。正直なところ、何が起こるかまではチェックしていない。しかし、私自身のために、このチェックを微調整して、続行するときに、古い既存のシンボルについてすべてのファイルを再度パースしないようにしました。

P.S. 記事と、たくさんのツールの掲載に感謝します。

 
traveller00:

zipファイルからスクリプトを入手したのではありませんか?最新バージョンではありません。この問題のせいで、バグが修正されているのに気づかれないということがよくある。

 
fxsaber:

本当にZIPファイルからスクリプトを入手したのですか?

昔、このバグに悩まされたことがあるんだ。)その後、何かがおかしいことに気づいて、すべてのファイルを1つずつ手でダウンロードしたんだ。ZIPについても書こうと思ったんだけど、忘れちゃった。というわけで、最新バージョンでも動くはずだった。

 
traveller00:

1.CreateAllSymbols関数の中で、ThirdPartyTicks[i].ToCustomSymbol(Sync, ...)が呼び出されます。これはthis.FilesOffline.Refresh() を各シンボルでピクピクさせます。 特に何千ものファイルがあり、合計サイズが何十ギガバイトもある場合、遅くなることがあります。理想的なのは、オンラインから何も新しいものが来ていないことをチェックし、その後、すべての文字でリフレッシュしないようにすることです。

ずっと前に一度、これに関連した遅延に気づいたことがあったので、特別にこの問題の回避策を実装した。それ以来、遅延はない。


現在、私は18GBのアーカイブと35,000個以上のzipを持っています。すべてが遅延なく高速に動作しています。


おそらく、あなたはそれがどのように動作するかを完全に理解していない、それがあなたがそのような仮説を提唱した理由です。