用Python的交易员 wrote:
价差盘口数量不足
但,在订阅界面能看到数量,为什么价差界面数量是0呢
rqdata可以找得到具体月份的历史数据吗?
例如rb1510,rb1505这些,不只是连续合约,
用于套利回测的
1,价差下看到的买量和卖量都是0 (订阅界面有买量,卖量)
2,符合条件没有成交
原生支持基金回测吗,就是普通的公募基金
某策略的回测结果
2021-07-19 20:42:13.439225 起始资金: 10,000,000.00
2021-07-19 20:42:13.439261 结束资金: 15,559,877.94
2021-07-19 20:42:13.439272 总收益率: 55.60%
2021-07-19 20:42:13.439280 年化收益: 79.90%
2021-07-19 20:42:13.439287 最大回撤: -3,004,434.58
2021-07-19 20:42:13.439295 百分比最大回撤: -17.23%
初始资金1000w
策略以固定手数进行交易
策略算得最大回撤是百分比大约是17%
但最大回撤值是300w
实际上是不是最大回撤值更有参考意义
如果从发生最大回撤前的高点开始交易
测得的最大回撤百分比将可能是30%
xiaohe wrote:
成交后也会sync_data,如果你断开的那一瞬间没有成交,那么再重启pos缓存应该还是一致的
好的,了解,谢谢.
行情中断后, 是不是会自动尝试重连
xiaohe wrote:
是的
在 no_ui 下,一直正常运行到收盘前可以 cal stop_strategy 去记录数据
但如果在交易中出现,行情服务器连接断开,原因8193
交易服务器连接断开,原因4097等
需要重启脚本
这种情况下怎么记录 pos等数据
如果按没有停止按钮(即是没有 call stop_strategy)
下次启动时pos 数据是不是会丢失
xiaohe wrote:
在cmd点击任意区域会进入编辑模式
哇,谢谢谢谢谢谢谢谢谢谢谢谢
cmd 确实会这样😬
xiaohe wrote:
no_ui脚本也能用vscode跑的
好的,我用vs code跑试试
另外你说的
''但是运行脚本的时候如果点击了界面进入了编辑模式就会阻塞主进程,回车后退出编辑模式了才输出信息''
编辑模式是指在vnpy ui上的编辑对吧
xiaohe wrote:
接口断开不会阻塞,但是运行脚本的时候如果点击了界面进入了编辑模式就会阻塞主进程,回车后退出编辑模式了才输出信息。想知道是不是这个原因导致的就用vscode跑run.py看看是否会卡住就知道了
这个是用no ui跑的,只连ctp
即使没关也想知道onsessiondisconnected 的原因
上面那些时间上显示为白天的日志是晚上才打印出来(似乎是按ctrl c后 阻塞内容才开始出来)
xiaohe wrote:
看日志时间你应该是从框住的第六行开始才是八点多输出的。如果是这样那么可能不是延迟,你可以打打行情看看。感觉有可能是你点了光标阻塞了主线程。
Hi 有什么想法吗,关于阻塞和onsessiondisconnected
xiaohe wrote:
看日志时间你应该是从框住的第六行开始才是八点多输出的。如果是这样那么可能不是延迟,你可以打打行情看看。感觉有可能是你点了光标阻塞了主线程。
不对,框住的所有内容都是晚上8点多打印,这个肯定没错,发生过很多次这样的情况了,因为我按了某几个按键才输出。另外我有打印行情,一分钟输出一次行情数据及一分钟检查是否收盘了。想知道的是 程序阻塞是否和onsessiondisconnected有关,以及怎么避免这些错误
发生机率大概为一周一次
运行情况:早上运行正常,中午时开始不打印日志
环境是:simnow
这些是 ctp 断开的错误吗,实盘时会 不会遇到,有没有解决方法
郭易燔 wrote:
https://www.microsoft.com/zh-CN/download/details.aspx?id=48145
下载安装一下这个试试,64位的版本就下64的
哇, 真的可以耶✌🏻,感谢大佬指导
xiaohe wrote:
请问安装了matplotlib吗?请问是否有多个python?
装了matplotlib的。vn station 自带的。后来卸载重装也不行
cmd 用where python ,只list 出vn station下的Python,所以应该只有一个
系统为腾讯云 下的
Windows Server 2019 DataCenter 64bit CN
通过脚本启动,导入 matplotlib 错误
后来发现直接导入 matplotlib 也不错
以 i 铁矿为例
在我们开发阶段时大都使用 i99 (指数)或i888 (连续合约,前复权平滑)
在实盘时我们是不是应该继续使用i99或i888计算指标,而交易的是实际的标的如 i2201
因为发现有个问题,主力刚换月时,如果用主力的合约的数据去计算指标
得到指标有点奇怪,因为新主力之前的交易量太小,走势也不明显
欢迎发表意见~
xiaohe wrote:
可以去同步github上的vnpy/vnpy_ctastrategy的PR1的代码试试看
vnpy_ctastrategy 是策略
回测时达到阈值漏数据应该是个系统的 bug
在 on_bar 时打印出来每个数据,再 和db 对比很容易发现
bug 在以下代码中,
可以通过call 多一次callback
或将 backtesting_data = self.history_data[ix + 1:] 修改为 backtesting_data = self.history_data[ix :]
解决
for ix, data in enumerate(self.history_data):
if self.datetime and data.datetime.day != self.datetime.day:
day_count += 1
if day_count >= self.days:
break
self.datetime = data.datetime
try:
self.callback(data)
except Exception:
self.output("触发异常,回测终止")
self.output(traceback.format_exc())
return
self.strategy.inited = True
self.output("策略初始化完成")
self.strategy.on_start()
self.strategy.trading = True
self.output("开始回放历史数据")
# Use the rest of history data for running backtesting
backtesting_data = self.history_data[ix + 1:]
例如
def on_init(self):
"""
Callback when strategy is inited.
"""
self.write_log("策略初始化")
self.load_bar(10)
会在数据回放时刚好漏掉达到10时的数据
例如:
2010-01-14 14:58:00+08:00
2010-01-14 14:59:00+08:00
2021-07-31 22:35:04.157915 策略初始化完成
2021-07-31 22:35:04.159658 开始回放历史数据
[这里缺少了2010-01-15 09:00:00+08:00]
2010-01-15 09:01:00+08:00
源码:backtesting_data少取了刚好达到阈值时的数据
# Use the rest of history data for running backtesting
backtesting_data = self.history_data[ix + 1:]
if not backtesting_data:
self.output("历史数据不足,回测终止")
return