如圖:圖片來源:fxunion
當價格衝破該通道的上軌道時,就是可能的買訊號;反之,衝破下軌時就是可能的賣訊號。唐奇安通道的各項指標的計算方法為:
上軌=Max(最高低,n), n日最高價的最大值
下軌=Min(最低價,n), n日最低價的最小值
中軌=(上軌+下軌)/2
在金融領域的多因子分析框架內,這個策略對突破後的價格走勢預測就是基於動量因子(momentum)的有效性假設。當然,這個因子的有效性也確實被嚴格地驗證過,並作為Fama-French三因素模型的補充,被廣泛地應用於金融市場。
當然,我們可以進行最佳化,使用更合理的趨勢突破型指標。
三、交易原理
那麼,既然動量因子是已經公開並普遍使用的因子,那麼海龜交易法則是憑什麼能夠脫穎而出呢?答案很簡單,海龜交易法則定義了一整套非常嚴謹的倉位控制、止盈止損的規則。對於幣市的大漲大跌行情,海龜交易法則正是應付這種極端行情的利器。下面我們來一一剖析。
1. 倉位的基本單位N
海龜法則的加倉原則是定義好一個小單位(Unit),使得該倉位的預期價值波動與總淨資產的1%對應。也就是說,如果買入了這1個小單位的資產,那當天該倉位的市值變動幅度不會超過總淨資產的1%。
那麼,如何定義這個小單位?又如何預估這個小單位能帶來的價值波動呢?首先,在預估這個小單位帶來的價值波動(該價值波動被稱為N)上,海龜策略使用了對歷史的價格波動進行統計的方法。具體計算公式如下:
TrueRange=Max(High−Low, High−PreClose, PreClose−Low)
N =(前19日的N值之和+當時的TrueRange)/20
其中,High表示當日最高價,Low表示當日最低價,PreClose表示前一日收盤價。
我們可以從定義上看出,N值確實能很恰當地表達該資產在價格上的最近波動幅度。
這樣,一個Unit就應該是這樣計算出來的:
Unit = (1%*Total_net)/N, total_net就是總資產淨值
可以看出,一個Unit的資產的價格波動幅度 = 總淨資產的1%
2. 什麼時候建倉
建倉的動作來自於趨勢突破訊號的產生。如果當前價格衝破上軌,就產生了一個買的建倉訊號,如果當前價格跌破下軌,就產生了一個賣空的建倉訊號(如果該市場支援賣空,某些數字資產市場是支援借幣賣空的!)
初始建倉的大小 = 1個Unit
3. 什麼時候加倉
如果開的底倉是多倉且資產的價格在上一次建倉(或者加倉)的基礎上又上漲了0.5N,就再加一個Unit的多倉;
如果開的底倉是空倉且資產的價格在上一次建倉(或者加倉)的基礎上又下跌了0.5N,就再加一個Unit的空倉。
我們看到,海龜策略其實是一個追漲殺跌的策略的。
4. 怎麼做動態止損
如果開的底倉是多倉且資產的價格在上一次建倉(或者加倉)的基礎上又下跌了2N,就賣出全部頭寸止損;
如果開的底倉是空倉且資產的價格在上一次建倉(或者加倉)的基礎上又上漲了2N,就buy cover全部的頭寸止損。
當然,使用者可以自定義動態止損方案,比如下跌了0.5N就開始部分平倉,而不用等到下跌了2N後才匆忙一次性清倉,畢竟衝擊成本擺在那裡。
5. 怎麼做止盈,可以自定義動態止盈嗎
海龜法則裡面,止盈訊號是這樣產生的:
如果開的底倉是多倉且當前資產價格跌破了10日唐奇安通道的下軌,就清空所有頭寸結束策略;
如果開的底倉是空倉且當前資產價格升破了10日唐奇安通道的上軌,就清空所有頭寸結束策略。
當然,使用者可以自定義動態止盈方案,比如總淨資產/初始淨資產>1.5, 就止盈離場。
其實海龜策略並不是固定的,它存在很多變種,在傳統金融市場中,有些變種的策略還是有效的。數字資產市場是一個非常無效的市場,在這樣的市場中,很多被用爛了的傳統策略也可以跑得非常有效果,這對於傳統量化從業者來講,是一個非常好的知識變現機會。關於程式碼,可以在WeQuant微寬網等量化平臺上找到,你還不來試試?
作者:WeQuant
來源: