=================== バージョン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 への :mod:`データ変換ユーティリティ ` が提供されています。 主な変更点は次のとおりです。 * SOA から AOS へ: フォーマットはカラム配列 (SOA) から構造化配列 (AOS) に変更されました。 * サイドカラムの削除: ``side`` カラムが削除されました。バージョン2では、サイドは ``ev`` フィールドフラグ、:const:`BUY_EVENT ` および :const:`SELL_EVENT ` によって示されます。 * タイムスタンプの処理: バージョン1では、データユーティリティはイベントの順序を修正するために、いずれかのタイムスタンプを ``-1`` に置き換えて、取引所またはローカル側の無効なイベントを示します。バージョン2では、取引所またはローカル側のイベントの有効性は、`ev` フィールドの :const:`EXCH_EVENT ` および :const:`LOCAL_EVENT ` フラグによって決定されます。 * タイムスタンプ単位: 厳密には強制されていませんが、タイムスタンプ単位はマイクロ秒からナノ秒に変更されました。 さらに、ライブ注文レイテンシーデータのフォーマットも SOA から AOS に変更されました。