田成志+胡元瑞
摘 要:程序化交易是證券市場上的熱門話題,但公開文獻對此研究較少,國內研究集中于使用傳統(tǒng)技術分析指標構建交易系統(tǒng)。本文嘗試另辟蹊徑利用震蕩交易行情在狹窄區(qū)間內運動的本質,分倉交易獲取整體利潤又以技術指標為輔助提高交易成功率,以編寫一個程序化震蕩交易系統(tǒng)。程序采用MetaQuotes Language 4 (MQL4) 語言編寫,交易測試平臺為外盤交易常使用的MT4平臺,交易品種為玉米(CORNUSD)現(xiàn)貨差價合約(CFD)。使用歷史數(shù)據(jù)對交易程序測試,結果顯示該交易程序具有穩(wěn)定的盈利能力。
關鍵詞:農產品差價合約;程序化交易;MQL4
一、研究背景
證券交易交易實質上是人與人的博弈,所謂“國之利器,不可示人”,在充滿資金博弈和利益角逐的證券市場就更是如此,少有人愿意將愿意將自己的交易策略公之于眾,實踐也告訴我們歷史上那些曾經能夠獲取超額利潤的交易策略在為公眾所知之后都逐漸失效(雷宗光,2007),因而學術界對程序化交易研究的公開資料稀少。
國內關于程序化交易的研究主要有:將國外成熟的交易系統(tǒng)用于中國市場尤其是A股和滬深300指數(shù)的測試,如將20世紀90年代在美國市場炙手可熱的海龜交易系統(tǒng)用于滬深300指數(shù)的測試(龍成,2015);使用經典技術分析指標構建程序化交易系統(tǒng),如王垚鑫(2013)用威廉指標構建用于滬深300股指期貨的交易程序、李成林(2013)將移動平均線(MA)用于上證50ETF的研究。
本文的嘗試不使用傳統(tǒng)技術指標作為程序化交易系統(tǒng)的根本策略,轉而思考震蕩行情的本質--在一定區(qū)間內的往復運動,利用這種往復運動構建一種簡單明了的交易規(guī)則在整個震蕩區(qū)間內獲取平均利潤,降低對技術指標所提供的精確入場時機的依賴,僅僅使用技術指標作為是否入場的信號過濾器。
二、交易工具
差價合約(Contracts for Difference,CFD),根據(jù)路透金融詞典的定義是:不涉及實物商品或證券的交換,僅結算價和合約價的差額作現(xiàn)金結算的交易方式(黃健洋,2013)。
差價合約的價格變化與對應標的物同步,持有差價合約的交易者并不擁有真實的商品或證券,買入或者賣出以外匯、股票、大宗商品為標的物的差價合約因此不涉及所有權的轉移,交易的盈虧全部以現(xiàn)金結算,不能進行實物交割。也就是說差價合約能讓投資者可以在不持有真實資產的情況下,獲得對應標的物的投資收益。
外匯差價合約的特點有:
1.高杠桿。外匯差價合約由做市商或經紀商提供,這些交易商允許投資者使用保證金進行交易。在純經紀商模式下,經紀商為投資者提供融資,比如經紀商允許投資者使用2%保證金進行交易,剩余的98%資金由經紀商提供并收取融資利息;在做市商模式下,做市商并不把全部合約投放到真實市場中,而是通過不同交易者的交易進行內部對沖,不能對沖的部分再投放市場或者由做市商自己作為交易對手方,做市商衡量交易風險后提一個不同于真實市場價格的報價給投資者,差價部分即為做市商的收益。做市商模式中沒有實際的融資發(fā)生,不收取融資利息。當前差價合約多數(shù)采取做市商模式,因而做市商能給投資者提供極高的杠桿,美國全國期貨協(xié)會(NFA)規(guī)定的外匯CFD最高杠桿倍數(shù)為50倍,英國金融服務管理局(FSA)允許的最高杠桿為400倍,在新西蘭、俄羅斯、塞浦路斯等國家的監(jiān)管則更為寬松,在當?shù)刈缘慕灰咨棠芴峁?000倍甚至2000倍的杠桿(李樂,2009)。
2.無到期日。差價合約不同于期權期貨,有固定的交割日,在交割日到來之前價值會不斷降低或者價格波動不斷趨于現(xiàn)貨價格。差價合約沒有到期日,能夠無限期持有,因而也被成為現(xiàn)貨期貨。投資者能夠按照自己的投資目標自由安排持倉時間,只要保證金充足就能繼續(xù)持有合約直到自愿離場。沒有確定的到期日就給交易者提供長期持倉的自由,對比期權期貨等衍生品合約具有顯著的優(yōu)勢(姜濤,2009)。
表1信息為某交易商提供的交易條件。
玉米差價合約交易單位為手,1手合約的價值為10萬美元,報價方式是4位數(shù)報價法,如報價3.675的含義是3.675美元每蒲式耳,報價的第四位數(shù)為1點(房瑞景,2007)。通常交易商接受最小交易單位為0.01手的交易單。點差是交易商的利潤來源,交易商提供的CORNUSD點差為1點,如果投資者需要買入該合約,市場報價為3.675則交易商提供給投資者的買入價格是3.676。
玉米CFD保證金占用率極低帶來了很高的資金利用率;合約無到期日,可以在整個震蕩期內實施策略,因此本文選用玉米CFD作為交易測試品種。
三、程序化交易模型和交易程序
1.程序化交易平臺
Meta Trader 4(MT4)是由MetaQuotes Software公司在2005年推出的行情接收軟件,是目前使用最廣泛的外盤交易軟件(戴夫,2013)。外匯零售市場90%的交易都是通過MT4完成,它流行的原因有界面簡潔卻功能強大,能方便的查看各個時間周期的行情,繪制各種技術指標、使用各種技術分析工具,同時整合行情分析和交易功能做到所見即所得,投資者觀察到行情發(fā)動可以立即在行情界面下單,交易數(shù)據(jù)顯示在行情界面;更重要的MT4軟件內嵌了MQL4語言,用戶可以使用該語言編寫自動化交易程序、腳本、指標,在MT4內完成測試、修改、掛機執(zhí)行(Blackledge J,2011)。MQL4語言是一種面向過程的語言,它的高效執(zhí)行和編寫的自由度都逼近專業(yè)的計算機編程語言,可以認為是簡化版的C語言(Eka H,2013)。
本文使用MT4作為交易測試平臺,MQL4語言作為自動化交易程序編寫所用的計算機語言。
2.程序化交易策略
分倉策略是一種忽略擺動指數(shù)提供的入場時機和精確入場點位,而利用震蕩行情總是在狹小區(qū)間內來回波動的特性,通過分倉攤平成本,最求整體判斷正確獲取平均利潤的震蕩交易方式(John J.Murphy,1994)。
(1)依據(jù)其走勢的復雜程度將整個震蕩走勢劃為等分,震蕩走勢越簡單劃分的份數(shù)就越少,若價格在震蕩區(qū)間內是最簡單的直上直下就不需要劃分(肖斌卿,2010)。
(2)綜合判斷趨勢和政治經濟環(huán)境確定價格走勢的趨向性,在震蕩區(qū)間內僅進行多頭交易或空頭交易。
(3)在等分的區(qū)間上部、中部、下部分別的下半部分開立多頭頭寸,固定止盈為略小于三分之一震蕩區(qū)間,若出現(xiàn)虧損則在下一個交易區(qū)間執(zhí)行補倉操作,頭寸分布比例為1:2:4或者1:1.5:2.25。最多允許同時持有三個頭寸。
(4)當價格突破震蕩區(qū)間,結束震蕩交易策略,了結所有頭寸。
3.交易程序屬性
4.交易程序思想
該程序的基本交易方法是在整個震蕩區(qū)間內等距加倍分布頭寸,以虧損加倉方式攤平成本來獲得整體利潤(崔健,2015)。
(1)進場策略
使用虧損加倉的分倉交易策略優(yōu)點是能夠攤平成本使凈值表現(xiàn)穩(wěn)定,但在極端情況下凈值曲線會出現(xiàn)巨大回測。因此在分倉交易中第一筆交易的成功率很重要,第一筆交易成功就不需要虧損加倉,也不會出現(xiàn)加倉導致的風險暴露成倍放大。使用擺動指數(shù)的震蕩交易策略優(yōu)點是成功率高,所以該交易程序使用了MACD指標作為過濾器,只有在MACD發(fā)出買入或賣出信號后程序才會開倉進行第一筆交易以提高止盈成功率(Victor.sperandeo,1999)。
后續(xù)加倉只有在達到預設的加倉距離后才能開立頭寸,交易方向與第一筆交易相同。
(2)出場策略
該程序出場策略分為兩個,被動離場策略和主動離場策略。
被動離場策略,程序提供了應對極端狀況的保護性止損,由程序使用者自行設定。一般設置在震蕩區(qū)間外一定距離,當價格發(fā)生不利變化突破震蕩區(qū)間,程序在止損位平倉所有頭寸(科林,2010)。
(3)主動離場策略
①固定點數(shù)止盈。固定止盈點數(shù)為震蕩區(qū)間的某個比例,分倉交易中一組交易單的最新一筆達到止盈點數(shù),對該組交易內所有頭寸進行平倉鎖定利潤,降低風險暴露。等待下一次MACD發(fā)出入場指令,開始下一次分倉交易(羅威,2016)。
②固定點數(shù)追蹤止盈。程序提供追蹤止盈功能,當利潤大于(固定止盈點數(shù)+追蹤止盈點數(shù))時進行追蹤止盈,當利潤回測點數(shù)>=追蹤止盈點數(shù)時主動平倉保護利潤(李曉楓,2012)。
③主觀監(jiān)控的結束策略使用。震蕩走勢不可能永遠持續(xù),為了避免震蕩走勢結束時的資金凈值曲線劇烈波動,交易程序使用者應該根據(jù)預估的震蕩持續(xù)時間、綜合判斷國際經濟形勢、該國經濟的繁榮與蕭條、貨幣當局可以采取的措施,價格圖形發(fā)出的信號以主動結束震蕩策略的使用,轉而積極準備趨勢交易。一個值得關注的技術指標是波動率,震蕩走勢實際是波動率的下降,統(tǒng)計數(shù)據(jù)證明,趨勢行情開始前的價格波動率往往是最低點,所以當價格波動率降到極低就應該高度警惕(鄭振龍,2010)。
四、交易程序測試
選取CORNUSD,2015年9月14日-2016年4月20日的走勢作交易測試。作斐波那契數(shù)列,在回調50%的價位開始震蕩交易。震蕩區(qū)間為3.431-3.897,振幅大概為460點。該輪上漲后期漲勢比較糾結,由此判斷震蕩走勢趨于復雜,將震蕩區(qū)間5等分,固定止盈點數(shù)和開倉間隔略小于1/5區(qū)間為80點。僅交易多頭。
1.整體表現(xiàn)
從表3的各項指標可以看出,分倉策略震蕩機交易系統(tǒng)的各項數(shù)據(jù)都達到了優(yōu)秀水平。
模型最大的優(yōu)點是盈虧比,通常程序化震蕩交易系統(tǒng)的盈虧比能達到2就很不錯了,盈虧比為3就是很優(yōu)秀的水平,分倉震蕩交易系統(tǒng)的盈虧比達到了5.59,甚至超越了表現(xiàn)優(yōu)秀的趨勢交易系統(tǒng)所能實現(xiàn)的盈虧比,而且這些趨勢交易系統(tǒng)的高盈虧比往往是建立在低勝率基礎上的(楊寶明,1992)。
其次使用擺動指數(shù)MACD作為信號過濾器,交易程序勝率為53.43%,達到了程序化震蕩交易系統(tǒng)的一般水平。
2.圖表分析
資金凈值曲線
分倉策略震蕩交易程序的資金凈值曲線表現(xiàn)穩(wěn)健,幾乎以線性增長,這符合策略設計的原理和構想。模型設計是以小止盈逐筆兌現(xiàn)利潤,所以出現(xiàn)資金曲線的穩(wěn)定增長、凈值和余額回撤都極小是在意料之中。該類資金曲線符合投資者要求看到凈值時刻上升并且長期穩(wěn)定上升沒有重大回撤的心理,易于使用者對策略的堅持。
該段震蕩走勢最終是以向上突破結束的,這符合我們對震蕩走勢趨向性的判斷,因此凈值曲線表現(xiàn)良好。但如果出現(xiàn)判斷錯誤,震蕩走勢最終以反向突破的情況,在結束策略執(zhí)行的階段會出現(xiàn)明顯的凈值回撤。
3.交易盈虧分布圖
盈虧分布圖中,由于采用固定點數(shù)止盈,盈利主要分布在62、125、252三個區(qū)域。在62附近止盈代表著入場即成功實現(xiàn)盈利目標,在125附近止盈的交易是在虧損狀態(tài)下加倉一次的交易,而盈利在252附近的交易是在虧損狀態(tài)下兩次加倉的交易。總體來看盈利交易共31筆,加倉2次的交易8筆,占25.8%,多數(shù)交易可以直接止盈或者僅加倉一次,這說明策略整體風險暴露處于較低水平,能夠有效降低極端情況下出現(xiàn)巨額虧損的概率。
五、總結
經歷史行情數(shù)據(jù)回測,使用分倉策略的交易程序能夠在震蕩行情下獲得穩(wěn)定的盈利表現(xiàn),但是獲得這種穩(wěn)定盈利的概率與對震蕩行情的正確判斷高度相關。這種對震蕩行情、趨勢行情的準確判斷和預測通過計算機程序是難以完成的,因為持續(xù)時間在數(shù)月的震蕩行情都有其經濟根源,這種震蕩行情的打破也往往與重大的經濟事件相關,所以本文在策略的設計中將這項任務交給人來完成。交易的核心是人,使用該交易程序的投資者需要時刻關注市場環(huán)境的發(fā)展變化,交易的成功源自于個體對市場的正確判斷,該交易程序不能在判斷錯誤后幫助投資者一次又一次僥幸的逃過虧損。
參考文獻:
[1]雷宗光.證券交易策略博弈研究[D].武漢理工大學,2007.
[2]龍成.基于海龜法則的量化模型研究[D].廣西大學,2015.
[3]王垚鑫.滬深300股指期貨程序化交易模型設計[D].西南財經大學,2013.
[4]李成林.移動平均線交易策略有效性比較研究[D].上海交通大學,2013.
[5]黃健洋.我國引入差價合約的可行性研究[D].河北大學,2013.
[6]李樂.介紹一種新型的金融衍生工具--差價合約[J].經濟研究參考,2009(28):37-39.
[7]姜濤,任榮明.差價合約交易研究[J].價格理論與實踐,2009(6):57-58.
[8]房瑞景,崔振東,周腰華,等.中美玉米期貨市場價格發(fā)現(xiàn)功能的實證研究[J].價格月刊,2007(12):16-20.
[9]戴夫,C.MT4自動交易[M].中國經濟出版社,2013.
[10]Blackledge J, Murphy K. Forex Trading using MetaTrader 4 with the Fractal Market Hypothesis[J]. Dublin Institute of Technology, 2011:1-9.