技術分析之算法交易策略的七個要點

隨著計算機技術的發展,算法交易變得越來越流行,盡管現在使用這種新型交易方法的人還不多,且入門的門檻相對也比較高。軟件算法,其實,是世界上那些相當聰明的人,通過他們的邏輯思維,寫出的代碼,或許這要比我們一般的普通人要厲害得多。每個喜歡并關注交易的人,都應該去了解一下算法交易這個技術,并了解其設計的原理和方法,進一步用來優化自己的交易系統。以下是文章。

原文出處:算法交易策略的七個要點? 2019年2月5日 09:19

摘要:筆者將在文中簡單介紹算法交易需要注意的7個要點,如風險管理、市場選擇、倉位調整以及回測等內容,并舉例說明筆者的一些實際操作。

1.風險管理

在制定交易策略時必須確保你能承受的風險有多大。通過計算如果你所有的頭寸都被平倉,賬戶將會損失多少來衡量和跟蹤所有的未平倉風險。一般而言,投資者可以根據頭寸和整體投資組合來衡量和調整風險。這也意味著:如果所有倉位都被止損出場,你也能提前了解自己所遭受的損失占據賬戶的百分比。

舉個例子來看:

假設你每筆新交易的風險是賬戶總額的0.5%,這個例子中的交易策略—跟蹤止損單(trailing stop)是基於某段時間X的最低價位來跟蹤Y時期的止損。在變動緩慢或盤整的市場中,該交易策略設置的止損將接近價格;隨著時間的變動,風險將減少。在拋物線形態的波動(parabolic moves)中,價格和風險將快於跟蹤止損。

此時,未平倉頭寸面臨的風險可能是0.5%至該數字的幾倍,如果沒有進一步降低這種交易風險的機制,當該筆交易迅速回吐此前所有的收益時,投資者的賬面和心理都有可能會遭受重大創傷,尤其是投資者多個頭寸都從這種交易策略中受益時。

實戰交易不應人云亦云,每個交易者都應該對自己有信心并按自己的交易計劃進行,DailyFX高級指南為你總結四大要點,點此下載獲取

對於算法交易員來說,這個發現意味著我們需要一個算法來計算每個頭寸的未平倉風險和整體投資組合的風險。那么具體要如何來算呢?一個較為妥善的辦法是在交易中加入一個專門為這些情況設計的算法,當風險超過某閾值時,可以進行移動止損或減少頭寸,然後再通過回測優化這些參數。

每筆交易的風險=整體賬戶的X%:可控制比每筆交易的最初風險

單筆交易最大風險=X%(移動止損或者減少倉位):該數據等於或者稍大於上面的數字

投資組合的最大風險=Y%(移動止損或減少倉位):如果你的交易策略用了很多工具,這個參數可以控制投資組合的總風險。下面這張圖片展現了整個交易過程中的投資組合風險。

筆者是在2008年做多原油的過程中“艱難地”學會了這一方法。筆者曾經使用了一種非常長期的滯後指標來作為出場信號,在市場處於明顯的趨勢且價格變動緩慢有一定波動性的時候,筆者的策略是非常可靠的。然而,由於當時油價的走勢在以往的價格中并不常見,筆者并沒有考慮過控制未平倉利潤的風險。

2008年筆者做多了原油,在油價直逼140美元/桶時獲得了可觀的收益。與此同時,隨著油價上升的速度越快,筆者對止損價位越遠的擔憂就越甚,目前還能清楚記得當時有多希望油價能夠盤整一段時間。以便讓交易策略的止損價能跟上來。

雖然當時也獲利了結了一定的倉位,但由於期貨市場的合約量很大,能減持的倉位非常有限。在先前的多單跌至移動止損價位出場後,筆者又對風險系統進行改進,當單個倉位的風險超過某一水平時,通過調整止損和控制風險來降低損失。

2.市場選擇、時間框架和投資組合結構

根據投資者所使用的交易系統、回測平臺、所需的基於云的資源和使用的應用程序接口以及是否需要托管服務的不同,時間框架(分鐘圖、小時圖和日圖等)的不同都會對交易策略產生潛在影響。

基於觸發器、即時執行或者1分鐘燭圖執行的高頻交易系統可能需要云基礎設施的解決方案,以便在不同突發時間范圍內計算能力的回測和優化能得到最佳結果。一些第三方交易平臺會將此作為其軟件包的一部分。

