市值恆定不定期投資法

0Shares
Image

市值恆定不定期投資法是一種將投資總市值維持在一個固定金額的投資方式,當總市值高於固定金額,就賣掉多餘的部分,總市值低於固定金額,則會購買不足的部分,算是一個低買高賣的方式,感謝陳文賢老師告訴我這個交易方式,本文對於交易的方式,做了一些微調,讓這個策略在XQ內能實現自動化交易

市值恆定不定期投資法在”翻轉你的小資人生“一書中,又稱做固定價位投資法,偷個懶,直接把人家寫的引用過來

固定價位投資法是指投資組合中,股票部分的市價保持常數。因此,當股票上漲時,投資人必須及時賣出部分股票,使持有股票部分的市價維持常數;股票下跌時,投資人必須再買進股票,使持股的市價等於這個常數。簡言之,就是維持持有股票的總市值在一定的「價位」,以股票上下漲跌決定投資的方法。

例如,某人投資200萬元購買股票,若股價上漲,使他持有的股票總市價上升到240萬元,則他可以出清手中約40萬元的持股;若股價下跌,使得他持有的股票市價下降到180萬元,則他應該再拿出20萬元來購買股票。

此法最大的優點是單純,易於執行,投資人容易決定買進賣出的數量,而且不用預測股價可能上漲到什麼幅度。唯此法在量大時的急漲急跌,會造成失誤。

優點
1.投資的金額幾乎是固定的
要準備的資金大概就是第一次投入金額*1.5,多準備的0.5,是準備在價值下跌時,購買更多股票,畢竟我們無法預知,進場後會不會下跌,但只要買市值高一點的股票,多準備0.5應該很夠用了

2.投資的成本不斷降低
由於是不斷的低買高賣,持有成本會不斷下降,在持有一段時間後,持有成本是可以降為0的,此時等於擁有一個零成本的賺錢機器,如果能多累績幾個零成本賺錢機器,不就好像在收房租了~~ 🙂

3.不會頻繁操作
在這個交易策略,會設定高於或低於固定維持價值的一定比例後才開始做調整,交易的頻率,不會太高,不用每天一直盯著看,甚至可以設定券上APP做提醒,出現警示後再調整即可

缺點
1. 資金利用率降低
大部分的資金必須放在股市,無法再做其他的運用,會降低資金利用率

2.進場後持續下跌會大幅延長回收期
進場後,如果股價是持續下跌的狀況,除了要在投入更多資金外,整個回收期將會花比較多時間,如下圖,同樣一個股票,2019年進場賺的比2020年進場的還少,而這個問題,應該是有可以用選股策略,找出進場後往上機率高的股票來操作

3.遇崩盤時,MDD會很大
由於是個低買高賣的策略,遇到下跌時會不斷的買,MDD甚至會高達30%,會非常考驗人性

4.需要購買零股
為了要能保持一定市值,會出現購買零股,雖然現在買零股已經很方便了,但總是沒有買整張股票方便,且牽涉到零股,就無法做到自動交易了,針對這個缺點,下面提出了一個改良的方式,讓自動交易變成可行的

PS:以上優缺點僅代表個人意見,歡迎提出其他看法

如何做到自動交易
為了要把當前投入的股票市值調整到一個固定的金額上,不可避免的,會有零股的產生,然而,在這樣的情況下,XQ內就無法做到自動交易,為了能實現自動交易(我懶),在交易的邏輯上,做了些調整

邏輯很簡單,當股票往上漲,總市值超過預設的固定金額後,就開始計算,最多可以賣幾張,且賣完還是高於該固定金額,往下也是,看要買幾張,才能接近但不超過恆定金額,這樣就能完全做到自動交易,雖然每次買賣沒有精準到接近設定的固定金額,但也算沒有偏離原本的概念

程式碼也很簡單,只要設定固定的股票價值跟最高進場價格,剩下就能完全自動化了

input: constanti(200000,"固定維持的股票價值"),entryp(10,"最高進場價格");

var: initialstock(0); //起始張數
var: vflag(0);

if vflag=0 and close<entryp then begin
 initialstock=floor(constanti/(entryp*1000));
 setposition(initialstock,market);
 if filled=initialstock then vflag=1;
end; 

if position>0 then begin

//持有股票價值大於預設投資金額,開始賣,但不能賣低於投資金額
 if close*filled*1000 > constanti then begin
  value1=floor((close*filled*1000-constanti)/(close*1000));
  if value1>=1 then sell(value1,market);
 end else

