You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Zerodha GTT订单报Invalid params错误?Python非KiteConnect实现故障

问题排查与解决方案

核心问题:请求数据格式错误

Kite Trade的GTT触发订单API要求POST请求发送JSON格式的请求体,但你的代码中使用data=params会将数据以表单编码格式(application/x-www-form-urlencoded)发送,这不符合API的参数解析要求,导致返回Invalid order params错误。

修复步骤

1. 修改POST请求的参数传递方式

使用requests库的json参数自动序列化字典为JSON,并设置正确的请求头:

修改后的请求代码:

response = self.session.post("https://api.kite.trade/gtt/triggers",
                             json=params, headers=self.headers).json()

2. (可选)手动处理JSON序列化

如果你的session有特殊配置,也可以手动序列化并设置Content-Type头:

import json

# 合并原有headers,添加Content-Type
updated_headers = {**self.headers, "Content-Type": "application/json"}
response = self.session.post("https://api.kite.trade/gtt/triggers",
                             data=json.dumps(params), 
                             headers=updated_headers).json()

额外参数验证

确保以下参数符合API要求:

  • condition中的last_price必须是数值类型(而非字符串),确认self.ltp()方法返回的是整数或浮点数。
  • orders中的price精度需符合交易所要求(INFY的最小价格变动单位为0.05,你的702.5是合法的)。
  • type设为single时,trigger_values数组只需包含一个触发价格,你的[702.0]符合要求。

内容的提问来源于stack exchange,提问作者Surbhi Goel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:34:51