|夢想多大•成就多高|#第12集

自傳式小說(從市場雜魚到專職的歷程)
轉載自--X5Super系統交易粉專
回覆文章
X5Super
文章: 102
註冊時間: 週六 9月 06, 2025 5:00 pm

|夢想多大•成就多高|#第12集

文章 X5Super »

2008年,319槍擊事件已經過了4年。

捷哥撰寫策略程式已經很順手了,至少,給的出邏輯,就能轉成程式碼來測試。

資金管理從自己土法煉鋼的模型開始,也知道系統商品的多角化組合測試,以及個別的風險配置。

以下是捷哥策略程式開發的一個經驗:

國中同學曾經問捷哥:電視廣告說電腦都可以選土豆,你的交易程式可不可以算樂透?樂透的中獎機率太低了,麻省理工教授夏農應該也難以複製樂透開獎機器來模擬,不過,投資交易相對簡單多了,要算出什麼時候買,什麼時候賣,可以自行修改模型與測試,不用花費去複製實體機器。

這就像是玩撲克21點的算牌,不是真的去算出接下來會出現什麼牌,而是出現特定牌的機率。

有一個很古老的交易策略,捷哥曾在書上看過的,2%反轉系統。

大意是
📈從低點上漲2%時買進,
📉從高點下跌2%時賣出。

為什麼是2%?
捷哥偏要選擇5%,但程式要怎麼寫呢?

這個系統要統計的是趨勢的長度與組合,首先,要先定義趨勢。
在TS的內建指標中,有一個叫做ZigZag percent,只要輸入WavePcnt,也就是趨勢上漲或下跌的最少百分比,就可以畫出所有的趨勢線段。在這個百分比內的走勢,只能視為震盪,還沒有形成反轉的趨勢。這樣的定義,簡單有力,不過,ZigZag percent是用Swing來當趨勢假想端點,趨勢必須同時符合Swing的反轉,以及相鄰的兩個反轉點超過設定百分比的距離。這樣並不能真實反應,因為有時反轉Swing還沒形成前,反轉的距離已經超過設定的百分比了。  
捷哥因此改寫了一個 _ZZ 函數,讓策略只考慮價格反轉的百分比:

代碼: 選擇全部

Input : zzPct(5), showTL(1), ShowW(0);
Var : zzCnt(0),Trend(0);
Array : zz[5000,6](0),MidP[3,5](0);

zzCnt = _zz(zzPct, zz, MidP, showTL, ShowW);
Trend = zz[zzCnt-1,4];
If Trend = 1 then begin
	Sell{註1} MidP[2,0] * (1-zzPct/100) stop;
End;
If Trend = -1 then begin
	Buy MidP[0,0] * (1+zzPct/100) stop;
End;
Value1 = _TradesLine(1);
// 註1: TradeStation 2000i程式語法中的Sell等同後來美國券商版的TradeStation或台灣常用的Multi-chart語法中的SellShort,也就是放空進場的意思。
策略參數showTL預設1,代表開啟策略時,會在價格圖中畫出趨勢的線段。
同時_TradesLine函數輸入參數值1,也會畫出交易線:進出場點的連線。

由於,策略只有多空的進場訊號,所以交易線就都是趨勢反轉5%的起點。
反轉後趨勢若夠長,那筆進場就會獲利,損益的臨界點在5%的2倍=10%。

捷哥因此再將趨勢依照長度統計分類,超過給定zzPct(5%)的趨勢長度在過去歷史中越大的(前30%),標示為灰色粗線,越小的(倒數30%)是黃色粗線,這樣方便看出容易賺或虧的趨勢行情。

結果,當可以容忍5%的震盪時,超過12%反轉長度的趨勢,占了所有趨勢個數的30%,這樣的系統要獲利交易,必須要遇到超過10%的行情以上,勝率會是30%以上。

只有簡單的多單與空單的進場,在價格圖上的交易線,藍線段代表多單獲利交易,紅色則是虧損;淺藍色代表空單獲利交易,粉紅色則是虧損。

一口台指淨獲利1,039,600元(報表上的單位是千元新台幣)。勝率38.5%,最大虧損554,800元。成本設定:手續費400,滑價2000。
  
簡單的邏輯,在台指就可以獲利,這代表台指是一個趨勢性不錯的市場。
這樣的策略只用到一個參數5%反轉而已,那原版的2%系統化是如何?

淨利從1,039,600,提高到2,019,200;勝率38.5%提高為42.98%;最大累計虧損,改善不多,554,800減為547,400;最小帳戶報酬率(ROA)151.37%提升為297.2%
樣樣都比5%好,顯然,沒有理由選5%這個參數,它純粹只是一開始隨意的設定。
既然2%比5%好,那會不會有比2%更好的呢?

可以透過參數最佳化測試得到答案。
以ROA當績效指標,結果2%反轉排名第4,的確表現不錯,5%則排名第12,那到底要選哪一個?
捷哥早已經厭倦選擇最佳參數了,事後表現往往不是那麼一回事,回測模擬代表只是一種樣本統計測試,未來的交易是一個更大的母體,偏差預估與處理,遠比樣本績效的選擇重要,也就是,選樣本的最佳績效參數,未來實際績效的偏差就會讓它變的更差,績效變差或許有人覺得不是很重要,只要也還能賺錢就好,但如果用偏高的績效去配置風險後,那個偏差的意義可能就是能否繼續存在市場的問題了。攻擊指數高的交易者,通常就會栽在這裡。

先不考慮最佳化模擬是不是可以代表未來的預測,單純由這些數字組合,來選一個最好的,每個人的想法也不見得會一樣。
剛才的績效指標ROA是在帳戶內,只存入最少的錢,也就是Account Size required它等於最大連續虧損(Max DrawDown)加上保證金(margin),來計算獲利的比例。即便,淨利較少,一旦把口數按照MDD的反比來配置,讓風險一致後的淨利,還是會比較多。所以,這是同時考慮風險與報酬的指標,很適合用來評選系統。也是捷哥慣用的指標,也大大影響他未來系統開發中模組設計概念。
第12集-1.png
第12集-6.png
============================================
臉書帳號:超五
臉書粉專X5Super交易系統
超五系統交易實作論壇 著作《超五系統交易:竹科工程師絕處逢生的量化交易世界》
============================================
回覆文章