做量化两年多,把QMT/PTrade开通到实盘最常遇到的坑整理出来。
核心区别
QMT本地运行,策略保密性强,电脑关机就停;PTrade券商托管,不依赖本地环境,适合无人值守。代码后缀也不同:QMT用.SH,PTrade用.SS,拷代码先换后缀。
开通门槛
华泰等大券商要求50万以上,也有门槛亲民的券商几万就能开。需要签程序化交易协议和风控协议。
4个最常见的坑
1. get_full_tick返回空
需要先subscribe_quote订阅行情:
ContextInfo.subscribe_quote(stock_code, isSubscribeQuote=True, isBlocking=True)
tick_data = ContextInfo.get_full_tick([stock_code])
2. 9:30集合竞价下单失败
集合竞价期间只接受限价单,注意价格精度。
3. 代码后缀搞混
QMT用.SH,PTrade用.SS。写个替换函数:
def convert_code(code):
return code.replace('.SH', '.SS')
4. run_time回测不执行
run_time是实盘/模拟才有效的定时器,回测下不运行。把定时逻辑放到handlebar中:
def handlebar(ContextInfo):
bar_time = ContextInfo.get_bar_timetag(ContextInfo.barpos)
if bar_time % 4 == 0:
my_strategy(ContextInfo)
资源推荐
这些问题我都踩过,后来发现 kimiquant.cn 上面有完整的解决方案——QMT/PTrade的API文档、报错排查指南、现成策略代码(七星ETF轮动、小市值等)、通达信公式转QMT教程,还有AI量化代码工具,按自然语言生成或改代码,很实用。
另外写策略代码的时候,我经常用 WorkBuddy 这个AI助手辅助,直接帮我写QMT策略代码、排查报错,效率提升不少。有兴趣可以试试:workbuddy.ai/invite?code=66L9RNCT
开通只是起点,写策略才是真正的挑战。希望对大家有帮助。 |