你好,还有个问题,就是成交记录显示的是对的,两个电脑都一样,但是k线图表出了问题,时间+8:00的那个 k线图表上面成交的箭头和实际成交记录对不上,该怎么处理呢
一台电脑是以前版本的vnpy,时间正常,然后另一台电脑用的同样的数据,是最新版的vnpy,然后回测出来时间后面会多个+8:00,是什么原因造成的呢?
xiaohe wrote:
如果实盘想用的话,可以试着在on_tick里判断tick传来datetime的分钟是否有了变化,有就证明新的一分钟到了,然后把交易逻辑写在下面试试
请问该怎么写呢。。。。。我编程以前都在tb上。。。。。python不太行。。。求大神指导一下 万分感谢。
上面那个用上一根k线的收盘价会写,但是用”当前k线的开盘价“就不会了,请问该咋写呀,查了好多都没查到用开盘价写的。。。。
def on_tick(self, tick: TickData):
"""
Callback of new tick data update.
"""
self.bg.update_tick(tick)
def on_bar(self, bar: BarData):
"""
通过该函数收到新的1分钟K线推送。
"""
am = self.am
# 更新K线到时间序列容器中
am.update_bar(bar)
# 若缓存的K线数量尚不够计算技术指标,则直接返回
if not am.inited:
return
if (am.close[-1]>3000):
price = bar.close_price+5
if self.pos == 0:
self.buy(price, 1)
比如,螺纹钢价格高于3000点做多。 看了好多例子,基本用的都是上一根k线的收盘价大于3000,然后下一根k线做多。我想用当前k线的“开盘价”大于3000点做多,该怎么写呢?
在git上下载了backtesting_demo.ipynb,然后依次点击,却打不开,请问是哪个环节出了问题。。。。
感谢大神解答 谢谢~
还有个时间问题,想表达在k线时间为2020年3月20日10:45分的时候,让变量n=0,该怎么编写呢
if(.......):
self.n=0
请问括号里面该怎么写呢?
在回测的时候,想在第100根k线的时候,让变量n=0 该怎么编写呢
if(.......):
self.n=0
请问括号里面该怎么写呢?
一心量化 wrote:
判断是否金叉
cross_over = (self.fast_ma0 == self.slow_ma0 and self.fast_ma1 < self.slow_ma1) # 判断是否死叉 cross_below = (self.fast_ma0 == self.slow_ma0 and self.fast_ma1 > self.slow_ma1)
上边这种情况考虑了吗
哦 是的。。。。尴尬。。。居然是这个小问题。。。谢谢
用同样的数据同样的模型,同样的参数,回测起来却不一样。
我想用全局变量n 用global ,发现用不了。。。。。请问该怎么解决呢
我想用一个全局变量n来记录。当第一次满足k线开仓,n=1,平仓n=0.以后的开仓条件有n!=1。开仓的时候用 global n n=1来记录。回测却发现n实际还是0,没法变成全局变量修改,是哪里出了问题呢。。。。.
103根k线也满足开仓条件,请问有什么办法能够避免系统在第103根k线自动开仓(避免重复开仓)。
合成的5mink线 是从21:00开盘后计算,还是从20:59集合竞价产生的k线开始计算
有不用本地时间过滤集合竞价的方法吗。
zly111 wrote:
数据库里没数据?
你好,有数据的。我用1分钟k线的代码可以模拟交易,合成5分钟k线的代码就没法模拟交易,变量不显示。。。。。不知道啥情况。。。