TqSdk 트레이딩 및 데이터은(는) 무엇을 하나요?
이 스킬을 사용하여 저장소의 실제 API, 문서 및 예제로 TqSdk 질문에 답변하세요. 최소한의 실행 가능한 코드 조각을 선호하고, 선물과 주식 동작을 분리하며, 사용자 문제가 wait_update()에 의존할 때마다 업데이트 루프를 명시적으로 설명하세요.
먼저 요청을 라우팅하세요
사용자 질문에 필요한 참조만 읽으세요.
wait_update,is_changing,deadline, 비동기 업데이트 알림, Jupyter 주의사항 또는 백테스트 진행 관련 질문이면 references/wait-update-and-update-loop.md를 읽으세요.get_quote,get_kline_serial,get_tick_serial, 계약 검색, 심볼 메타데이터 및DataDownloader관련 질문이면 references/market-data.md를 읽으세요.TqAccount,TqKq,TqKqStock,TqSim,TqSimStock, OTG 계정 클래스 및TqMultiAccount관련 질문이면 references/account-type-matrix.md를 읽으세요.- 계정, 포지션, 주문 및 체결 게터와 다중 계정 게터 패턴 관련 질문이면 references/accounts-and-trading.md를 읽으세요.
TqScenario, 실제 계정 증거금율 조회, 증거금 점유 계산, 리스크 비율 시나리오 분석, 제한된 내장 증거금 할인 규칙 관련 질문이면 references/scenario-and-margin.md를 읽으세요.insert_order,cancel_order,TargetPosTask,support_open_min_volume,TargetPosScheduler및 고급 실행 헬퍼 관련 질문이면 references/order-functions-and-position-tools.md를 읽으세요.- 사용자가
Quote, K-라인 또는 틱 행,Account,Position,Order,Trade또는 그 주식 변형의 필드 의미를 묻는다면 references/object-fields.md를 읽으세요. - 로컬 시뮬레이션, 퀵 시뮬레이션, 주식 시뮬레이션, 백테스트 및 교차 계정 백테스트 제한 관련 질문이면 references/simulation-and-backtest.md를 읽으세요.
- 사용자가 일반적인 TqSdk 오류, 혼란스러운 동작 또는 예외 메시지를 묻는다면 references/error-faq.md를 읽으세요.
- 저장소 기반 예제나 문서 페이지를 모방하려면 references/example-map.md를 읽으세요.
핵심 규칙
get_*결과를 스냅샷이 아닌 라이브 참조로 취급하세요.wait_update()중에 새로고침된다고 설명하세요.- 사용자가 데이터 누락, 필드 오래됨, 주문이 클라이언트를 떠나지 않음 또는
TargetPosTask가 작동하지 않는 문제로 혼란스러워할 때마다wait_update()를 설명하세요. - 선물과 주식 워크플로우를 구분하세요:
- 선물 계정 및 객체는
Account,Position,Order,Trade를 사용합니다. - 주식 계정 및 객체는
SecurityAccount,SecurityPosition,SecurityOrder,SecurityTrade를 사용합니다. - 주식 거래는
offset을 사용하지 않으며,TargetPosTask는 주식 거래용이 아닙니다.
- 선물 계정 및 객체는
- 코드를 작성하기 전에 계정 유형을 선택하세요. 사용자가 실제로 해당 계정 모드를 필요로 하지 않는 한 기본값으로
TqKq또는TqAccount를 사용하지 마세요. - 다중 계정 모드에서는 게터와 거래 호출에
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는 내부 또는 고급 헬퍼로 언급하고, 기본 답변으로 사용하지 마세요.
- 목표 순 포지션:
TqScenario는 실시간 주문 제출이 아닌 동기식 시나리오 분석(증거금 및 리스크)에 사용하세요. 선물 전용, 단일 계정이며 각 호출 직후 시나리오 스냅샷을 업데이트합니다.- 모든
TqScenario답변에서 증거금율 출처를 설명하세요:account=None또는TqSim()은Quote증거금 데이터를 사용합니다.TqAccount(...)또는TqKq()는 계정별 증거금율을 동기식으로 조회하고 조회에 실패하면Quote증거금으로 폴백할 수 있습니다.
- 증거금 할인을 보수적으로 처리하세요. 단계별 시나리오 작업에 하나의
TqScenario객체를 재사용하고, TqSdk가 모델링한 제한된 내장 규칙 이상의 브로커별 특혜 규칙을 약속하지 마세요. TqScenario에서 거래소별 청산 의미를 유지하세요. SHFE 또는 INE 선물의 경우, 가져온 포지션 스냅샷과 일관되게CLOSE대CLOSETODAY를 유지하세요.
답변 스타일
- 최상위 API는
tqsdk.__init__에서 임포트하는 것을 선호하세요. API가 하위 모듈 아래에 문서화된 경우tqsdk.tools또는tqsdk.algorithm과 같은 공식 하위 모듈 경로를 사용하세요. - 광범위한 의사 코드보다 짧고 정확한 코드 블록을 선호하세요.
- 사용자가 다음에 호출해야 할 정확한 API를 명명하세요.
- 실제 거래, 퀵 시뮬레이션, 로컬 시뮬레이션, 주식 시뮬레이션 또는 백테스트에서 동작이 다른 경우 명시적으로 말하세요.
- 답변이 일반적인 함정에 의존하는 경우, 예제에 묻지 말고 함정을 직접 진술하세요.
- 답변이
TqScenario를 사용하는 경우,positions에 어떤 스냅샷이 들어가는지,init_balance에 어떤 잔액이 들어가는지, 결과가 호가 증거금에서 왔는지 계정별 증거금율에서 왔는지 말하세요.