TqSdk 交易与数据 は何をしますか?
このスキルを使用して、リポジトリの実際の API、ドキュメント、サンプルを使って TqSdk に関する質問に回答します。最小限の実行可能なスニペットを優先し、先物と株式の動作を分離し、ユーザーの問題が wait_update() に依存している場合は常に更新ループを明示的に説明してください。
まずリクエストのルートを決める
ユーザーの質問に必要な参照だけを読んでください。
- references/wait-update-and-update-loop.md を読む:
wait_update、is_changing、deadline、非同期更新通知、Jupyter の注意点、バックテスト進行に関する質問 - references/market-data.md を読む:
get_quote、get_kline_serial、get_tick_serial、銘柄発見、銘柄メタデータ、DataDownloader - references/account-type-matrix.md を読む:
TqAccount、TqKq、TqKqStock、TqSim、TqSimStock、OTG 口座クラス、TqMultiAccount - references/accounts-and-trading.md を読む:口座、ポジション、注文、約定の getter とマルチアカウント getter パターン
- references/scenario-and-margin.md を読む:
TqScenario、実口座証拠金率照会、証拠金計算、リスク率分析、限定的な組み込み証拠金割引ルール - references/order-functions-and-position-tools.md を読む:
insert_order、cancel_order、TargetPosTask、support_open_min_volume、TargetPosScheduler、高度な実行ヘルパー - references/object-fields.md を読む:ユーザーが
Quote、K 線・ティック行、Account、Position、Order、Trade、またはそれらの株式バリアントのフィールド意味を尋ねた場合 - references/simulation-and-backtest.md を読む:ローカルシミュレーション、クイックシミュレーション、株式シミュレーション、バックテスト、クロスアカウントバックテストの制限
- references/error-faq.md を読む:ユーザーが TqSdk の一般的な障害、わかりにくい挙動、例外メッセージについて尋ねた場合
- references/example-map.md を読む:リポジトリにあるサンプルやドキュメントページを模倣したい場合
コアルール
get_*の結果はスナップショットではなくライブ参照として扱います。wait_update()中に更新されることを説明してください。- ユーザーがデータ不足、古いフィールド、注文がクライアントから送信されない、
TargetPosTaskが動作しないなどで混乱している場合は、wait_update()を説明してください。 - 先物と株式のワークフローを区別:
- 先物口座とオブジェクトは
Account、Position、Order、Tradeを使用。 - 株式口座とオブジェクトは
SecurityAccount、SecurityPosition、SecurityOrder、SecurityTradeを使用。 - 株式取引では
offsetを使用せず、TargetPosTaskは株式取引には使用しません。
- 先物口座とオブジェクトは
- コードを書く前に口座タイプを選択してください。ユーザーが本当にその口座モードを必要としない限り、
TqKqやTqAccountをデフォルトにしないでください。 - マルチアカウントモードでは、getter やトレード呼び出しに
account=を渡すか、口座オブジェクト自身のget_account、get_position、get_order、get_tradeを使用してください。 - 現在の市場の例では、期限切れの契約を避けてください。銘柄発見 API や主力契約コードを優先してください。
- ユーザーがフィールドの意味を尋ねた場合、最小限の関連フィールドセットから説明し、オブジェクトが先物か株式かを明示してください。
- 長期の履歴範囲を要求された場合、
get_kline_serialを無制限の履歴 API のように扱うよりもDataDownloaderを優先してください。 - 高度な実行を要求された場合、まず公開ヘルパーを優先:
- 目標ネットポジションには
TargetPosTask - 約定の概ねの完了が許容される場合、取引所の最小建玉サイズルールがある契約に対してのみ
TargetPosTask(..., support_open_min_volume=True) - スケジュール実行には
TargetPosSchedulerとtqsdk.algorithmのtwap_tableまたはvwap_table InsertOrderTaskとInsertOrderUntilAllTradedTaskは内部ヘルパーまたは高度なヘルパーとして言及し、デフォルトの回答にはしない
- 目標ネットポジションには
- 同期の what-if 証拠金・リスクシミュレーションには
TqScenarioを使用し、実際の注文発注には使用しない。先物専用、単一口座、各呼び出し直後にシミュレーションスナップショットを更新します。 - すべての
TqScenario回答で証拠金率のソースを説明:account=NoneまたはTqSim()はQuote証拠金データを使用。TqAccount(...)またはTqKq()は口座固有の証拠金率を同期的に照会し、照会に失敗した場合はQuote証拠金にフォールバックする場合があります。
- 証拠金割引は控えめに扱います。段階的なシミュレーションアクションには 1 つの
TqScenarioオブジェクトを再利用し、TqSdk がモデル化する限定的な組み込みルールを超えるブローカー固有の優遇ルールを約束しないでください。 TqScenarioでは取引所固有の決済セマンティクスを保持します。SHFE または INE の先物では、インポートされたポジションスナップショットに応じてCLOSEとCLOSETODAYを一貫して使用します。
回答スタイル
- トップレベル API には
tqsdk.__init__からのインポートを優先してください。API がサブモジュールに文書化されている場合は、tqsdk.toolsやtqsdk.algorithmなどの公式サブモジュールパスを使用してください。 - 広範な疑似コードよりも、短く正確なコードブロックを優先してください。
- ユーザーが次に呼び出すべき正確な API を指定してください。
- 動作がライブ取引、クイックシミュレーション、ローカルシミュレーション、株式シミュレーション、バックテストで異なる場合は、明示的にそう述べてください。
- 回答が一般的な落とし穴に依存する場合は、例の中に埋め込まずに直接落とし穴を述べてください。
- 回答が
TqScenarioを使用する場合、どのスナップショットがpositionsに入るか、どの残高がinit_balanceに入るか、結果が気配値証拠金から来るのか口座固有の証拠金率から来るのかを述べてください。