模擬取引プラットフォーム: 構成と操作
この章では、「既存のバックテスト戦略」から「シミュレートされたライブ取引口座の最初の安定した起動」まで、どの項目を設定するか、どのように確認するか、起動後に何を確認するかについて説明します。
ユーザーの皆様、バックテストできる Operator (トレーダー コンテナ) を既にお持ちの場合は、この章がライブ テストへの最短の道です。最初に必要な構成について説明し、次に「戦略スナップショット」や「起動アクセス制御」などのオプションの高度な機能について説明します。
0. 适用场景
Operator が動作しており、バックテストからライブ シミュレーションに移行する準備ができています。
まず最短パスをテストしてから、リスク制御、アクセス制御、運用の詳細を徐々に追加したいと考えています。
1. 核心概念(本章术语)
Live を開始する前に、3 つのコンポーネントの関係を確認してください。 Qteasy では、Operator は「シグナルの計算」を担当し、ライブ アカウント は「アカウントとポジションの維持」を担当し、ローカル データ ソース は「価格と履歴データの提供」を担当します。これらのいずれかが欠けていると、Trader は安定して実行できません。次の表は、Live サブシステム内の各コンポーネントの位置と準備する必要があるものを示しています。
各列の意味: 役割 はコンポーネント名です。 関数はライブ パイプラインでの責任を負います。 準備する必要があるものは、起動前チェックです。
使用方法: ボックスを 1 つずつチェックしてください。列が不十分な場合は、最初にデータまたはアカウント情報を追加してから、qt.run(op) を実行します。
役割 |
効果 |
何を準備する必要がありますか? |
|---|---|---|
Operator |
ホールディング戦略とシグナルロジック |
バックテスト中と同じ |
ライブアカウント |
現金、保有物、注文を記録します。 |
|
ローカル データ ソース |
過去のリアルタイムの相場を提供します |
テーブル データ カバレッジ戦略の頻度 (例: 分ベースの戦略には分ベースのテーブルが必要) |
LiveTradeConfig (ライブ構成スナップショット): Trader を開始する前に、qteasy は、qt.configure(...) 全体に散在するライブ関連アイテムを検証し、不変のスナップショット (離陸前に署名されたチェックリストなど) に凍結し、実行時の偶発的な構成変更を防ぎます。シェルで liveconfig を使用して概要を表示できます。
2. 最小配置集
以下は、一般的な 必須 構成項目です (設定に失敗したり、設定が間違っていると、起動時にエラーが発生することがよくあります)。これらのキーは、qt.configure(...) を介してグローバル設定に書き込まれ、起動時に LiveTradeConfig スナップショットに組み込まれます。彼らは、「ライブかどうか、どの資産が取引されるか、どの口座が使用されるか、価格はどこから来るか、誰が注文をマッチングするか」を決定します。
各列の意味: 構成キーは QT_CONFIG の名前です。 意味 は、このキーによって制御される動作です。 設定されていない場合に何が起こるか は一般的な結果です (現在のエラーがこのキーに関連しているかどうかを判断するのに役立ちます)。
使用方法: 初めてのライブ セッションでは、すべての設定を明示的に設定してください。起動に失敗した場合は、「何も設定しなかった場合の動作」列を確認してトラブルシューティングを行ってください。例については、§5 テンプレート A/B を参照してください。
設定キー |
意味 |
設定しなかったらどうなるでしょうか? |
|---|---|---|
|
ライブ/デモ取引を開始する |
バックテストまたは他のモードをまだ使用している |
The set of names of the historical data to be fetched, if htypes is empty, the system will try to create all possible htypes by basing on the name of the historical data and the freq/asset_type parameter. the input can be str or list: - str: 'open, high, low, close' - list: ['open', 'high', 'low', 'close'] - list: ['open', 'high', 'low', 'close'] - list: ['open', 'high', 'low', 'close'] 'high', 'low', 'close'] |
E 株や F 株 (ETF) などの資産タイプ。 |
取引ルールとデータテーブルが一致しない可能性があります。 |
|
どのデモ口座を使用すればよいですか? |
元帳をバインドできません |
|
証券会社の種類、初心者は |
取引チャネルがありません |
|
|
ライブ価格を取得できません |
|
|
戦略のペースが調整されていない場合、データが欠落する可能性があります。 |
次のキーは 起動のための厳密な要件ではありませんが、最小トランザクション単位、ディスクへのログ書き込み、およびディスク使用量に影響を与えるため、確認することを強くお勧めします。これらは上記の表とともに qt.configure スコープに属し、同じスクリプトに書き込むことができます。
使用方法: 取引数量が「完全なロット」ではない場合、またはログ ファイルが見つからない場合は、戻ってこのテーブルの対応する行を確認してください。
設定キー |
意味 |
設定しなかったらどうなるでしょうか? |
|---|---|---|
|
最小販売単位 |
デフォルト値を使用する |
|
現金/数量の小数点以下の桁数 |
デフォルト値を使用する |
|
システム/トランザクション ログ ディレクトリ |
パッケージ内のデフォルトのパスを使用する |
|
ログ保存日数(リスクログを含む) |
デフォルトでは 3 日ごとの自動クリーンアップ |
3. 查看配置快照
Python (スクリプトでの自己チェック):
from qteasy.live_config import build_live_trade_config
import qteasy as qt
cfg = build_live_trade_config(qt.QT_CONFIG)
print(cfg.to_summary_dict())
CLI (Trader シェル): コマンド liveconfig (エイリアス live-config)
デフォルト: 安定したフィールドのサブセット
--detailを追加: アクセス制御、ポリシースナップショットなどを有効にするためのキーがさらに含まれます。
注: シェル内の liveconfig は、現在の Trader に基づく概要であり、起動時のオブジェクトのメモリ参照ではありません。ただし、「現在有効な構成」を確認するには十分です。
4. 配置键分组(主要 live 键)
Live に関連する設定キーが多数あります。参照しやすいように、関数 ごとにグループ化しました (完全な API リストではありません。完全なフィールドは LiveTradeConfig に基づいています)。 qteasy では、これらのキーは起動前に検証され、凍結されます。変更を有効にするには、qt.configure を変更した後、Live プロセスを再起動する必要があります。
列の意味: グループ化は、ライブ サブシステム内の責任ドメインを表します。 代表キー には、このグループ内で最も頻繁に変更されるキーがリストされます (同じグループ内にリストされていない他のキーがある場合があります)。 説明 では、動作中のこのグループの役割について説明します。
使用方法: 現在のタスクに応じてグループを選択します。たとえば、ログの問題のトラブルシューティングを行うには、「ログ」行を見て、次の場所に移動します。 :doc:5-artifacts-and-troubleshooting;分ごとの戦略を開くときは、まず「マーケットデータとリフィル」が戦略の頻度と一致しているかどうかを確認してください。
例: サブデイリー フリークエンシー戦略では、多くの場合、「マーケット データとリフィル」グループの live_price_acquire_freq を変更し、必要に応じて「戦略スナップショット (5-A)」グループの live_trade_split_strategy_prepare を有効にします。
グループ化 |
代表キー |
説明 |
|---|---|---|
アカウントとUI |
|
アカウントと CLI/TUI の選択 |
市況と補充 |
|
リアルタイムの価格と時間指定のデータ更新 |
取引ルール |
|
バックテストのセマンティクスに合わせる |
Broker |
|
デフォルトは |
戦略スナップショット (5-A) |
|
データは戦略が実行される前にプリフェッチされます。詳細については、:doc: |
アクセス制御を有効にする (5-B) |
|
市場投入前のセキュリティチェック。 CLI ⟦コード0⟧ |
ログ |
|
|
完全なフィールドは LiveTradeConfig に基づいています。各キーの有効な値は、構成検証ロジックで定義されます。
5. 推荐配置模板
テンプレート A: 株式 (E+ 模擬証券)
次のコードは、前 qt.run(op) に実行され、株式ルール、Eastmoney 15 分価格、およびシミュレートされたカウンター取引を使用するように qteasy に指示します。
import qteasy as qt
qt.configure(
mode=0,
asset_type='E',
live_trade_broker_type='simulator',
live_price_acquire_channel='eastmoney',
live_price_acquire_freq='15MIN',
trade_log_keep_days=3,
)
テンプレート B: 上場投資信託 / ETF (FD + 模擬証券)
asset_type='FD' が ETF などのサンプル パスに適用される点を除き、テンプレート A と同じです。
import qteasy as qt
qt.configure(
mode=0,
asset_type='FD',
live_trade_broker_type='simulator',
live_price_acquire_channel='eastmoney',
live_price_acquire_freq='15MIN',
trade_log_keep_days=3,
)
テンプレート C: ポリシー スナップショット + アクセス コントロールのアクティブ化 (スモーク/アドバンスト)
与 :doc:7-manual-smoke-live-grid-roadmap 一致;建议在熟悉模板 A/B 后再开。
qt.configure(
live_trade_split_strategy_prepare=True,
live_trade_prepare_lead_seconds=60,
live_trade_strategy_snapshot_max_age_seconds=300.0,
live_trade_startup_gate_mode='warn', # 先 warn 观察,稳定后可试 block
)
6. 启动流程(分步说明)
設定を完了します: §2 に従って
qt.configure(...)を完了し、アカウント ID/名前を確認します。(オプション) スナップショットの確認: §3 の Python スニペットを実行するか、起動後にシェルで
liveconfig --detailを実行します。起動:
qt.run(op);一般的なコマンドラインの例では、--ui cliを使用して **Trader シェル ** を入力します。観察: ステータス、オーダー、ログが期待どおりに書き込まれているかどうかを確認します (§7)。
起動前にいくつかの主要な構成項目をすばやく印刷します。
import qteasy as qt
for key in ('mode', 'asset_type', 'live_trade_broker_type',
'live_price_acquire_channel', 'live_trade_startup_gate_mode'):
print(key, qt.get_config(key)[key])
7. 启动后建议先看什么(CLI)
Trader シェルに入ると、次のコマンドは、設定が有効かどうか、ログの場所、証券会社がリクエストを処理できるかどうか、アクセス制御が成功したかどうかを確認するのに役立ちます。これらは、:doc:8-cli-trader-capability-matrix の操作サブセットに対応します。すべてのシェル コマンドではありません。
各列の意味: コマンド: プロンプトで入力された名前 (エイリアスについてはマトリックスの章を参照)。 一般的な使用法: このコマンドで最も頻繁に解決される質問。
使用方法: 開始したら、テーブルを上から下にすばやくスキャンします。ステップが異常な場合は、コマンドの出力を :doc:5-artifacts-and-troubleshooting にリダイレクトします。
例: ログ パスが不明 → artifacts を入力 → 返された sys_log パスを開いて起動トレースを表示します。
コマンド |
典型的な使用例 |
|---|---|
|
現在のライブ構成の概要 |
|
4 結合生成物のパス (ログはどこにありますか) |
|
アクセス制御システムを手動で 1 回実行します (デバッグ用)。 |
|
模擬証券会社は「つながっている」のか? |
|
調整スナップショット JSON |
|
診断中 (DEBUG モードが必要) |
コマンドの完全なセットについては、:doc:8-cli-trader-capability-matrix を参照してください。
7.1 ダッシュボードと対話モード
Trader シェルはデフォルトで ダッシュボード モードで起動します。単一行のステータス領域がスクロールして、次のタスクまでのカウントダウン、監視リストのリアルタイム価格、およびシステム メッセージが表示され、コマンドを入力せずに動作リズムを観察できます。手動で注文したり、構成を確認したり、メンテナンス コマンドを実行したりするには、Ctrl+C を押してモード メニューを開くか、対話型 (コマンド) モードで dashboard と入力してダッシュボードに戻ります。
モード |
行動 |
|---|---|
dashboard |
ステータス行と監視価格は自動的に更新されます。 Trader メインループはバックグラウンドで実行され続けます。 |
対話型 (コマンド) |
従来の |
Ctrl+C モード選択メニュー (ダッシュボード モードとコマンド モードの両方で利用可能)
5 秒以内に 1 → を押してコマンド モードに入ります。 2 → ダッシュボードに戻ります。 3 → 終了して Trader を停止します。
Enter キーを押す必要はありません。数字キーはすぐに有効になります。
5秒以内に入力がない場合 → 中断前のモードに自動的に戻ります。
メニューの待ち時間中にもう一度 Ctrl+C を押す → すぐに終了 (3 を選択するのと同等)
メイン ループで予期しない例外が発生した場合、シェルは、1 を押してダッシュボードに戻るか、3 を押して終了するように求めるプロンプトを表示します。 5 秒間入力がない場合、デフォルトでダッシュボードに戻り、Trader は実行を続けます。
8. 运行前检查清单
アカウント ID/名前が使用可能であり、戦略資産プールと一致します。
asset_typeはasset_poolと一致している必要があります (株式とファンドのルールを混合しないでください)。live_trade_broker_typeはsimulator(または既に実装されている型) である必要があります。ライブ価格の頻度 ** 戦略の実行頻度以上** (分ベースの戦略には十分な頻度のライブ価格が必要です)。
ログのパスは有効で、ディスクは書き込み可能です。
trade_log_keep_daysは、保持期待 (リスク ログを含む) を満たします。
9. 常见启动失败与处理
起動中にエラーが発生した場合、その症状は多くの場合、構成、アカウント、データ、パス、頻度、起動アクセス制御などのいくつかのカテゴリに分類されます。以下の表には、やみくもにログを検索することを避けるために、観察された症状 によってインデックスが付けられています。
各列の説明: 現象: 起動時または最初の画面での動作。 考えられる原因: 一般的な根本原因 (すべてではありません)。 提案: 次のステップ。
使用方法: まず、「現象」列を一致させます。問題が解決しない場合は、§7 コマンドを使用してパスを liveconfig および artifacts にエクスポートし、:doc:5-artifacts-and-troubleshooting のデシジョン ツリーを参照してください。
現象 |
考えられる理由 |
提案 |
|---|---|---|
構成の検証に失敗しました。 |
特定のライブキーが無効であるか、相互に排他的です。 |
エラーメッセージを修正した後、再起動してください。 |
アカウントが利用できません |
ID/名前が間違っているか、初期化されていません |
アカウント作成パラメータを確認する |
データが利用できない |
チャンネル/周波数/ローカルテーブルがありません |
リフィルや |
パスエラー |
ログ ディレクトリは書き込み可能ではありません |
|
周波数調整不能 |
ステップ頻度が高いライブの費用対効果戦略はまれです |
|
gate block |
アクセス制御 |
|
10. 相关跳转
リスク管理と命令: 3 つのリスクと命令のライフサイクル
製品とトラブルシューティング: :doc:
5-artifacts-and-troubleshootingブローカーの適応: :doc:
4-broker-adapter-and-integrationスナップショット/アクセス制御: :doc:
6-trader-snapshot-gateスモークリスト: :doc:
7-manual-smoke-live-grid-roadmapCLI リファレンス: :doc:
8-cli-trader-capability-matrix完全なチュートリアル: tutorials/8-live-trade-risk-and-broker-walkthrough.md
11. 最小验收标准
EまたはFDパスで安定起動可能
liveconfig/artifactsの出力は期待どおりです。注文の送信、リスク管理の拒否、カウンター処理のうち少なくとも 1 つが観察される可能性があります。
リスク管理が注文を拒否した場合: 記録は
risk_logで見つかります。ブローカーが注文を拒否した場合: 注文はrejectedとしてマークされ、ブローカー番号は空になります。対応するランタイム アーティファクトはログ ディレクトリにあります。