VeighNa量化社区
你的开源社区量化交易平台
xiaohe's Avatar
Member
离线
4300 帖子
声望: 268

目前不支持

参照get_pricetick写一个策略里调用即可

那是夜盘的数据吧,请升级至最新版再试试看吧

可以自己把相关代码注释掉

发布于vn.py社区公众号【vnpy-community】

 

原文作者:用Python的交易员 | 发布时间:2021-10-30

 

2021的最后一场(第三期)vn.py小班课开始报名,老规矩还是放几张之前课程的照片:

description

准备完毕,静候同学们到达

description

学习量化,先从掌握核心框架

description

深入代码,分析策略逻辑细节

 
小班课时间还是都会定在周末两天,一共包含周六周日两个下午共计10小时的课程,以及后续三个月的助教跟踪辅导。线下课程的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学也可以选择远程线上听课。

本期(总计第14期)课程的主题是【CTA策略交易】,目前剩余名额还有6位,感兴趣的同学请抓紧,课程大纲如下:

 
日期:2021年12月4日(周六)和12月5日(周日)

时间:两天下午1点-6点,共计10小时

大纲

1 . CTA策略开发

a. 历史数据完整解决方案,多种数据库配置、历史行情记录、异常数据清洗

b. 基于模板开发CTA策略,参数变量设计,回调函数处理,交易函数详解

c. 深入K线时间序列:自定义K线合成,技术指标定制,时间序列统计分析

2 . 策略回测优化

a. 回测引擎核心业务逻辑流、委托撮合规则(停止单、限价单)、策略状态控制

b. 回测图表的分析方法,统计数据分析中的误区

c. 优化算法详解:多进程穷举算法、单进程遗传算法

3 . 实盘交易运维

a. 策略每日盘中的生命周期管理

b. 历史数据初始化、策略运行状态同步管理

c. 盘中交易异常处理方案

4 . CTA进阶深入

a. 股指期货策略源代码分享:SuperCombo、Cuatro
b. 商品期货策略源代码分享:MoneyFlow、OscillatorDrive
c. CTA策略中的交易算法实现:委托细粒度状态机管理

针对股指日内的SuperCombo策略:

description

针对焦炭趋势的OscillatorDrive策略:

description

针对海外市场趋势的SuperTurtle策略:

description

 
价格:10999元
 

报名请发送邮件到event@mail.vnpy.com,注明想参加的课程、姓名、手机、公司、职位即可。

课程对于之前参加过小班课的学员优先开放,同时提供9折的价格优惠。
 

请删除C:\users\administrator.vntrader文件夹里的cta_strategy_data.json。
注意,这里的administrator应该是你的Windows操作系统用户名。删除后重启VN Trader即可。

如果后续再次出现该错误,请检查策略代码中,是否有把str、bool、int、float类型以外的变量名称写到了parameters列表中,这四种类型以外的变量由于无法通过json序列化会导致保存策略状态出错(损坏json文件)

可以在接口的onRtnDepthMarketData函数中加上turnover=data["Turnover"],获取

你整个启动脚本都没有缩进,请参照run.py

可以过滤掉非交易时间段的脏数据再试试看

position = self.main_engine.get_position(vt_positionid=f"{self.vt_symbol}.{Direction.SHORT.value}")
pnl = position.pnl
vol = position.volume
不就可以了吗
报None是get_position获取到None了吧

这个理论上可以一直跑,因为只有在你设定的交易时间段才会启动子进程

请问你的simnow账号是111111吗?

不适用交互式环境,用脚本跑就好了

现在tickdata和bardata已经添加了turnover字段,如果底层接口有获取的话,tick上会带的。如果没有请自行查看对应接口是否提供了

建议自己过滤掉非交易时段的垃圾数据

小刘小刘 wrote:

xiaohe wrote:

那可以收到平仓成交回报之后再开仓

小何老师你好,那是在on_bar函数的内部,在发出平仓指令之后,获得这个vt_orderids,写一个循环,一直等待这个条件vt_orderids in self.active_orderids不成立,才进行下一步?下面这个简化的代码应该就可以了对吧?

short_vt_orderids = self.short(vt_symbol_0, price, volume)
while short_vt_orderids in self.active_orderids:
    time.sleep(0.02)
self.buy(vt_symbol_1, price, volume)  # 因为我这个是用多品种模块的,所以是不同的vt_symbol

成交以后会有成交推送on_trade

那可以自己去vnpy_ctastrategy.engine里面打印排查看看

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】