ライブラリ: 時間に厳密なアプリケーションiTimeSeries

 

時間に厳密なアプリケーションiTimeSeries:

この時系列ライブラリは、MQL4 に使い慣れたメソッド (例: iBarShift) を実装しながら、時間に厳密なアプリケーションを、MQL5の高速時系列アクセスにもたらします。

AV ベンチマーク

作者: nicholishen

 

よくやった。

100,000回の反復ループの目的は、平均化された使用可能な時間値(ms単位)を得ることです。iBarShift()はオブジェクトの初期化を必要とし、この初期化はループの中でカウントされるのではなく、ループの外でカウントされます。 いずれにせよ、すべての値をメモリに保持する方が、毎回計算するよりも高速であることは確かです。

 

ちなみに、参考ベンチマークで言及されているiBarShiftFastは、以下のようにシンプルに改良できる:

(Bars(symbol, timeframe, time, D'2100.01.01') - 1)

その改良とは、SeriesInfoIntegerを 完全に 削除 し、遠い将来の定数の日付を使用 することである

 
Alain Verleyen:

よくやった。

100,000回の反復ループの目的は、平均化された使用可能な時間値(ms単位)を得ることです。iBarShift()はオブジェクトの初期化を必要とし、この初期化はループの中でカウントされるのではなく、ループの外でカウントされます。 いずれにせよ、すべての値をメモリに保持する方が、毎回計算するよりも高速であることは確かです。


ありがとう!:)


しかし、2番目のベンチマークでiBarShiftを直接呼び出しているのは、オブジェクトをインスタンス化しているからです。パフォーマンス・モード」も、ホットパス・オペレーション内でのデータ・アクセスのみと考えれば、公平な比較となる。

ところで、私は今テストを行ったところだが、これを読んでいる人のためにもう一度明記しておきたい:この方法は、データ更新とデータ呼び出しを別々の経路に分離する場合、または 時系列関数 呼び出しの組み合わせをバーごとに合計300回以上呼び出す場合にのみ 高速になります。つまり、~300回の反復が損益分岐点となります。もし1小節あたり300回以上呼び出さず「ホットパス」を使用していないのであれば、他の方法を使用した方がよいでしょう。

 
iBarShift benchmark based on 100000 runs.
=======================================================
iBarShift(Alain Verleyen) for 2017.04.11 19:56:37 is 45723 in 338.868 milliseconds.
-------------------------------------------------------------
iBarShift3 for 2017.04.11 19:56:37 is 45723 in 0.492 milliseconds.
-------------------------------------------------------------
iBarShift(direct function call) for 2017.04.11 19:56:37 is 45723 in 38.712 milliseconds.
-------------------------------------------------------------
iBar.Shift(performance mode) for 2017.04.11 19:56:37 is 45723 in 3.403 milliseconds.
-------------------------------------------------------------
ファイル:
 

この記事は、ヴォルフガング・シュトゥットガルトで開催されたヴォルフガング・シュトゥットガルト国際映画祭で上映されたものです。

Библиотеки:iタイムシリーズ

fxsaber, 2017.05.25 13:23

iBarShift benchmark based on 100000 runs.
=======================================================
iBarShift(Alain Verleyen) for 2017.04.11 19:56:37 is 45723 in 338.868 milliseconds.
-------------------------------------------------------------
iBarShift3 for 2017.04.11 19:56:37 is 45723 in 0.492 milliseconds.
-------------------------------------------------------------
iBarShift(direct function call) for 2017.04.11 19:56:37 is 45723 in 38.712 milliseconds.
-------------------------------------------------------------
iBar.Shift(performance mode) for 2017.04.11 19:56:37 is 45723 in 3.403 milliseconds.
-------------------------------------------------------------
 
fxsaber:
マジで?ただのトリックだよ。
 
Alain Verleyen:
マジで?ただのトリックだよ。

このパフォーマンステストは、ライブラリーの作者自身が書いたものだ。

少しユーモアを交えた例を見ると、テストは少し違うものであるべきだということがわかる。+ さらに、このテスト関数の別の実装も見てみよう。

 
fxsaber :

この性能テストはライブラリーの作者によって書かれた。

少しユーモアを交えた例は、テストが多少異なるはずであることを示している。+ その他の実装検証機能。


その通りだ。このテストは、ベンチマークAlainを反映するように設計されています。このアルゴリズムの実世界での使用をより正確にシミュレートするために、タイムシフトを加えた例を示します。

https://i.imgtc.com/rhYzQFj.png

ファイル:
 
nicholishen:


その通りだ。このテストはアランのベンチマークを反映するように設計されている。このアルゴリズムの実世界での使用をより正確にシミュレートするために、タイムシフトを使った例を示します。

テスター/オプティマイザー(だけ)には高性能が必要です。

テスター/オプティマイザーでのライブラリの比較結果を示してください。

 
fxsaber:

テスター/オプティマイザー(のみ)で高いパフォーマンスが必要です。

あなたのライブラリのテスター/オプティマイザーでの比較結果を示してください。


...多くのオブジェクトからなる複雑な構造にも必要です。