//持有股票價值小於預設投資金額,開始買,但不能買超過投資金額 
 if close*filled*1000 < constanti then begin
  value2=floor((constanti-close*filled*1000)/(close*1000));
  if value2>=1 then buy(value2,market);
 end; 
end;
 
//確認數據用  
//once print("日期", "張數", "平均價格","收盤價", "總投入","市場價值","value1","value2","vflag");
//print(date, filled, filledavgprice, close, filled*filledavgprice*1000,filled*close*1000,value1, value2,vflag);

以下,放第一金的回測結果(2017/3~2022/3),淨利曲線看來是不錯的,不過,MDD接近40%,真的不是一般人受的了的,不過,這樣看,也有點不正確,畢竟這中間已經有在開始回收投入成本了,實際MDD應該沒有這麼大才是,這部分就需要另外寫程式計算了,我懶,先忽略他

交易法比較
這個市值恆定投資法,到底是個好的投資方式,還是不好,又要如何評估呢? 對於這個問題,我想到的是跟幾個相類似的投資方式做比較,因此加入了一次性投入跟定期定額的方式,所有的投資時間都是2017/3月開始,一直到2022/3月,三種投資方式簡單說明

市值恆定投資法
採用上方的程式碼,第一次投入40萬,低買高賣

一次投入投資法
在2017/3月就一次購買40萬價值的股票,一直放到2022/03,股票數量會因為配股而增加,最終獲利也會加入股利的部分

定期定額投資法
從2017/3月開始,每月投入7000,一直到2022/3,共投入42萬,中間的配股,也會加入總持有股票數,股利也會計入總獲利

比較交易結果
本次比較,選了兩檔不太一樣的股票,艾迪生(3591)跟第一金(2892),艾迪生這五年算是上下震盪,沒啥上漲的股票,而第一金則是緩慢上漲型股票,統計結果如下表

愛迪生跟第一金的結果算是完全相反,艾迪生在三個投資法中,市值恆定投資法取得獲利最高,而第一金反而是定期定額獲利最高,而市值恆定投資法最低,為何會這樣呢? 由於這邊只是兩檔股票做比較,尚無全面性比較,無法給予正確的結論,但提出下我的感覺,

交易次數對市值恆定投資法的獲利影響很大
市值恆定投資法是個買低賣高策略,交易的次數越多,賺錢的次數越多,自然可提高獲利,很適合用在股性較活潑的股票上

三種投資方式在金融類股上的獲利差異不大
三個投資方式,在金融股上,我認為獲利是差異不太大的,市值恆定投資法雖然賺的較少,但其投入的成本是一直在下降的,不斷的將錢拿回來,可以再投入其他的投資方式,在獲利差異不大的情況下,我可能會選市值恆定投資法,投入後,一直有錢拿回來,不會所有資金都被卡住

寫了這篇文章,感覺是可以再投入更多時間研究,尤其是幾個策略間的差異,用哪個策略會是比較好的選擇,應該是大家都會有興趣的話題吧,先寫到這邊,希望之後能提出更詳細的比較。

0Shares


發佈留言

相關文章

[VIP] 當沖交易如何做到收K進場即時出場2

上一篇文章大概說明了如何在逐筆中運用condition[1]做到收K進場,即時出場,不過,這樣的運用還有些需要注意的細節,將會在本篇文章說明,不過寫的有點複雜,請耐心閱讀,對你的回測一定會有幫助的。

當沖交易如何做到收K進場即時出場1

想要讓回測績效貼近實單績效,你一定要知道如何做到收K進場即時出場,本文將不同的回測設定與程式碼撰寫方式做了比較,證明在逐筆回測中是可以收K後進場的,而且這樣的作法,自動交易也可以執行,不需要向過往把進場跟出場分開寫,更容易維護策略。

如何運用AI修正XS程式碼錯誤

現在很多人都在用AI來寫程式,使用XQ的你,是不是超級羨慕也去嘗試讓AI撰寫XS程式碼了呢? 相信你試過之後的結果都會很失望吧,你以為他給你的是XS程式碼,但常常都是其他軟體的語法。

[AI] 定期定額投資績效計算頁面

定期定額投資的績效表現在XQ上並不容易回測,本文將會介紹我如何運用量化交易實驗室的AI,在短時間內就寫出一個可以計算定期定投入績效的XQ看盤頁面。

最近發文

加入我們

Categories

最新留言