2013/12/26

[轉貼] 談程式交易為什麼能獲利

引用自: 小肥牛 @yahoo blog (關閉了)

今天來談談為什麼我會認為程式交易為什麼能獲利,還有停損、價格突破與厚尾之間的關聯。其中有些是我自已的想法,有些是從網路上看到的一些想法,有些地方可能不會很嚴謹,但大家可以參考看看。

首先,我認為市場不是完全的隨機市場,裡面隱藏某種程度的不隨機性,若是市場是一個完全隨機市場,像一個公平的硬幣如此隨機,再怎麼利害的程式交易,也不可能長期在這個市場獲利。

但市場的不隨機性在那裡? 不同的市場有不同的不隨機性,所以也可能發展出不同的策略,但目前我觀察的所有市場,都有一種共通的不隨機性---「厚尾」。 什麼是厚尾? 若是以當天的漲跌幅來看,也就是"當天的收盤價 - 當天的開盤價",有正有負,有高有低,若是以大數法則來看,漲跌幅愈大,機率愈低,若是一個隨機市場,整體應該會呈常態分佈。 但實際上,市場總會有大漲或是大跌的時候,雖然機率不會很高,但仍比常態分佈的理論統計值高,也就是在兩端尾部會比較厚,也就是所謂的厚尾現象。

以下圖為例,市場為 @ES.D (mini S&P 500) 的當天的漲跌幅分佈圖,柱狀圖是實際分佈,分佈在正負40點之間,若是大於正負40點,以正負40點計,而紫色則根據分代的標準差,算出來的常態分佈。我們可以在兩端,看出市場分佈明顯比常態分佈高一些。 這個現象在個個不同市場都很容易看到,目前我看的黃金、台期指等都有,而且在不同的 time frame 也是有,day, hour 和 minute 的不同 time frame,像YI (小黃金) 的day、hour、minute frame 都可以看到厚尾現像。


為什麼會有厚尾,你可以說是因為市場經常會有恐慌性的賣壓、盲目的追高,媒體的推波助瀾,或是在真實世界上,有太多的突發事件,或是說這是因為黑天鵝、混沌、蝴蝶效應,都可以,只要知道厚尾現象在真實的交易市場是存在的


