バージョン2への移行
概要
バージョン1からバージョン2への移行では、同じコードを変更せずに使用するとエラーが発生する可能性があるいくつかの重要な変更が導入されます。更新されたチュートリアルを確認することを強くお勧めします。このガイドは、移行プロセス中の一般的な落とし穴を回避するのに役立ちます。
成功の確認: elapse() == 0
を使用
バージョン1では、elapse
関数は成功時に True
を返し、そうでない場合は False
を返します。通常、戦略ループは while elapse(duration)
を使用して成功を確認します。しかし、バージョン2では、elapse はブール値の代わりにコードを返し、0
が成功を示し、それ以外の値がエラーを示します。したがって、コードは戻り値が 0
であるかどうかを確認するように更新する必要があります。
例えば: while elapse(duration) == 0
コードが変更されない場合、成功を示す 0
の戻り値が False
として扱われるため、失敗します。elapse に関連する他のメソッド、例えば submit_buy_order
や submit_sell_order
もブール値の代わりに elapse と同様のコードを返します。成功を確認するために、それらの戻り値が 0
であるかどうかを確認してください。
データフォーマットの変更
HftBacktest に供給されるデータフォーマットは大幅に変更されました。すべての情報を保持するために、生データからデータを再処理することを強くお勧めします。ただし、生データが利用できない場合は、v1 から v2 への データ変換ユーティリティ
が提供されています。
主な変更点は次のとおりです。
SOA から AOS へ: フォーマットはカラム配列 (SOA) から構造化配列 (AOS) に変更されました。
サイドカラムの削除:
side
カラムが削除されました。バージョン2では、サイドはev
フィールドフラグ、BUY_EVENT
およびSELL_EVENT
によって示されます。タイムスタンプの処理: バージョン1では、データユーティリティはイベントの順序を修正するために、いずれかのタイムスタンプを
-1
に置き換えて、取引所またはローカル側の無効なイベントを示します。バージョン2では、取引所またはローカル側のイベントの有効性は、ev フィールドのEXCH_EVENT
およびLOCAL_EVENT
フラグによって決定されます。タイムスタンプ単位: 厳密には強制されていませんが、タイムスタンプ単位はマイクロ秒からナノ秒に変更されました。
さらに、ライブ注文レイテンシーデータのフォーマットも SOA から AOS に変更されました。