《成功者交易手冊》:總結了2016年IG的3000萬筆真實交易多個活躍品種上平倉時的獲利和虧損情況表現,從大數據告訴你為什么設置1:1的風險回報比成功率很低。

交易系統的策略開發過程中,對電腦計算能力和回測引擎的優化將為投資者節省大量時間。對於考慮高頻交易策略的投資者來說,需要選擇盡可能與經紀商的服務器在同一地點的交易體系,并且通過FIX API來確保能即時接受所有的報價,其報價頻率每秒高達300次,與此相比,ForexConnect API的報價頻率僅每秒2-3次。

為了盡可能使盈利最大化,投資者就必須以預想的價格或者更好的價格買入/賣出,前提條件是要確保平臺、代碼和服務器位置盡可能少的出現延遲,從而為投資者在確切的時間提供最佳機會,否則會容易出現滑點。

了解每個市場的潛在流動性特征可以幫助投資者了解自己交易策略的伸縮性。每個價位的流動性并不是無限的,而是依據市場、交易時間和環境的不同而不同。在預估滑點時,低頻交易系統需要更多的保證金來避免誤差。相較於高頻交易系統,若回測的總交易單數越少,其執行過程中滑點對整體盈利能力的影響就越小。

如果您的交易止損策略使用的是價格通道或某種滯後指標,減少延遲性帶來的影響可能不如特定策略產生的影響大。在代理服務器設置盈利價位和止損,速度都不會提高。個別市場的表現可能有很大的差異。有些可能長時間在區間內交投,而另一些則可能很快就出場。因此,少量市場的投資組合可能會比規模更大、市場更多樣化的戰略投資有更具波動性的回報。

3.了解如何能更好地執行自己的訂單

一些投資者僅利用市價進行交易,一般而言投資者對這種情況的成交價會感到滿意,但在不確定性高企的環境中,報價商傾向提供范圍更廣的價格區間以維護自己的利益,且此時價格的變動十分迅速。

當價格突破阻力後,基於動能和突破策略的交易會被成交,此時很可能遭受滑點,因許多做單方向一致的訂單被同時觸發。可以在這種交易中設置以區間來入場。

一些交易者可能以零滑點的價位入場甚至是正滑點進場,例如高頻交易者和基於重磅事件的一些交易策略。回測是假設所有單子能被100%執行,但現實可能無法做到。

整體而言,需了解自己交易的訂單類型以及如何能以更好地價位執行訂單。

4.倉位調整

有兩種常見的方法來調整交易的倉位:

A.基於固定比例的交易:無論交易的是何種貨幣對,均設置固定的交易比例。雖然這種方法受到許多交易者的歡迎,但這種方法的局限性是:在波動性較大的市場容易造成增持,在波動性小的市場容易減持。不同的匯率可能導致名義的交易規模差異巨大。現在許多自動化系統對每個頭寸都設置了固定的止損總額,筆者不喜歡這種方法,其將導致價格在波動性大的市場中離止損太近,而在平靜的的市場中離止損太遠。

B.基於風險的交易:根據止損的位置來計算每筆交易的風險

基於風險的頭寸考慮了每個交易面臨的風險,其中,風險等於入場價減去初始止損。

一個復雜的方法是將每個市場獨特的因素以及近期的平均價格范圍考慮在內來確定止損水平。這樣做的其中一種方法是計算最後x個周期的平均真實波幅,并將初始止損定在離該波幅幾倍遠的水平。此方法將根據每個市場獨特的波動性來動態平衡每個交易在不同市場的風險。

舉例:以交易歐元/美元為例

一手的交易風險=((總交易額 * 每筆交易愿意承擔的風險)/(X時期的ATR * ATR offset * 每一手的點子價值))

總交易額 = $100K

每筆交易愿意承擔的風險 = 1%

X時期的ATR = 50點

ATR offset = 1.5

每一手的點子價值 = $0.10

