O que TqSdk Trading and Data faz?
Use esta skill para responder perguntas sobre TqSdk com as APIs, documentos e exemplos reais do repositório. Prefira snippets executáveis mínimos, mantenha o comportamento de futuros e ações separado e explique o loop de atualização explicitamente sempre que o problema do usuário depender de wait_update().
Roteie a Solicitação Primeiro
Leia apenas as referências necessárias para a pergunta do usuário.
- Leia references/wait-update-and-update-loop.md para
wait_update,is_changing,deadline, notificações de atualização assíncrona, ressalvas do Jupyter ou questões de progressão em backtest. - Leia references/market-data.md para
get_quote,get_kline_serial,get_tick_serial, descoberta de contratos, metadados de símbolos eDataDownloader. - Leia references/account-type-matrix.md para
TqAccount,TqKq,TqKqStock,TqSim,TqSimStock, classes de conta OTG eTqMultiAccount. - Leia references/accounts-and-trading.md para getters de conta, posição, ordem e negociação, além de padrões de getter multi-conta.
- Leia references/scenario-and-margin.md para
TqScenario, consulta de taxa de margem em conta real, cálculo de ocupação de margem, análise de índice de risco hipotética e regras limitadas de desconto de margembuilt-in. - Leia references/order-functions-and-position-tools.md para
insert_order,cancel_order,TargetPosTask,support_open_min_volume,TargetPosSchedulere auxiliares avançados de execução. - Leia references/object-fields.md quando o usuário perguntar sobre o significado dos campos em
Quote, linhas de K-line ou tick,Account,Position,Order,Tradeou suas variantes de ações. - Leia references/simulation-and-backtest.md para simulação local, Quick sim, simulação de ações, backtest e limites de backtest entre contas.
- Leia references/error-faq.md quando o usuário perguntar sobre falhas comuns do TqSdk, comportamento confuso ou mensagens de exceção.
- Leia references/example-map.md quando quiser um exemplo ou página de documentação do repositório para imitar.
Regras Principais
- Trate resultados de
get_*como referências ativas, não snapshots. Explique que elas são atualizadas durantewait_update(). - Explique
wait_update()sempre que o usuário estiver confuso com dados faltantes, campos desatualizados, ordens que não saem do cliente ouTargetPosTaskque não age. - Diferencie fluxos de trabalho de futuros e ações:
- Contas e objetos de futuros usam
Account,Position,Order,Trade. - Contas e objetos de ações usam
SecurityAccount,SecurityPosition,SecurityOrder,SecurityTrade. - Trading de ações não usa
offset, eTargetPosTasknão é para trading de ações.
- Contas e objetos de futuros usam
- Escolha o tipo de conta antes de escrever código. Não use
TqKqouTqAccountcomo padrão a menos que o usuário realmente precise desse modo de conta. - No modo multi-conta, passe
account=para getters e chamadas de trading, ou use os métodos próprios do objeto de conta:get_account,get_position,get_ordereget_trade. - Para exemplos de mercado atual, evite contratos expirados. Prefira APIs de descoberta de contratos ou símbolos de contrato principal.
- Quando o usuário perguntar sobre significados de campos, explique primeiro o menor conjunto relevante de campos e informe se o objeto é de futuros ou ações.
- Quando o usuário solicitar longos intervalos históricos, prefira
DataDownloaderem vez de fingir queget_kline_serialé uma API de histórico ilimitado. - Quando o usuário solicitar execução avançada, prefira primeiro os helpers públicos:
TargetPosTaskpara posição líquida alvo.TargetPosTask(..., support_open_min_volume=True)apenas para contratos com regras de tamanho mínimo de abertura da bolsa, quando a conclusão aproximada for aceitável.TargetPosSchedulercombinado comtwap_tableouvwap_tabledetqsdk.algorithmpara execução programada.- Mencione
InsertOrderTaskeInsertOrderUntilAllTradedTaskcomo helpers internos ou avançados, não como resposta padrão.
- Use
TqScenariopara simulações síncronas de margem e risco hipotéticas, não para colocação de ordens ao vivo. É exclusivo para futuros, conta única e atualiza o snapshot da simulação imediatamente após cada chamada. - Explique a origem da taxa de margem em cada resposta com
TqScenario:account=NoneouTqSim()usa dados de margem deQuote.TqAccount(...)ouTqKq()consulta taxas específicas da conta de forma síncrona e pode recorrer à margem deQuotese a consulta falhar.
- Trate descontos de margem de forma conservadora. Reutilize um único objeto
TqScenariopara ações de simulação passo a passo e não prometa regras preferenciais específicas de corretoras além das regras limitadas modeladas pelo TqSdk. - Preserve as semânticas de fechamento específicas da bolsa em
TqScenario. Para futuros da SHFE ou INE, mantenhaCLOSEversusCLOSETODAYconsistente com o snapshot de posição importado.
Estilo de Resposta
- Prefira imports de
tqsdk.__init__para APIs de alto nível. Quando uma API estiver documentada em um submódulo, use o caminho oficial do submódulo, comotqsdk.toolsoutqsdk.algorithm. - Prefira blocos de código curtos e corretos em vez de pseudo-código amplo.
- Nomeie a API exata que o usuário deve chamar em seguida.
- Se o comportamento diferir em trading ao vivo, Quick sim, simulação local, simulação de ações ou backtest, diga isso explicitamente.
- Se a resposta depender de uma armadilha comum, mencione a armadilha diretamente em vez de enterrá-la em exemplos.
- Se a resposta usar
TqScenario, diga qual snapshot vai parapositions, qual saldo vai parainit_balancee se o resultado vem da margem de cotações ou de taxas de margem específicas da conta.