跳到主要內容

發表文章

目前顯示的是 3月, 2018的文章

均值回歸的探討

最近在把MT5上的算法穩定下來. 希望能騰出時間轉到一些線上平台開發. 現在有愈來愈多的平台都提供線上的商品資料, 策略寫作, 回測的環境. 例如Quantopian, QuantConnect, Quantiacs, 等等. 每家幾乎都會舉辦競賽, 而得名的參賽者可以得到注資. 可以以自己開發出來的策略真倉交易, 並可以抽佣10%. 這就好像是公開的擂台比賽, 勝者為王, 讓一般散戶交易者也有機會成為基金經理人. 實際上很多基金經理人只是金融相關科系畢業, 難以在程式開發上有所表現, 在這個程式交易佔比愈來愈高的市場中, 未來被淘汰的機率很大 而這樣的平台也會有很多人分享自己的程式碼, 是個很熱鬧的園地. 大部份程式交易者都是以趨勢交易入門, 所以寫起均值回歸總是覺得不順手. 大家可以參考一下下面這個範例(如果文章被隱蔽, 請按左下的"Notebook") 均值回歸(Mean Reversion)的範例 這個策略開發時就選定了大豆粉和大豆油這兩種關聯性很高但又不完全同質的商品. 這兩種商品價格走勢會有很大的正相關, 有時會互相落後. 中間的價差稱之為壓榨價差(Crush Spread). 這和原油(Crude Oil)及汔油(Gasoline)的關係很類似. 中間也是差了個煉製或裂解價差. 所以在這兩種商品作組合交易的話, 可以確保彼此最後價差會回到某一個固定的區間, 不可能無限發散下去. 所以若是想開發均值交易最好就是找這樣高度正相關或負相關的商品對, 利用中間會有個不可能發散價差來保證均值回歸的特性.

值得推薦的訪談節目

做程式交易, 除了交易系統的觀念, 最重要的是找尋靈感. 下面介紹四個我常聽的Youtube頻道. 不過英文聽力要不錯就是了 Top Traders Unplugged Better System Trader Chat With Traders UKSpreadbetting 其中最後一個頻道裡的"Trading Tips"是最常更新, 每一集時間也最短. 適合當廣播節目在聽或純粹消遣,主持人介紹的方式算是生動有趣. 前面三個頻道就以訪談成功的交易者為主. 舉例來說像最有名的一位海龜交易者: Jerry Parker印象中這三個節目都有訪談過. 還有為數不少已經是開設專業投顧公司了. 聽這些節目訪談時, 建議要分類來聽. 例如我個人會先瞭解這些專業交易者最擅長那一種交易. 有些人擅常股票的日內交易, 持倉時間以分鐘為單位. 也有專門作原物料期貨的, 通常交易持倉時間可能會以月為單位. 因為從訪談裡可以瞭解, 很多原物料有季節性需求, 不然就是天氣因素干擾, 因此波段通常較長. 這樣子分門別類的去聽, 其實會發現重要的交易心態其實都大同小異, 但做法就因人而異. 另一件有趣的事是每個人原本的背景不同. 有計程車司機, 酒吧的調酒師, 工程師, 建築工人等等, 五花八門.

新驗證條件

舊策略品質要求 使用兩年半的資料作為樣本內(In-Sample)策略最佳化資料 使用六個用到九個月的最新資料作為樣本外(Out-of-Sample)前進分析(Walk Forward Analysis)資料  風險調整後回報(MAR=CAGR/RDD)必須大於二 每月平均進場交易次數約為四次 樣本內和樣本外的獲利和交易次數應按交易天數比例分佈 新增策略品質條件 新增樣本內前一年的資料為樣本外資料 前一年樣本外資料其交易次數為等比例 前一年樣本外資料之獲利必需大於零, 相對回撤比率(RDD)不得大於原樣本內和原樣本外的RDD. 暫時撤下了EurGbp和 EurAud這兩組策略, 因為這兩支策略對新增條件測試時, 回撤比例遠高於原樣本內和樣本外的表現. 另外目前組合中某些策略還有遲遲不進場交易的問題. 這表示檢測的型態雖在過去三年中時常出現, 但現在己經失效了. 若未來三周內仍然不進場交易的策略, 也會被列為開發失敗的狀態.

突破趨勢策略的變形: 擺盪策略

Swing Trading 最近這一周在原本的突破(Breakout)趨勢交易系統中, 加入擺盪策略. 也就是突破之後待拉回再進場. 比起單純的突破系統, 目前看來是進場交易的次數會增加, 用樣本外測試的結果也比單純的突破系統穩定. 原本有不少的突破進場的交易會因為拉回幅度太大而被停損出場, 出場之後又會回復向突破的方向運行. 如果只是單純放寬停損範圍, 又會讓交易的部位變小. 實作方法 在突破發生的時候, 同時掛入兩筆訂單. 一筆是原本突破時即會掛入的訂單. 另一筆則是 Buy-Limit 或 Sell-Limit 預掛單. 拉回的價位點目前是使用一倍ATR. 這樣假使第一筆訂單被停損出場, 這第二筆預掛單有機會適時再進場. 反之如果沒有拉回繼續突破一定距離之後, 就把原預掛單取消即可. 單純突破和擺盪後進場這兩種系統應同時使用較佳, 有互補的效果

