2017.04.1923:24:50.317 RTS-6.17,M1 (MetaQuotes-Demo): generating based on real ticks
2017.04.1923:24:50.317 RTS-6.17,M1: testing of Experts\fxsaber\Test2.ex5 from 2017.04.0600:00 to 2017.04.0800:00 started
2017.04.1923:24:50.419 RTS-6.17 : real ticks begin from 2017.04.0600:00:002017.04.1923:24:50.4192017.04.0609:45:01 deal #2 buy 1.00 RTS-6.17 at 114250 done (based on order #2)
2017.04.1923:24:50.4192017.04.0609:45:01 deal performed [#2 buy 1.00 RTS-6.17 at 114250]
2017.04.1923:24:50.4192017.04.0609:45:01 order performed buy 1.00 at 114250 [#2 buy 1.00 RTS-6.17 at 114250]
2017.04.1923:24:50.4212017.04.0609:45:01AccountInfoDouble(ACCOUNT_PROFIT) = 0.02017.04.1923:24:50.4212017.04.0609:45:01 exchange sell 1.00 RTS-6.17 at 114200, close #2(114200 / 114250)
2017.04.1923:24:50.4212017.04.0609:45:01 deal #3 sell 1.00 RTS-6.17 at 114200 done (based on order #3)
2017.04.1923:24:50.4212017.04.0609:45:01 deal performed [#3 sell 1.00 RTS-6.17 at 114200]
2017.04.1923:24:50.4212017.04.0609:45:01 order performed sell 1.00 at 114200 [#3 sell 1.00 RTS-6.17 at 114200]
2017.04.1923:24:50.4212017.04.0609:45:01#32017.04.0609:45:01 buy 1.00 RTS-6.17114250002017.04.0609:45:011142000.000.00-56.4402017.04.1923:24:50.629 RTS-6.17,M1: 582089 ticks, 1573 bars generated. Environment synchronized in 0:00:00.063. Test passed in 0:00:00.421 (including ticks preprocessing 0:00:00.078).
もう一つの質問 - フラグがないのは正常ですか? ビルド1585
アルパリ
ファクスオープン
ビッドおよび/またはアスク
Last and Volume
すべてのティック
if everywhereCOPY_TICKS_ALL =COPY_TICKS_INFO +COPY_TICKS_TRADE
では、アルパリではどうなのでしょうか?
アルパリ
ファクスオープン
国旗がないのです。
というのはわかりますが、では、何を追加してCOPY_TICKS_ALLを 取得するのでしょうか?
COPY_TICKS_TRADE=0 であるため。
で、フラグがないストーリーのティックは、未知のCOPY_TICKS_TRADE?
というのはわかりますが、では、何を追加してCOPY_TICKS_ALLを 取得するのでしょうか?
COPY_TICKS_TRADE=0 であるため。
で、フラグが欠けた履歴のティックは不明COPY_TICKS_TRADE ?
HistoryDealGet*関数とHistoryOrderGet*関数は、パフォーマンスの面で非常に奇妙な書き方をしています。
HistorySelectを作ると、例えば10万件の個別レコードに対して。HistoryDealGet 機能は、第一引数として履歴テーブルのレコード数ではなく、チケット を要求する。そして、この表はチケット別ではなく、時間別にソートされています。したがって、HistoryDealGet 関数が実行されるたびに最初に行うことは、テーブルを検索して一致するチケットを探すことです。
なぜ、こんなにも資源の無駄遣いをするのか!一番最初のチケットと一番新しいチケットでは、実行速度が異なることが判明しました。そして、最後の取引のすべての特徴を得るために、HistoryDealGet-functionsは毎回テーブル全体を実行する。
なぜ、普通にしないのか?
また、現在のポジションの手数料を取得するために、毎回HistorySelectでスローヒストリーを取得する必要があり、HistorySelectByPositionを使用 しない場合は、HFTロボットをどのようにテストできますか? 保留注文の滑りは、パフォーマンスのゴミと化します!
テスターのACCOUNT_PROFITは無意味なことを表示しています。
今度はExpert Advisorを実行して、ポジションを即座にオープン、クローズします。
その結果
ACCOUNT_PROFITが0と表示されているが、実際は-56.44である。 その結果、エクイティやドローダウンなどが正しく推定されない。
PositionGetDouble(POSITION_PROFIT) - 同じことです。
また、現在のポジションの手数料サイズを知るために、毎回HistorySelectByPositionではなく HistorySelectで履歴を取得する必要がある場合、HFTロボットはどのようにテストできますか? 保留注文のスリッページを見るには、パフォーマンスのゴミと化します。
HistorySelectは、要求された時間間隔のバイナリ検索によって動作するのか、しないのか?つまり、O(N)またはO(log(N))ですか?
いいえ、この場合、バイナリサーチは適用されません。
そのため、内部的には両方のストーリー(OrdersとDeal)が時間によってソートされています。
すみません、ちょっと興奮しちゃいました。
はい、時間順に並んでいます。最初のレコードはバイナリサーチで検索される。