止損與價(jià)格突破與厚尾的相互關(guān)聯(lián)及程序化交易為什麼能獲利[程序化老手]
今天來談?wù)劄槭颤N我會認(rèn)為程式交易為什麼能獲利,還有停損、價(jià)格突破與厚尾之間的關(guān)聯(lián)。其中有些是我自已的想法,有些是從網(wǎng)路上看到的一些想法,有些地方可能不會很嚴(yán)謹(jǐn),但大家可以參考看看。
首先,我認(rèn)為市場不是完全的隨機(jī)市場,裡面隱藏某種程度的不隨機(jī)性,若是市場是一個(gè)完全隨機(jī)市場,像一個(gè)公平的硬幣如此隨機(jī),再怎麼利害的程式交易,也不可能長期在這個(gè)市場獲利。
但市場的不隨機(jī)性在那裡? 不同的市場有不同的不隨機(jī)性,所以也可能發(fā)展出不同的策略,但目前我觀察的所有市場,都有一種共通的不隨機(jī)性---「厚尾」。 什麼是厚尾? 若是以當(dāng)天的漲跌幅來看,也就是"當(dāng)天的收盤價(jià) - 當(dāng)天的開盤價(jià)",有正有負(fù),有高有低,若是以大數(shù)法則來看,漲跌幅愈大,機(jī)率愈低,若是一個(gè)隨機(jī)市場,整體應(yīng)該會呈常態(tài)分佈。 但實(shí)際上,市場總會有大漲或是大跌的時(shí)候,雖然機(jī)率不會很高,但仍比常態(tài)分佈的理論統(tǒng)計(jì)值高,也就是在兩端尾部會比較厚,也就是所謂的厚尾現(xiàn)象。
以下圖為例,市場為 @ES.D (mini S&P 500) 的當(dāng)天的漲跌幅分佈圖,柱狀圖是實(shí)際分佈,分佈在正負(fù)40點(diǎn)之間,若是大于正負(fù)40點(diǎn),以正負(fù)40點(diǎn)計(jì),而紫色則根據(jù)分代的標(biāo)準(zhǔn)差,算出來的常態(tài)分佈。我們可以在兩端,看出市場分佈明顯比常態(tài)分佈高一些。 這個(gè)現(xiàn)象在個(gè)個(gè)不同市場都很容易看到,目前我看的黃金、臺期指等都有,而且在不同的 time frame 也是有,day, hour 和 minute 的不同 time frame,像YI (小黃金) 的day、hour、minute frame 都可以看到厚尾現(xiàn)像。
為什麼會有厚尾,你可以說是因?yàn)槭袌鼋?jīng)常會有恐慌性的賣壓、盲目的追高,媒體的推波助瀾,或是在真實(shí)世界上,有太多的突發(fā)事件,或是說這是因?yàn)楹谔禊Z、混噸、蝴蝶效應(yīng),都可以,只要知道厚尾現(xiàn)象在真實(shí)的交易市場是存在的。
--------------------------------------------------------------------------------
說明完厚尾,我們來看停損,停損在程式交易中的威力,可以用「死多頭、死空頭」來說,「死多頭、死空頭」的原始概念來自這篇文章「死多頭死空頭都獲利」(http://cctrading.blogspot.com/2004/06/ds1.html),原文的故事說的比我精彩,若是有興趣,可以看看原文。
有兩個(gè)人,一個(gè)是「死多頭」,另一個(gè)是「死空頭」。 所謂「死多頭」就是不管怎樣開盤就作多,并設(shè)停損,例如 USD $200,若是沒有觸動(dòng)停損,則在當(dāng)日收盤時(shí)平倉。 以 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 為測試數(shù)據(jù),獲利 $4,625
所謂「死空頭」就是不管怎樣開盤就作空,也是設(shè)停損,USD $200,若是沒有觸動(dòng)停損,則在當(dāng)日收盤時(shí)平倉。 程式如下:
代碼: 選擇全部
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 為測試數(shù)據(jù),獲利 $26,525。
這裡要注意的是,這裡的獲利是沒有計(jì)算手續(xù)費(fèi)、滑價(jià),主要是集中在市場特性與策略理論的探討,因此在真實(shí)交易中,這些策略需要用更嚴(yán)苛的條件作測試依據(jù)。
基本上,「死空頭」獲利比較多,但不管是多頭或是空頭,都是獲利的,基本上,這要?dú)w功于「停損」的威力。 但為什麼停損可以製造出更大的獲利空間呢? 我認(rèn)為是因?yàn)槭袌鲇心承┏潭鹊牟浑S機(jī)性。 若是一個(gè)完全隨機(jī)的市場,如賭場,你再用怎樣的停損策略,也很難在賭場創(chuàng)造獲利空間。
為什麼市場的不隨機(jī)性與停損可以創(chuàng)造獲利空間,我們先想像市場的漲跌幅分佈是左右對稱,但有厚尾現(xiàn)象,不管作多或是作空,都是一半猜對的機(jī)會,假設(shè)是作多,市場也是多,則會賺錢,而市場是空時(shí),則是賠錢,而且若是在厚尾兩端,則是大賺大賠。
若是大數(shù)法則,最后應(yīng)該會不賺不賠(不考慮手續(xù)費(fèi)、滑價(jià)),但若是有停損下,大賺仍是不變,但避免了大賠的機(jī)會,再強(qiáng)調(diào)一次,停損只會在不是完全隨機(jī)性的市場有用,若是完全隨機(jī)的市場,什麼時(shí)候停損都是一樣的期望值。 舉例來說,若是你已經(jīng)賠了100元,若是完全隨機(jī)性的市場,未來再賠100元 (全部賠200元),與未來賺回100元 (全部不賺不賠) 的機(jī)率是一樣的,因此不管你有沒有停損,最后獲利的期望值都是-100元。
但若是有厚尾現(xiàn)象的不完全隨機(jī)性的市場,在已經(jīng)賠了100元的狀況下,未來賺回100元 (全部不賺不賠)的機(jī)率,可能會與未來再賠100元 (全部賠200元)與未來再大賠400元 (全部賠500元)的機(jī)率加總一樣。 若是停損,損失是100元,但若沒有停損,假設(shè) 0.5 機(jī)率賺回100元 ,0.45 機(jī)率再賠100元,0.05 機(jī)率是再大賠400元,如此全部的期望值是 -100 + 0.5 * (+100) + 0.45 * (-100) + 0.05 * (-400) = -115。 所以因?yàn)楹裎铂F(xiàn)象,在達(dá)到停損點(diǎn)時(shí),輸贏的期望值已經(jīng)不是對稱分佈了。
有些人作停損后,因?yàn)楸P面拉回,就后悔太早作停損,但其實(shí)在有些情況下,沒有作停損,會讓你陷入大賠的風(fēng)險(xiǎn)中。
簡單的說,停損避免讓策略掉入賠錢的厚尾,保留賺錢的厚尾,因此可以創(chuàng)造出獲利的空間。
--------------------------------------------------------------------------------
再來說「價(jià)格突破」與停損的關(guān)系。既然「死多頭」與「死空頭」都有可能賺錢,那可不可以一起作,在開盤時(shí),同時(shí)作多與作空,并依開盤價(jià)加減一個(gè)固定點(diǎn)數(shù)(如 4 點(diǎn),在 ES.D 每點(diǎn) $50,等于 $200),作為高點(diǎn)與低點(diǎn),當(dāng)價(jià)格漲過高點(diǎn),「死空頭」就平倉,當(dāng)價(jià)格低過低點(diǎn)「死多頭」就平倉,當(dāng)日收盤時(shí),若是手上還有倉位,就平倉。
這樣的「死多頭」與「死空頭」合作策略來看。 一開始的倉位是 0,也就是一開始其實(shí)不用買賣。等到價(jià)格漲過高點(diǎn),因?yàn)椤杆揽疹^」已平倉,所以剩「死多頭」多頭的倉位,因?yàn)橐婚_始的倉位是 0價(jià)格一漲過高點(diǎn),就要作多,買一口進(jìn)來。類似的,若是低過低點(diǎn),則是作空一口,當(dāng)日收盤時(shí),若是手上還有倉位,就平倉。
從這樣來看,「死多頭」與「死空頭」+停損的合作策略其實(shí)就是「價(jià)格突破」策略,開盤價(jià)加減一個(gè)固定點(diǎn)數(shù),作為高點(diǎn)與低點(diǎn),當(dāng)價(jià)格漲過高點(diǎn),就作多,當(dāng)價(jià)格低過低點(diǎn),就作空。 以下是對應(yīng)的 TS 程式碼,基本上這個(gè)程式碼是可以反手的,等于為「死多頭」+「死空頭」的合作策略加上再進(jìn)場機(jī)制。
代碼: 選擇全部
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),應(yīng)該是因?yàn)榭梢苑词值年P(guān)系,因?yàn)榭梢苑词郑?dāng)一邊避免賠錢的厚尾機(jī)率,另外一邊以反手增加賺錢的厚尾機(jī)率。
所以「價(jià)格突破」策略本身就有停損的機(jī)制,而「價(jià)格突破」比「死多頭」「死空頭」分別作、分別停損的策略好處如下:
1. 減少交易次數(shù):真實(shí)交易是需要手續(xù)費(fèi)的,若是我們同時(shí)有「死多頭」「死空頭」,則倉位其實(shí)是0,我們并不需要買賣交易。
2. 增加獲利穩(wěn)建度:一般市場在某一段時(shí)間可能是偏多或是偏空,若是偏空,對「死多頭」則是比較不利,配合停損,可能只是降低損失,但可能無法獲利,但若是「價(jià)格突破」,則是兩個(gè)方向都考慮到,獲利當(dāng)然比較穩(wěn)建。
簡單來說,「價(jià)格突破」策略,因?yàn)楹裎驳氖袌霾浑S機(jī)性,是一個(gè)具有停損,且有獲利潛力的策略。
--------------------------------------------------------------------------------
再來談?wù)劇附灰资ケ够蚴浅淌浇灰诪槭颤N能幫你賺錢,基本上,程式交易是希望能夠找到某些策略,依市場的不隨機(jī)性,找出最大的可能獲利性。 有些程式成功,有些程式失敗,有些程式很複雜,有些程式很簡單,有些可以應(yīng)用在較多的市場,有些只能應(yīng)用在某個(gè)特定市場。 無論如何,創(chuàng)造獲利空間 (trader edge)是我們追求的目標(biāo),其實(shí)trader edge不必要很高,但要很穩(wěn)建,就像賭場莊家一樣,每一次的 house edge 都不必很高,但經(jīng)過大數(shù)法則與資金的管理,讓賭場不止穩(wěn)賺不賠,而且是大賺其錢。 目前在市場的不隨機(jī)性,現(xiàn)象最一致的就是厚尾吧,而利用厚尾來創(chuàng)造獲利空間,我想「價(jià)格突破」只是其中的一種,但它也應(yīng)該是最簡單一種,因?yàn)楹唵危谴笄刹还ぃ梢赃m應(yīng)的市場與穩(wěn)建性也是相對的高。
若是能夠有一個(gè)穩(wěn)建的 trader edge,配合資金管理與市場風(fēng)險(xiǎn)分散,這樣就像賭場的莊家一樣,可以利用程式策略幫你穩(wěn)定的賺錢,若是能達(dá)到這個(gè)的管理與目標(biāo),應(yīng)該就是所謂的「交易圣杯」吧。
最后,在說明一下,這裡的程式只是為了說明停損、價(jià)格突破與厚尾的關(guān)系,說明即使是一個(gè)簡單的策略,只要能夠掌握到市場的不隨機(jī)性的優(yōu)勢,就有可能獲利。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
- 上一篇:為什麼無法堅(jiān)守程式的買賣信號的討論?
- 下一篇:沒有了!
相關(guān)文章
-
沒有相關(guān)內(nèi)容