#来源于github下载vnpy版本 20180413git
十一、多投资标的状况下,该如何修改?github
十、stop和limit报单有什么区别呢?app
在交易时用得最多的是二类定单,第一类是市价单(Market Order),就是用市场如今的报价成交,这类定单很是简单易懂,不须要多做解释,但第二类的定单相对比较复杂一点,它包括二种定单,一种是限价单,一种是止损单。
限价单和止损单都属于挂单,也就是用市场之后可能会出现的价格成交,若是设定的价格不出现则不成交,一旦设定的价格出现,挂单就自动转成市价单而成交。
spa
九、哪里能够看到成交明细?code
八、blog
这里是否是写的有问题?是否是应该小于等于?ip
七、最后一根bar的时候是如何中止的?it
解答:最后一根bar出来,若是产生交易信号,会存到限价单或者中止单字典中,没有下一个bar出来,就不会交易。io
六、ctaBacktesting.py中的self.workingStopOrderDict和self.workingLimitOrderDict是如何来的?table
解答:是在回测引擎ctaBacktesting.py 的 sendorder() / sendStopOrder()方法倒数第二行代码添加进去的,即这个bar产生信号,把order信号保存进self.limitOrderDict或者self.stopOrderDict字典中。
self.limitOrderDict[orderID]=order
或者
self.workingStopOrderDict[stopOrderID]=so
五、运行strategyMultiSignal.py时出错:
Traceback (most recent call last): File "E:/vnpy0419/examples/CtaBacktesting/runBacktesting.py", line 42, in <module> engine.initStrategy(RsiSignal, d) File "E:\vnpy0419\vnpy\trader\app\ctaStrategy\ctaBacktesting.py", line 285, in initStrategy self.strategy = strategyClass(self, setting) TypeError: __init__() takes 1 positional argument but 3 were given
解决: 暂时放弃
四、运行时出错:
File "E:\vnpy0419\vnpy\trader\app\ctaStrategy\ctaBacktesting.py", line 304, in crossLimitOrder for orderID, order in self.workingLimitOrderDict.items(): RuntimeError: OrderedDict mutated during iteration
修改成:
workingLimitOrderDictCopy=self.workingLimitOrderDict.copy() for orderID, order in workingLimitOrderDictCopy.items():
三、运行strategyAtrRsi策略是出错
File "E:\vnpy0419\vnpy\trader\app\ctaStrategy\ctaBacktesting.py", line 566, in cancelAll for stopOrderID in self.workingStopOrderDict.keys(): RuntimeError: dictionary changed size during iteration
修改:
原来:for stopOrderID in self.workingStopOrderDict.keys(): 修改成: for stopOrderID in list(self.workingStopOrderDict.keys()):
二、运行runBacktesting.py出错
File "E:\vnpy0419\vnpy\trader\app\ctaStrategy\ctaBacktesting.py", line 839, in <lambda> tradeTimeIndex = map(lambda i: tradeTimeIndex[i], xindex) TypeError: 'map' object is not subscriptable
修改成:tradeTimeIndex=list(map(lambda i : tradeTimeIndex[i], xindex))
一、运行runBacktesting.py出错。
File "E:\vnpy0419\vnpy\trader\app\ctaStrategy\ctaBacktesting.py", line 374, in crossStopOrder for stopOrderID, so in self.workingStopOrderDict.items(): RuntimeError: dictionary changed size during iteration
解决: 修改成
# 遍历中止单字典中的全部中止单 workingStopOrderDictCopy=self.workingStopOrderDict.copy() for stopOrderID, so in workingStopOrderDictCopy.items():