上週,咱們給你們詳細講述了量化交易策略的類型。今天,咱們將介紹應該要如何開發一套完善的量化交易策略。程序員
做者「黃金EA量化」,程序員出身的量化交易者。2015年開始從事量化交易,主作黃金外匯、國內商品期貨等衍生品的程序化交易。投資邏輯——經過數據挖掘,自下而上,運用數學,物理學和統計學知識創建算法交易系統。此外,他基於算法,程序化研究出ALGOTRADER自動化交易系統。算法
如何開發一套可以穩定盈利的量化策略?編程
俗話說,耳聞不如眼見,眼見不如實踐。若是你具有了基礎編程知識,掌握一些編程語言,像JAVA、Python、MQL、TB公式、C++等,熟悉一些投資工具,又特別喜歡鑽研,那麼徹底能夠去開發一套交易策略,甚至是作到穩定盈利的策略。編程語言
固然,如何開發一套可以穩定盈利的交易策略?這個的確沒有那麼簡單,作到盈利仍是能夠的,但想要作到長期穩定盈利,就要考驗你的研發能力以及對交易自己的認知水平。適合本身的策略纔是最好的策略,不妨從這個角度入手,去開發一套適合本身的交易策略。函數
1選擇一個投資品種工具
必定要選本身熟悉的投資品種,最好是之前交易過的品種或者感興趣的品種,願意花時間去關注品種的行業、品種的過去與現狀等,瞭解這個品種的流動性、交易量和波動率。從各個維度去分析這個品種,而後肯定做爲開發策略的目標。性能
2經過品種去評估並找適合的量化策略測試
是作日內、短線仍是中長線?是作趨勢模型仍是震盪模型?還要綜合考慮策略研發的難易。從本身的角度出發,好比,能承受多少的心理虧損;頻繁止損仍是浮虧對本身心理的影響,哪一個是可以接受多一點。spa
例如:設計
趨勢類策略,比較容易實現,止損頻繁,勝率低,盈虧比大,適合大週期使用;
馬丁類網格類策略,適合震盪行情,勝率高,盈虧比小,每一筆盈利小,浮虧會很大,須要計算風險趟口,儘可能用在黑天鵝事件少的品種上;
算法交易類策略,須要綜合的數學、物理和統計學知識,並且可以靈活使用這些知識用於設計模型,考驗獨立思考的能力和敏銳的洞察力,還要很強的動手能力。由於幾乎沒有現成的案例可讓你參考或者模仿。
3開發模型
選好了品種和交易策略類型,剩下的時間就是投入到設計算法、編寫代碼和測試,統稱爲開發階段。這個階段,要圍繞這幾個要素進行:
歷史數據
儘可能完整的歷史數據,至少採集知足三年以上連續的歷史數據。
時間週期
作外匯黃金,週期仍是選擇儘可能大,至少30分鐘以上的週期纔有保障;除非你能夠購買到或者採集到的歷史數據精確度很高,不多出現跳空的K線數據。做爲我的開發者,建議選擇大週期開發,就是避免數據的不完整性致使的各類問題。
避免偷價和將來函數,策略高度擬合
構成入場出場信號的依據,應該是已經發生的K線數據進行的指標計算或者算法邏輯運算。簡單的說,就是儘可能使用上一根K線之前的數據作量化分析,當前K線還在進行中,做爲條件就有偷價或者將來函數的可能,這些會嚴重影響到策略的真實可靠性。
算法的創建,應該基於統計學意義,而不是適配某一段行情作限制性條件,那樣就是擬合了。擬合併不會適應將來的行情發展。
合理的盈虧比、勝率和夏普率
若是你開發出來一套策略,經測試發現勝率很高,盈虧比也很大,那麼確定是有問題的,就要考慮是否是偷價的模型,須要重複仔細驗證。
趨勢策略,勝率都小於40%,盈虧比能達到2以上;
馬丁類策略,那麼勝率就會比較高,至少80%以上,盈虧比一般是1.2-1.5左右;
算法交易,勝率介於二者之間,盈虧比通常超過1.5;夏普率應該維持在2以上,才能確保盈利是穩定的。
另外還要考慮到如何去克服實際交易中的點差、手續費成本問題。最好的辦法就是提升盈虧比,減小交易次數。
最大回撤
最大回撤應根據實際狀況進行設置,沒有一勞永逸的控制辦法。
若是編程能力強的,儘量將回撤條件用程序控制實現,參數化、流程化實現。若是硬要將回撤控制5%或者10%,我估計你的回測效果不會好到哪裏,除非回測時長很短。這個就是行情匹配的問題,行情永遠在變,所以要學會管理你的策略,運用好它。
歷史回測
這個主要看盈虧比,最大回撤和淨值曲線來判斷,研發的策略是否符合本身的要求,或者是否達到設計目標。通常回測分爲週期內、週期外、跨期回測。
週期內回測主要是配合策略的測試調試,用於調試策略的歷史數據週期;
週期外回測,是指將測試好的策略單獨使用一段新的歷史數據進行的回測,看看淨值曲線是否一致;
跨週期內外,進行一次總體回測,也是觀察回測曲線是否表現一致。若是獲得結果類似或者達到設計目標,則說明策略是一個正指望值的交易策略。
不過,真正的表現還得看模擬測試和實盤交易。
4模擬驗證交易
通過開發階段,而後就是模擬測試階段。實時監控成交記錄,對交易數據統計發現問題並改進,對實盤交易中可能出現的問題提早制定相應的預防和解決措施。
綜合考慮測試結果的各個性能指標,不能太看重某一個性能指標,以下面兩個策略測試結果:
上圖雖然夏普率9.12,可是最大回撤24.41%,這與策略自己的思想有關。
上圖雖然夏普率爲6.8175,低於第一張圖的策略,但在相同倉位控制條件下,最大回撤減少6倍。
5實盤資金交易
其實最主要仍是控制風險,控制了風險及回撤,那這個策略就算是穩定的策略,讓時間成爲你的朋友,財富是慢慢積累的。
一、關注交易品種的產業鏈數據和新聞等不固定公佈時間公佈信息,統計相關信息數據的理論正常值,出現異常時立刻採起措施。
二、關注交易品種的產業鏈數據和新聞等固定公佈時間公佈信息,如EIA數據、原油鑽井數量數據、美國非農數據等,在數據公佈先後及時平倉,保護盈利利潤。
三、關注政治風險、軍事衝突、天然氣候災害,若有重大事件應立刻採起天制定好的措施(現在年英國退歐、美國大選、中東敘利亞戰爭、伊朗石油解禁、美國頁岩油政策等)
四、針對人爲帶來的影響因素如斷電斷網等制定緊急措施。
五、針對以上風險確認以上風險事後,制定再入場時的補倉策略。
六、實時監控,按期檢驗。
如何辨別量化交易策略的好壞
若是你從頭閱讀到這裏,相信你們心中已經有了本身的那個聖盃。適合本身的策略就是好的策略。
一個策略,不是看見它短期內暴利就是優秀,也不能說一個策略它天天穩賺百分之幾就是穩定的。要從多個維度來評判一個策略是屬於優秀、良好、及格仍是不及格。風險與收益永遠是投資的主題,從這方面來講,能夠分爲如下一些評判條件。
1時間維度
久經時間考驗,經歷過各類行情的顛簸,策略有沒有所以而致使大虧損或者不盈利,甚至變爲虧損,策略有沒有失效。若是通過幾年,策略仍然能取得不錯的收益,例如,年均10%-30%,那麼這個策略應該是值得信任的。
2收益率
在時間維度上,取得很少的收益率,但前提是這個收益率是名義收益率仍是實際收益率。就是說,根據你的交易次數、盈虧比、最大回撤,計算一個夏普比率,夏普比率是否及格了。夏普比率是衡量交易模型的收益率是不是穩定的,若是爆賺爆虧,夏普比率就會偏低。
3資金量
小資金的穩定收益,能夠說是一種名義收益率。小資金的交易環境要求很低。這個你們都明白,對交易心理影響不大,例如,剝頭皮交易,小資金很容易快進快出,可是資金量一大,剝頭皮策略就有可能不太適用了。
4盈虧比
你們其實不用太關注勝率,勝率只是盈虧比的附屬品。盈虧比決定了你的策略可以長期得到正指望收益。理論上講,盈虧比越大策略的正指望值越好,盈利能力越強,抵抗回撤的能力也越強。
5夏普比率
這個就是說明,相同的回報,所要承擔的風險水平。無風險回報固然是最理想的,但現實與理想總有差距。固然夏普比率越高越好,聽說達到3以上,就證實你的策略可以達到月月盈利。
6最大回撤
分爲最大回撤率和最大回撤值。小資金就要看最大回撤值,大資金就看最大回撤率。
基金的要求通常都是控制在10%回撤之內,可是作外匯的,我以爲這個值能夠儘可能大一點。其實最保險的方式,就是賺了部分出金,物理阻斷回撤風險。用EA控制回撤,就好像紙上談兵,不靠譜。由於外匯槓桿式交易,對用戶是最不公平的,點差、上下影線,均可以將你打回解放前。
7多品種組合、多策略組合
相信你們會明白,一套策略應用在不一樣的投資品種,或者由不一樣的策略組合成爲多策略組合的投資方案。
這種對衝交易策略,也是能夠大大提升收益率,減小回撤風險,從而實現穩定盈利。通常選擇有互補性行情的品種或者策略多樣性的,例如:趨勢策略和震盪策略混合着用,從時間上,錯開同時下單建倉的風險。這個就有點想算法交易,一次下單手數過重,那麼頭寸風險趟口就比較大了,心理上負擔也會很重,不利於行情的波動。
總結
量化交易,量化是手段,交易結果是目的。量化的優點,就是把人從重複性、繁雜性的工做中解放出來,聚焦更重要的決策。
可是,不論手工交易仍是量化交易,都要面臨克服人性這個難題。克服人性也是交易的永恆主題,作交易的互勉吧!