Was macht TqSdk Trading und Daten?
Verwenden Sie diesen Skill, um TqSdk-Fragen mit den tatsächlichen APIs, Dokumentationen und Beispielen des Repositories zu beantworten. Bevorzugen Sie minimal lauffähige Code-Snippets, halten Sie Futures- und Aktienverhalten getrennt und erklären Sie die Update-Schleife explizit, wann immer das Problem des Benutzers von wait_update() abhängt.
Leiten Sie die Anfrage zuerst weiter
Lesen Sie nur die Referenzen, die für die Frage des Benutzers erforderlich sind.
- Lesen Sie references/wait-update-and-update-loop.md für
wait_update,is_changing,deadline, asynchrone Update-Benachrichtigungen, Jupyter-Hinweise oder Backtest-Fortschrittsfragen. - Lesen Sie references/market-data.md für
get_quote,get_kline_serial,get_tick_serial, Kontraktfindung, Symbol-Metadaten undDataDownloader. - Lesen Sie references/account-type-matrix.md für
TqAccount,TqKq,TqKqStock,TqSim,TqSimStock, OTG-Kontoklassen undTqMultiAccount. - Lesen Sie references/accounts-and-trading.md für Getter für Konten, Positionen, Orders und Trades sowie Muster für Multi-Account-Getter.
- Lesen Sie references/scenario-and-margin.md für
TqScenario, die Abfrage von Margin-Raten für echte Konten, die Berechnung der Margin-Belegung, Was-wäre-wenn-Analysen der Risikoquote und begrenzte integrierte Margin-Rabattregeln. - Lesen Sie references/order-functions-and-position-tools.md für
insert_order,cancel_order,TargetPosTask,support_open_min_volume,TargetPosSchedulerund erweiterte Ausführungshilfen. - Lesen Sie references/object-fields.md, wenn der Benutzer fragt, was Felder auf
Quote, K-Linien- oder Tick-Zeilen,Account,Position,Order,Tradeoder deren Aktienvarianten bedeuten. - Lesen Sie references/simulation-and-backtest.md für lokale Simulation, Quick-Simulation, Aktiensimulation, Backtest und kontenübergreifende Backtest-Einschränkungen.
- Lesen Sie references/error-faq.md, wenn der Benutzer nach häufigen TqSdk-Fehlern, verwirrendem Verhalten oder Ausnahmenachrichten fragt.
- Lesen Sie references/example-map.md, wenn Sie ein repository-gestütztes Beispiel oder eine Dokumentationsseite zur Nachahmung wünschen.
Kernregeln
- Behandeln Sie
get_*-Ergebnisse als Live-Referenzen, nicht als Schnappschüsse. Erklären Sie, dass sie währendwait_update()aktualisiert werden. - Erklären Sie
wait_update(), wann immer der Benutzer über fehlende Daten, veraltete Felder, Orders, die den Client nicht verlassen, oderTargetPosTask, das nicht reagiert, verwirrt ist. - Unterscheiden Sie Futures- und Aktienworkflows:
- Futures-Konten und -Objekte verwenden
Account,Position,Order,Trade. - Aktienkonten und -Objekte verwenden
SecurityAccount,SecurityPosition,SecurityOrder,SecurityTrade. - Aktienhandel verwendet kein
offset, undTargetPosTaskist nicht für Aktienhandel geeignet.
- Futures-Konten und -Objekte verwenden
- Wählen Sie den Kontotyp, bevor Sie Code schreiben. Verwenden Sie nicht standardmäßig
TqKqoderTqAccount, es sei denn, der Benutzer benötigt diesen Kontomodus wirklich. - Übergeben Sie im Multi-Account-Modus
account=für Getter und Handelsaufrufe oder verwenden Sie die eigenenget_account-,get_position-,get_order- undget_trade-Methoden des Kontobjekts. - Vermeiden Sie für aktuelle Marktbeispiele abgelaufene Kontrakte. Bevorzugen Sie Kontraktfindungs-APIs oder Hauptkontraktsymbole.
- Wenn der Benutzer nach Feldbedeutungen fragt, erklären Sie zuerst die kleinste relevante Feldmenge und geben Sie an, ob das Objekt Futures oder Aktien betrifft.
- Bevorzugen Sie für lange historische Zeiträume
DataDownloaderanstattget_kline_serialals unbegrenzte Historie-API auszugeben. - Bevorzugen Sie für erweiterte Ausführung zuerst öffentliche Hilfsfunktionen:
TargetPosTaskfür eine Ziel-Nettoposition.TargetPosTask(..., support_open_min_volume=True)nur für Kontrakte mit börsenminimalen Eröffnungsgrößenregeln, wenn eine approximative Fertigstellung akzeptabel ist.TargetPosSchedulerplustwap_tableodervwap_tableaustqsdk.algorithmfür geplante Ausführung.- Erwähnen Sie
InsertOrderTaskundInsertOrderUntilAllTradedTaskals interne oder erweiterte Hilfsfunktionen, nicht als Standardantwort.
- Verwenden Sie
TqScenariofür synchrone Was-wäre-wenn-Margin- und Risiko-Simulationen, nicht für die Live-Orderplatzierung. Es ist nur für Futures, Einzelkonto und aktualisiert den Simulations-Schnappschuss sofort nach jedem Aufruf. - Erklären Sie die Margin-Ratenquelle in jeder
TqScenario-Antwort:account=NoneoderTqSim()verwendetQuote-Margin-Daten.TqAccount(...)oderTqKq()fragt kontospezifische Raten synchron ab und kann aufQuote-Margin zurückfallen, wenn die Suche fehlschlägt.
- Gehen Sie konservativ mit Margin-Rabatten um. Verwenden Sie ein
TqScenario-Objekt für schrittweise Simulationsaktionen wieder und versprechen Sie keine maklerspezifischen Vorzugsregeln, die über die begrenzten integrierten Regeln hinausgehen, die von TqSdk modelliert werden. - Bewahren Sie die börsenspezifischen Glattstellungssemantiken in
TqScenario. Behalten Sie für SHFE- oder INE-Futures die Konsistenz vonCLOSEgegenüberCLOSETODAYmit dem importierten Positions-Schnappschuss bei.
Antwortstil
- Bevorzugen Sie Importe aus
tqsdk.__init__für APIs der obersten Ebene. Wenn eine API in einem Untermodul dokumentiert ist, verwenden Sie diesen offiziellen Untermodulpfad wietqsdk.toolsodertqsdk.algorithm. - Bevorzugen Sie kurze, korrekte Code-Blöcke gegenüber breitem Pseudocode.
- Nennen Sie die genaue API, die der Benutzer als Nächstes aufrufen sollte.
- Wenn sich das Verhalten im Live-Handel, Quick-Sim, lokaler Sim, Aktien-Sim oder Backtest unterscheidet, sagen Sie dies explizit.
- Wenn die Antwort von einer häufigen Falle abhängt, nennen Sie die Falle direkt, anstatt sie in Beispielen zu verstecken.
- Wenn die Antwort
TqScenarioverwendet, geben Sie an, welcher Schnappschuss inpositions, welcher Saldo ininit_balanceeingeht und ob das Ergebnis von der Quote-Margin oder kontospezifischen Margin-Raten stammt.