这个脚本是针对Python 3.10的,检查下版本是否匹配
当时官方选择PySide6而不是PyQt6,就是因为和PyQt5的兼容性保持得更好了
SimNow进入维护了,预计三周
课程有专门的答疑群
StopOrder这种对象可以用pickle模块来序列化
用户名就是你的论坛昵称,密码可以通过邮箱重置
C++ API里的回调函数无法直接断点,参考下这篇公众号文章里的方法吧
《喜欢PyCharm的同学,请收好这份开发指南!》
https://mp.weixin.qq.com/s/waPjMWZzlS8Uf8lbnL3t8A
测了下pydevd在VSCode中也同样可以使用
pip install PySide6==6.3.0
检查下是否电脑运行了360之类的软件,可能影响Python模块的正常安装。安装时先关闭360,完成后再打开即可
推荐process_tick_event,可以自己在策略中控制过滤的灵活性
这个数据是来源于CTP柜台,21是不是你的开仓均价(没有逐日盯市的)?
投资组合类的策略(多标的,且计算交易信号时需要看其他标的数据)使用PortfolioStrategy模块即可
卸载掉电脑上的其他Python,安装VeighNa Studio即可
alvinli512 wrote:
ahren wrote:
alvinli512 wrote:
“先判断没发出止损单”这个判断是通过之前的order id吗。或许可以用trade id来判断?
是的,之前按照orderid来判断的,想了下tradeid 可以,你看看这么实现有没有漏洞
on_trade()里面先long_tradeid = [],short_tradeid = []缓存tradeid,接着
self.pos != 0时候获取trade.price,不同的方向上把trade.tradeid 分别加入对应的tradeid 列表,即:long_tradeid.extend(trade.tradeid)
self.pos > 0 时候 判断有long_tradeid,计算long_stop,然后遍历long_tradeid,发出止损单
即:self.sell(self.long_stop,abs(trade.volume),stop=True);反之,self.pos<0同样;
这样的话,就是循环成交笔次数挂止损单,没有剔除tradeid list ;
on_trade是每一次trade触发一次,所以这样的话两个id的list是存不了大于一个id的,每次on_trade都会被初始化一次。这样是不是复杂了啊?或许试试,在每一次on_trade里关注trade的开平状态,只要是开仓的话就发出止损单。不需要查看之前是否发出止损单,只要是最新on_trade的开仓,之前一定是没有发过的。
这块取决于你的策略逻辑,如果像海龟这种会分批建仓的情况就不符合
全局配置里,填写了错误的邮箱地址信息,在VeighNa Trader主界面的【配置】对话框中,删除email开头的字段内容,保存退出后重启试试。
有SimNow的情况下推荐SimNow,有完整的资金和持仓清算流程。
PaperAccount是本地记录维护持仓,如果程序有一天没开,那么PNL之类的数据就会错误。同时因为没有计算资金,也看不到资金相关的状态变化。
开源版的VeighNa Trader是单进程的
在公众号后台留言提供下你的昵称和新邮箱,让管理员帮你设置吧
卸载干净所有Python环境重装VeighNa Studio,新手不推荐自己手动安装
不需要,登录后接口会自动查询合约信息,完成查询后本地就可以通过get_contract获取了