說明完厚尾,我們來看停損,停損在程式交易中的威力,可以用「死多頭、死空頭」來說,「死多頭、死空頭」的原始概念來自這篇文章「死多頭死空頭都獲利」(http://cctrading.blogspot.com/2004/06/ds1.html),原文的故事說的比我精彩,若是有興趣,可以看看原文。

有兩個人,一個是「死多頭」,另一個是「死空頭」。 所謂「死多頭」就是不管怎樣開盤就作多,並設停損,例如 USD $200,若是沒有觸動停損,則在當日收盤時平倉。 以 TradeStation 與 ES.D 為例,程式如下:

if (date>date[1]) then Buy ("LE") next bar at market;
if (Time=1500) then Sell ("LX") next bar at market;
SetStopLoss(200);


以過去 5 年ES.D, time frame = 15 min 為測試數據,獲利 $4,625

所謂「死空頭」就是不管怎樣開盤就作空,也是設停損,USD $200,若是沒有觸動停損,則在當日收盤時平倉。 程式如下:

if (date>date[1]) then SellShort ("SE") next bar at market;
if (Time=1500) then BuyToCover ("SX") next bar at market;
SetStopLoss(200);

以過去 5 年ES.D, time frame = 15 min 為測試數據,獲利 $26,525。
 
這裡要注意的是,這裡的獲利是沒有計算手續費、滑價,主要是集中在市場特性與策略理論的探討,因此在真實交易中,這些策略需要用更嚴苛的條件作測試依據。

基本上,「死空頭」獲利比較多,但不管是多頭或是空頭,都是獲利的,基本上,這要歸功於「停損」的威力。 但為什麼停損可以製造出更大的獲利空間呢? 我認為是因為市場有某些程度的不隨機性。  若是一個完全隨機的市場,如賭場,你再用怎樣的停損策略,也很難在賭場創造獲利空間。

為什麼市場的不隨機性與停損可以創造獲利空間,我們先想像市場的漲跌幅分佈是左右對稱,但有厚尾現象,不管作多或是作空,都是一半猜對的機會,假設是作多,市場也是多,則會賺錢,而市場是空時,則是賠錢,而且若是在厚尾兩端,則是大賺大賠。

若是大數法則,最後應該會不賺不賠(不考慮手續費、滑價),但若是有停損下,大賺仍是不變,但避免了大賠的機會,再強調一次,停損只會在不是完全隨機性的市場有用,若是完全隨機的市場,什麼時候停損都是一樣的期望值。  舉例來說,若是你已經賠了100元,若是完全隨機性的市場,未來再賠100元 (全部賠200元),與未來賺回100元 (全部不賺不賠) 的機率是一樣的,因此不管你有沒有停損,最後獲利的期望值都是-100元。

但若是有厚尾現象的不完全隨機性的市場,在已經賠了100元的狀況下,未來賺回100元 (全部不賺不賠)的機率,可能會與未來再賠100元 (全部賠200元)與未來再大賠400元 (全部賠500元)的機率加總一樣。 若是停損,損失是100元,但若沒有停損,假設 0.5  機率賺回100元 ,0.45 機率再賠100元,0.05 機率是再大賠400元,如此全部的期望值是 -100 + 0.5 * (+100) + 0.45 * (-100) + 0.05 * (-400) = -115。 所以因為厚尾現象,在達到停損點時,輸贏的期望值已經不是對稱分佈了。

有些人作停損後,因為盤面拉回,就後悔太早作停損,但其實在有些情況下,沒有作停損,會讓你陷入大賠的風險中。

簡單的說,停損避免讓策略掉入賠錢的厚尾,保留賺錢的厚尾,因此可以創造出獲利的空間。 


再來說「價格突破」與停損的關係。既然「死多頭」與「死空頭」都有可能賺錢,那可不可以一起作,在開盤時,同時作多與作空,並依開盤價加減一個固定點數(如 4 點,在 ES.D 每點 $50,等於 $200),作為高點與低點,當價格漲過高點,「死空頭」就平倉,當價格低過低點「死多頭」就平倉,當日收盤時,若是手上還有倉位,就平倉。

這樣的「死多頭」與「死空頭」合作策略來看。 一開始的倉位是 0,也就是一開始其實不用買賣。等到價格漲過高點,因為「死空頭」已平倉,所以剩「死多頭」多頭的倉位,因為一開始的倉位是 0價格一漲過高點,就要作多,買一口進來。類似的,若是低過低點,則是作空一口,當日收盤時,若是手上還有倉位,就平倉。

從這樣來看,「死多頭」與「死空頭」+停損的合作策略其實就是「價格突破」策略,開盤價加減一個固定點數,作為高點與低點,當價格漲過高點,就作多,當價格低過低點,就作空。 以下是對應的 TS 程式碼,基本上這個程式碼是可以反手的,等於為「死多頭」+「死空頭」的合作策略加上再進場機制。

var: OpenPrice(0);

if (date>date[1]) then begin
    OpenPrice = Open;
end
else if (Time<1500) then begin
    Buy ("LE") next bar at OpenPrice + 4 stop;
    SellShort ("SE") next bar at OpenPrice - 4 stop;
end
else if (Time=1500) then begin
    Sell ("LX") next bar at market;
    BuyToCover ("SX") next bar at market;
end;


整體獲利是 $43,100,比「死多頭」+「死空頭」($4,625+$26,525 = $31,150),應該是因為可以反手的關係,因為可以反手,當一邊避免賠錢的厚尾機率,另外一邊以反手增加賺錢的厚尾機率。

所以「價格突破」策略本身就有停損的機制,而「價格突破」比「死多頭」「死空頭」分別作、分別停損的策略好處如下:

1. 減少交易次數:真實交易是需要手續費的,若是我們同時有「死多頭」「死空頭」,則倉位其實是0,我們並不需要買賣交易。
2. 增加獲利穩建度:一般市場在某一段時間可能是偏多或是偏空,若是偏空,對「死多頭」則是比較不利,配合停損,可能只是降低損失,但可能無法獲利,但若是「價格突破」,則是兩個方向都考慮到,獲利當然比較穩建。

簡單來說,「價格突破」策略,因為厚尾的市場不隨機性,是一個具有停損,且有獲利潛力的策略。


再來談談「交易聖杯」或是程式交易為什麼能幫你賺錢,基本上,程式交易是希望能夠找到某些策略,依市場的不隨機性,找出最大的可能獲利性。 有些程式成功,有些程式失敗,有些程式很複雜,有些程式很簡單,有些可以應用在較多的市場,有些只能應用在某個特定市場。 無論如何,創造獲利空間 (trader edge) (http://tw.myblog.yahoo.com/Blue-Speculator/article?mid=1066&next=1050&l=f&fid=6) 是我們追求的目標,其實trader edge不必要很高,但要很穩建,就像賭場莊家一樣,每一次的 house edge 都不必很高,但經過大數法則與資金的管理,讓賭場不止穩賺不賠,而且是大賺其錢。  目前在市場的不隨機性,現象最一致的就是厚尾吧,而利用厚尾來創造獲利空間,我想「價格突破」只是其中的一種,但它也應該是最簡單一種,因為簡單,正是大巧不工,可以適應的市場與穩建性也是相對的高。

若是能夠有一個穩建的 trader edge,配合資金管理與市場風險分散,這樣就像賭場的莊家一樣,可以利用程式策略幫你穩定的賺錢,若是能達到這個的管理與目標,應該就是所謂的「交易聖杯」吧。

最後,在說明一下,這裡的程式只是為了說明停損、價格突破與厚尾的關係,說明即使是一個簡單的策略,只要能夠掌握到市場的不隨機性的優勢,就有可能獲利。若是對「價格突破」策略有興趣,請參考藍色投機客的最喜愛的交易系統 - Price Channel Breakout(http://tw.myblog.yahoo.com/Blue-Speculator/article?mid=1584&l=d&fid=7)

另外,厚尾的一些想法與靈感,有些是來自藍色投機客與Howard的討論 (http://tw.myblog.yahoo.com/Blue-Speculator/article?mid=724), 有興趣的人也可以參考看看。

0 意見 :

張貼留言

.

.
Related Posts Plugin for WordPress, Blogger...