重磅更新來襲!WonderTrader新版本v0.4.0全新發布

今天(2020年7月6日)WonderTrader發佈了最新版本,有兩個重大更新python

v0.4.0更新以下:

  • 新增一個選股調度引擎,用於調度應用層的選股策略,獲得目標組合之後,提供自動執行服務,暫時只支持日級別以上的調度週期,執行會放到次日
  • 由於新增了選股調度引擎,因此全面重構WtPorterWtBtPorter導出的接口函數,以便調用的時候區分
  • 新增一個獨立的執行器模塊WtExecMon,並導出C接口提供服務。主要是剝離了策略引擎邏輯,提供單純的執行服務,方便做爲單純的執行通道,嫁接到其餘框架之下
  • Windows下的開發環境從vs2013升級到vs2017boost1.72curl須要同步升級

兩個重大更新簡單說明:

  • 選股引擎,也叫作時間驅動引擎,主要用於執行定時的較大計算量的任務,好比多因子選股等,因此WonderTrader內部也命名爲選股引擎,相應的策略基類也叫作BaseSelStrategy,而策略的API接口也相應叫作SelContextweb

    • 選股引擎主要的適用於須要大量計算的場景,比較典型的就是選股場景。選股引擎底層採用異步回調,策略的計算邏輯能夠擁有更多的執行時間,而不用擔憂將行情通道和交易通道阻塞。相對比的,原來提供的Cta引擎,主要是經過事件驅動(ontick/onbar/onschedule)同步回調,要求策略邏輯儘量簡潔,耗時短。
    • 選股引擎回測代碼示例以下json

      from wtpy import WtBtEngine
      from Strategies.DualThrust_Sel import StraDualThrustSel
      
      if __name__ == "__main__":
          #建立一個運行環境,並加入策略
          engine = WtBtEngine(isCta=False)#isCta主要用於標記是CTA引擎仍是SEL引擎
          engine.init('.\\Common\\', "configbt.json")
          engine.configBacktest(202005150900,202006051500)
          engine.configBTStorage(mode="bin", path="E:/WTP_Data/")
          engine.commitBTConfig()
          
          # 建立一個選股策略,實際上是一個DualThrust的變種,經過遍歷目標標進行DualThrust的計算邏輯來實現
          straInfo = StraDualThrustSel(name='DT_COMM_SEL', codes=["CFFEX.IF.HOT","SHFE.rb.HOT","DCE.i.HOT"], barCnt=50, period="m5", days=30, k1=0.1, k2=0.1)
          engine.set_sel_strategy(straInfo, time=5, period="min")
      
          engine.run_backtest()
      
          kw = input('press any key to exit\n')
      
          engine.release_backtest()
  • 獨立執行器是另外一個重大更新。獨立執行器的意義在於:不管你用何種策略框架產生的信號,你都可以很輕鬆的調用獨立執行器來執行信號。這就從根本上爲遷移平臺存有顧慮的用戶提供了一條捷徑,尤爲對於那些想要提高本身的管理效率,可是又沒有合適的技術框架的用戶來講,這絕對是一個巨大的利好。flask

    • 對於已經有成熟策略在別的平臺上實盤的用戶,若是有相似的需求:一套策略須要在多個帳號上運行,通常平臺上只能運行多個策略實例,每一個實例對應一個交易帳號,可是這樣管理效率很低,想要重構原框架,開發能力和精力都不容許,開發完成之後還須要測試,遷移別的平臺又意味着所有策略重寫,那麼獨立執行器就能幫你完全解決這個問題。
    • 對於日級別以上的策略類型,特別是選股策略。就能夠經過獨立執行器就能簡單實現調倉的目的。
    • 獨立執行器調用代碼示例以下框架

      from wtpy import WtExecApi
      
      if __name__ == "__main__":
      
          execMon = WtExecApi()
      
          execMon.initialize("logcfgexec.json")
          execMon.config("config_exec.json")
          execMon.run()
      
          execMon.set_position("CFFEX.IF.2007", 1)
      
          input('press any key to exit\n')
          execMon.release()

下一階段的計劃

  • 將高頻策略引擎WtHftEngine導出到python
  • 交易通道數據落地
  • wtpy中會提供一個內置的基於flask的服務引擎,在此基礎上實現一套webui,方便初學者調用
  • 繼續完善文檔
相關文章
相關標籤/搜索