非農數據反應和孤獨的程式交易者

非農數據發表: 實際313K vs. 預期200K 明明數據很漂亮, 應該可以讓美元走強, 沒想到EURUSD出現了大幅震盪後, 歐元反而走強. 所以昨天下的EURUSD空單就被這樣洗掉了, 小賺800鎂, 但另一張EURJPY被停損出場, 賠掉約150鎂. 雖然事前就知道後者EJ有很大的機率被停損但紀律上是不容許手動停損的. 總體來說這次的進出場表現符合預期. 孤獨的外匯程式交易者 搜尋國內各論壇, 發覺許多比較積極的外匯程式交易者, 大都活躍於2005到2015年之間. 這兩年反而沉寂許多. 即使有很多人作海外的期指, 農產, 貴金屬, 外匯, 但主流仍是以技術面加基本面分析後, 人工主觀下單進出的交易者為主. 一講到MT4/MT5的EA, 回測結果等等, 往往會被人調侃一番, 多數人認為EA的進出場條件都是根據歷史數據過度最佳化(Over Fitting), 所以EA的測試成果被認為是笑話. 雖然還有幾個外匯教學推廣的工作室, 但人氣也不高. 追根究柢, 也許是因為真的能持續獲利的EA真的不多. 但以個人經驗和數據來看, 其實EA是可以賺錢的. 原因很簡單, 因為匯率變動本身有一定的統計特性. EA作的事叫作"型態檢測"(Pattern Matching). 好的EA其檢測的型態必需要有可靠性. 以突破策略來看, 正所謂無風不起浪, 如果沒有新的數據或資金動能推動, 匯率應該會在原地整理. 但突然有型態突破就代表新的平衡價格正在形成. 也許平均檢測出十次裡有七次錯, 三次真的形成新的平衡價格, 但只要新的和舊的平衡價格間有足夠的價差, 那就提供策略賺錢的機會. 這是個很簡單的期望值問題. 其實這也是程式交易裡, 為什麼守紀律按照信號進出是如此的重要. 因為如果你懂什麼叫做RP, 你就不會想要去猜測到底那一次會成功, 也不會想要手動進出場. 而是專注於檢查這個EA的品質: 型態檢測器是否有效的檢測出這個貨幣對價格大幅波動時的特性.

Forex Strategy Builder進一步試用

進一步試用之後, 發現之前對Forex Strategy Builder (FSB) 的認知是錯誤的. 基本上FSB是一個高階的策略建構和產生器. 一般的策略產生器雖可用點選的方式產生策略, 但產生的策略仍需要回到MT4/MT5之中做進一步的最佳化或回測. FSB則內建相關的測試功能, 包含前進分析, 蒙地卡羅分析, 同時多商品績效回測, 並且可對所使用的指標或參數最佳化, 還可以使用一些過濾器來檢視不同的結果. 例如指定在某段時間交易或不交易這個策略. 而使用者可以很快的檢視新增指標或交易條件之後的預估績效表現. FSB也能產生策略, 且產生時間短, 但是數量少, 而且是像MACD轉正或MA Cross等看來十分合理的進出場條件. 然而問題也在此. 因為很合理, 所以可能是你曾經建立過的系統.  而StrategyQuant (SQ)則是只做原則設定, 例如可使用那些指標, 運算, 資金管理方式等等. 之後所有的事情就交給SQ來負責亂數產生. 基本上產生的交易條件可以天馬行空, 無拘無束. 但也因此有時會讓使用者不敢使用, 因為看Pseudo Code的內容, 有時你會覺得那些隨機產生的交易條件根本是胡說八道, 難以理解, 怎麼可能可以投入真實帳戶做交易? 所以對喜歡掌握EA的基本架構的人, 那就應該使用FSB. 而對基本架構不在乎, 只在意是否可以通過各項檢測的人, 就比較適合SQ. 就像交易策略一樣, 並沒有最好的策略, 只有最適合該交易者的策略. 有些人策略開發己有一定的心得和經驗, 想進一步建立各種不同的交易系統, 並且能夠很快的完成測試流程. 那FSB是很好的工具. 但如果開發策略有概念卻不斷失敗, 或是曾經成功, 但也使用FSB嚐試過不同想法仍沒有成果的話, 我想最後還是會嚐試使用SQ來開發看看. 其實這麼說來...未來等SQ玩熟了之後, 應該還是會購入FSB來玩玩.😃