vnpy交易學習接口(2)


#來源於github下載vnpy版本  20180413

11、多投資標的情況下,該如何修改?

 

 

10、stop和limit報單有什么區別呢?

 在交易時用得最多的是二類定單,第一類是市價單(Market Order),就是用市場現在的報價成交,這類定單非常簡單易懂,不需要多作解釋,但第二類的定單相對比較復雜一點,它包括二種定單,一種是限價單,一種是止損單。
       限價單和止損單都屬於掛單,也就是用市場以后可能會出現的價格成交,如果設定的價格不出現則不成交,一旦設定的價格出現,掛單就自動轉成市價單而成交。

9、哪里可以看到成交明細?

 

8、

這里是不是寫的有問題?是不是應該小於等於?

 

7、最后一根bar的時候是如何停止的?

解答:最后一根bar出來,如果產生交易信號,會存到限價單或者停止單字典中,沒有下一個bar出來,就不會交易。

 

6、ctaBacktesting.py中的self.workingStopOrderDict和self.workingLimitOrderDict是如何來的?

 解答:是在回測引擎ctaBacktesting.py 的 sendorder() / sendStopOrder()方法倒數第二行代碼添加進去的,即這個bar產生信號,把order信號保存進self.limitOrderDict或者self.stopOrderDict字典中。

self.limitOrderDict[orderID]=order
 或者
self.workingStopOrderDict[stopOrderID]=so

 

5、運行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

解決: 暫時放棄

 

4、運行時出錯:

  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():

 

3、運行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()):      

 

2、運行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))

 

1、運行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():

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM