blackcat1402

大道至簡:六分儀座策略回測框架正式發佈

SZSE:000001   平安银行
技術指標和策略進行回測是瞭解一個量化策略最常見的方法。但是,對於很多量化工具回測繁複的配置和適配工作,讓很多並不瞭解代碼的交易者望而生畏。況且雖然我寫了不少的策略,仍舊對於回測配置和編寫效率並不十分的滿意。所以,我一直思索如何搭建一套能夠快速簡單評估任何一個具有“買賣點”指標回測性能的回測框架,也就是“傻瓜式的回測工具”。性能要求要穩定,操作要簡單方便,最好就是"複製",“黏貼”,“點幾下滑鼠”就可以完成一個新指標的快速回測和評估。

回測框架構思
 幸運的是,最近我意識到TradingView提供了“Indicator on Indicator”的功能,這簡直是做“熱插拔”回測的完美基礎。我的基本構思就是採用雙層設計。第一層為需要嵌入的技術指標信號源,只用來提供自定義策略的買賣信號;第二層為交易系統,用於接收第一層的輸出信號,並且以統一的規範,進行信號篩選濾波,止盈,止損,繪製買賣信號和成本線,定義和發送自定義的買賣告警消息到手機,社交軟體或者交易介面上。總的來說,這個雙層設計是“一死一活”的靈活搭配,可以滿足大多數交易者要快速評估某個技術指標性能需求。這裏第一層是靈活的,用戶按照我的範本插入自己的策略代碼,就可以繪製買賣信號和輸出到第二層。第二層是固定死的,整體框架固化保證了交易系統的穩定性,統一性,方便以相同的條件對比不同或者相似的策略,最終將所有的交易信號繪製在圖表上上,並且輸出策略回測報告。這個回測框架需要自定義指標作為第一層和第二層交易策略控制層同時工作,才能夠實現回測的功能。第一層能夠單獨顯示運行,而第二層不能夠獨立使用,必須依賴第一層運行。

雙層架構的主要功能
圖表先導入第一層。第一層:"{Sextan} Your Indicator Source", 腳本提供個性化策略輸入的範本,而信號和定義介面保證了和第二層的完全相容,只要你按照格式進行輸入,就一定能夠在第二層的回測框架中穩定地進行回測。第一層的這個腳本也相對簡單:在突出顯示的自定義腳本區域輸入你的腳本,保證最終的買賣信號 long = bool condition, short = bool condition後,就認為完成了第一層的設計工作。將其輸入到TradingView的PINE腳本編輯器保存並添加到圖表,可以在副圖上看到以黃色(買),紫色(賣)的脈衝序列,對應主圖,可以主觀判斷策略的買賣點品質好壞。

圖表導入第二層。第二層:"{Sextan} PINEv4 Sextans Backtest Framework". 這個腳本就是標準化的交易系統策略執行和告警,用於生成策略回測最終的報告和我自定義的一些覺得有用的關鍵指標,例如:勝率,賠率,贏面,凱利比例,根據凱利公式評估止盈和止損門限值,交易頻率等。要使用第二層,首先將其加載到TraingView圖表中,這時圖表上不會顯示任何標記,因為你還沒有指定任何策略源信號,點擊"{Sextan} PINEv4 Sextans BTFW" 標題邊上齒輪狀設置按鈕,就可以打開回測設置,第一項就是選擇你的自定義策略源。因為上一步我們已經將策略源添加到了圖表中,所以,你可以很容易的在列表最下麵發現一個選項"{Sextan} Your Indicator Source: Signal",這就是我們需要的策略源輸入,選擇並確定,就可以在主圖上看到各種標記,並且快速生成回測收益圖和回測報告列表了,你可以生成檔,並下載回測報告到本地。你也可以在回測圖表介面點擊齒輪,對回測的一些條件進行自定義設置,這些包括:初始資金數量,貨幣類型,每次下單百分比,金字塔加倉數量,傭金手續費,滑點等配置。注意:在介面對話框中的配置會覆蓋回測腳本中的代碼實現的相同配置。

  在第一層和第二層建立聯繫共同工作後如何讀圖呢?第一層:"{Sextan} Your Indicator Source", 這個腳本的輸出就是黃色和紫色的脈衝值,黃色+1表示買,紫色-1表示賣。
    第二層:PINEv4 Sextans Backtest Framework".  這個腳本輸出有些複雜,畢竟是整個交易系統,資訊量很大:
    1. 藍紅字箭頭。藍色向上箭頭表示做多, 紅色向下箭頭表示做空,紫色箭頭末端有橫杠的表示止盈或者止損退出。
    2. 紅綠線。這是策略的持倉成本線,綠色表示多頭持倉成本,紅色表示空頭持倉成本。成本線是連續的實線和價格走勢比較接近。
    3. 綠黃做多止盈止損區域和綠黃做多止盈止損叉叉。一旦多頭持倉,就有止盈止損的條件單,綠色橫線為做多止盈比例線,黃色為做多止損比例線;綠色叉叉表示做多止盈價位,黃色叉叉表示做多止損價位。值得注意的是,叉叉和線不一定在一起。因為演算法優化,對於強勢的行情,止盈會發生在突破止盈線後,直到價格回落時候再止盈。
    4. 紫紅做空止盈止損區域和紫紅做空止損叉叉。一旦空頭持倉,就有止盈止損條件單,紅色為做空止盈比例線,紫色為做空止損比例線;紅色叉叉表示做空止盈價位, 紫色叉叉表示做空止損價位。
    5. 除了以上標識,還有文字和數字表示做多和做空的盈虧數值。"L"表示做多;“S”表示做空;“XL”表示平多;“XS”表示平空。
  第一層自定義指標模組非常簡單,代碼如下,只要替換相關部分即可快速評估這個指標的回測性能。

TradingView策略測試器面板:
1. 概覽圖是將所有回測期間藍色(收益)和紅色(虧損)曲線繪製在一起表示的直觀圖表,並且注有:淨利潤絕對值和百分比,所有已經平倉的數量,勝率,盈利因數, 最大交易虧損,平均交易盈虧絕對值和比例,全部交易的平均持倉K線根數。
 2. 另外一個就是績效總結。這是以列表形式展現回測所有做多,做空統計指標,例如:淨利潤,毛利潤,夏普比率,最大持倉,傭金,盈虧次數等。
3. 最後是交易清單是以交易序號為索引的表格,展現了信號方向,日期時間,價格,盈虧,累計盈虧,最大交易獲利,交易虧損等數值。

這只是這個模式的開始,我會不斷優化第二層的交易系統,歡迎提供各種優化回饋和建議,對於有價值的回饋,我願意提供L4/L5免費訂閱許可權的獎勵。

Avoid losing contact!Don't miss out! The first and most important thing to do is to join my Discord chat now! Click here to start your adventure: discord.com/invite/ZTGpQJq 防止失联,请立即行动,加入本猫聊天群: discord.com/invite/ZTGpQJq
免责声明

这些信息和出版物并不意味着也不构成TradingView提供或认可的金融、投资、交易或其它类型的建议或背书。请在使用条款阅读更多信息。