根據上述公式得到這筆交易的風險 = (($100K * 1%) / (50 * 1.5 * $0.10) = 133.333

在動蕩的市場中,無論交易的時間框架如何,ATR的范圍在不確定的情況下都可能大幅增加,其在市場中移動快速且缺乏方向性,導致許多交易員被甩出市場。然而,如果投資者將近期的ATR(平均真實范圍)利用在交易中,并使用它的倍數來確定止損價格,是可以通過該方法過濾一些短期的波動,從而提高交易成功的可能。建議投資者反復測試,仔細研究結果。不過請記住,回測有其局限性,過去的表現并不能預示將來的結果。

5.回測

首先需要足夠的數據,筆者認為最重要的測試自己的交易以及將所測試的應用到交易中。外匯市場的分散性意味著每個經紀商可能會有不同的歷史價格和價差。一些第三方的算法交易平臺也將提供歷史數據的訪問,但提供的數據可能并不完整。

將一些好的主意應用到交易策略,然後將主意寫成代碼在實戰中交易是一回事,但如果您直接實踐或是利用不切實際的回測檢驗,將很可能遭受滑鐵盧。如果您的回測檢驗不現實或者是使用了錯誤的假設,例如假設每筆交易都能完美執行,那么您可能會發現實際結果與回測檢驗的結果非常不同。

一個設計出色的回測系統可以幫助你在投入資金前發現什么是有效的,什么是無效的,盡管過去的表現并不能預示將來的結果。您應該嘗試不同的參數并檢視統計數據,查看可視化的結果,并在圖表上查看不同交易的表現。最先進的回測平臺將能夠同時檢查和優化多個市場的結果;這在發現不同市場的交易策略以及對整個頭寸組合的風險管理方面非常重要。

6.優化

如果不優化自身的交易策略,很可能難以得到一個最佳的策略;另一方面,如果進行過度優化,最終可能會得到一個只在歷史數據上表現良好的交易系統。關鍵是要在兩者之間找到平衡。

當使用回測檢驗來優化策略時,面臨的最大風險將是曲線擬合。筆者總是提防那些使用許多不同變量來進行優化的系統,或者只在一個市場上進行優化的系統。換句話說,筆者想要限制系統的自由度。

交易系統的參數越多,就越容易以過去的價格去完美地優化參數,盡管檢驗的結果令人驚訝,但這可能只是噪音而非一個可重復的模式。

如果只在一個市場上對策略進行回測檢驗,將產生同樣的效果。由於系統只在一組價格上模擬結果,很容易將參數過度擬合到歷史數據中,從而得到令人難以置信的回測結果,但其統計意義不大。

一般而言,許多交易者會使用非常簡單的系統和少量的參數來避免這種風險。此外,保持策略的邏輯思維簡易也將有助於減少生成交易決策時導致的延遲。如果您的系統只需要處理6個檢查點(checkpoint)而不是10個,那么在交易一個非常活躍的策略時,執行的結果將增強。

7.風險容忍度

每個人都擁有獨特的性格:年齡、收入、支出、風險資本、一般的風險偏好,以及是否容易樂觀或悲觀等等。因此,每個人都必須確定其可以接受的風險類型。如果風險資本很小,最好的辦法可能是根本不做交易,繼續存錢。

大多數算法交易者都是樂觀主義者,他們相信他們可以取得高於其他人平均水平的結果,而這可能導致許多高風險的,大膽的交易計劃產生,由於這些交易可能達到損失或觸及算法交易者心理進一步的損失預期,這些計劃很快就出場。

當投資者者正處於一個大的虧損期時,很難像一開始交易時那樣樂觀。根據筆者的經驗,這與實施第一個自動化策略類似,在回測檢驗時可以達到一年20%的盈利率,但是,40%似乎更好,前提是得愿意承擔更大的風險!

筆者認為許多投資者真正的風險承受能力可能低於想象。永遠不要忘記:生存和資本保留是最重要的考慮因素,而不是根據回測了解自己潛在的盈利率。

在交易時,恐懼或貪婪的情緒都會導致投資者做出糟糕的決策。計算機不需要處理這一問題,所以筆者認為處理這一問題的最佳策略是找到一個強大的交易系統,堅持該交易系統的,并在做出任何改變之前先進行研究。

交易過程中的情緒可以幫助投資者識別交易系統中的弱點和潛在機會。如果交易過程中的波動一直讓你感到恐懼,那么也許需要降低風險;

也許你看到了市場出現一波後悔沒入場的行情。了解自己在交易過程中的情緒,并利用回測來探索修改交易系統的方法,以確保將來不會錯過類似機會。

DailyFX 提供外匯市場新聞資訊和行情技術分析。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容