4. 取引プロセス記録

4.1. 取引ログを有効にする

qt.run(…, trade_log=True)trade_log=True を設定し、バックテスト中に各取引を記録します。関連する設定 (ログの保存パスなど) は、qt.configure() またはランタイム環境によって異なります。

4.2. ログ内容の説明

取引ログには通常、次のフィールドが含まれます (フィールドをリストし、簡単に説明します)。実際の出力が優先されます。

分野

意味

時刻/日付

実行時刻または実行日。

基礎となる

株式/契約コード。

方向

買う/売る。

価格

約定価格。

約定数量。

約定金額。

手数料

手数料、印紙税など

注記

その他のメモ (ある場合)。

4.3. 表示して保存する

  • 表示: バックテストの終了後、結果オブジェクトまたは API (たとえば、DataFrame またはファイル パスとして) を介して trade_log を読み取ることができます。

  • 保存: フレームワークがログをファイルに書き込む場合、パスは構成アイテム trade_log_file_path によって決定されます (相対/絶対/ホーム ディレクトリ パスをサポートしており、qt.configure() を介してホット修正できます)。詳細については、API ドキュメントを参照してください。

  • ログ ローテーション (回転): trade_log_keep_days が正の整数の場合、プロセスが開始され、qteasy モジュールが正常にインポートされた後、その保存期間に基づいて、qteasy は現在の trade_log_file_path ディレクトリのクリーンアップを 1 回実行します。つまり、trade_log_*.csv が削除されます。 trade_summary_*.csv および value_curve_*.csv は、保存期間より古いものです (ファイル名のタイムスタンプまたはファイル mtime は、保存期間を決定するために使用されます)。各バックテストの終了時に新しい CSV を書き込む前に、自動的にクリーンアップが行われるわけではありません**。長時間実行される単一セッションによって多くのファイルが生成される場合は、qt.rotate_trade_logs() を呼び出して手動でクリーンアップできます。デフォルトの trade_log_keep_days3 です。自動削除を無効にするには、なし または 0 以下 に設定します。ローテーションはディスク上の古いファイルにのみ影響し、バックテスト結果や外部 API は変更されません。

4.4. 結果との関係

  • trade_log はバックテストの loop_result および oper_count に対応します。各レコードは 1 つの実際の操作に対応し、oper_count は集計された統計になります。

  • バックテスト プロセスとパフォーマンス メトリックの間の一貫性を検証するために使用されます。