加速防禦雙動能投資法

閱讀時間約 15 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。

主要是讀了99趴大大的動能致富一書簡單寫的筆記:

加速防禦雙動能策略是一個有效的風險管理方法,透過結合相對動能和絕對動能兩種方式,讓投資者在市場上漲時能夠抓住機會,而在市場下跌時則能降低風險,從而達到「進可攻,退可守」的效果。

雙動能策略的基礎的核心原理是「強者恆強」,即過去表現好的資產未來有可能繼續表現良好。雙動能策略運用了兩個概念:

  • 相對動能:比較不同資產在過去一段時間的表現,選擇表現較好的進行投資。例如,投資者可以比較美股 ETF(如 SPY/VOO)和國際小型股 ETF(如 SCZ)的報酬率,選擇近一個月、三個月或六個月報酬率平均的表現較佳的資產進行配置,會選擇國際小型股(如SCZ)的邏輯是因為和SPY/VOO的走勢相關係數較低。
  • 絕對動能:當市場處於下跌趨勢時,避免投資表現不佳的資產,將資金轉向債券或現金等避險資產(例如 TLT,美國長期國債 ETF),藉以減少下行風險。

整個運作方式如下:

  1. 篩選表現較佳的資產:根據近一個月、三個月和六個月的報酬率平均,選擇表現較好的股票資產(例如 SPY 或 SCZ)。
  2. 判斷市場情況:當股市下行時,絕對動能策略會自動判斷市場趨勢。如果選擇的股票資產表現不佳,資金會轉向避險資產(如 TLT),以保護投資組合免受市場波動的影響。
  3. 加入現金避險選項:如果避險資產如債券的表現也不理想,那麼策略可以進一步轉向現金,這是市場出現極端風險時的最後防線。


為什麼加速防禦雙動能有效?

這種策略之所以有效,主要有兩個原因:

  • 動態調整資產配置:加速防禦雙動能策略能夠根據市場狀況靈活調整資產配置,在市場上漲時抓住機會,而在市場下跌時轉向債券或現金,降低損失。
  • 降低投資組合波動性:單純持有股票(如 SPY)在市場回調時可能會經歷較大損失,防禦雙動能策略通過債券或現金的避險,可以在市場不穩定時保持穩定的資本保護。


儘管防禦雙動能策略在風險管理方面具有顯著優勢,但也有一些潛在的缺點:

  • 牛市中可能錯過增長:當市場快速上升時,如果過早轉向避險資產,可能會錯過一些市場的上升潛力。
  • 依賴過去數據:動能策略依賴於過去的資產表現來進行投資決策,但過去的表現未必能夠保證未來的回報,在市場快速反轉時策略可能無法立即做出反應。
  • 金融市場對事件的反應速度愈來愈快:報酬率計算權動可能要適時調整,不然會跟不上市場的變化。


防禦雙動能策略是一個簡單、有效的投資方法,特別適合希望在市場不穩定時保護資本的投資者,通過靈活調整股票與避險資產的配置,這種策略能夠在不同的市場環境中達到較好的風險管理效果,相較於單純的 Buy-and-Hold 策略,防禦雙動能策略雖然可能在牛市中略顯保守,但其在熊市中的防禦能力使得它成為一個值得考慮的長期投資策略。


基於查證精神用 Portfolio Visualizer 驗證看看策略的有效性,把時間拉到2024之後…表現比Buy and Hold VOO差,呃……

ANYWAY,分享一下加速防禦雙動能的判斷小程式(每個月初執行一次)

import yfinance as yf
import pandas as pd
import sqlite3
from datetime import datetime, timedelta

# 設定 ETF 代號
symbols = ['VOO', 'SCZ', 'TLT']

# 建立 SQLite 連接
conn = sqlite3.connect('etf_data.db')
c = conn.cursor()

# 建表格(如果尚未存在)儲存每月的收盤價
c.execute('''
CREATE TABLE IF NOT EXISTS etf_monthly_close (
symbol TEXT,
date TEXT,
close_price REAL
)
''')

# 抓取 ETF 的歷史資料(過去 7 個月)
def fetch_and_store_data(symbols, conn):
end_date = datetime.now().strftime('%Y-%m-%d')
start_date = (datetime.now() - timedelta(days=7*30)).strftime('%Y-%m-%d') # 抓取過去7個月的數據

for symbol in symbols:
#print(f"正在取得 {symbol} 的資料...")
# 抓取數據
data = yf.download(symbol, start=start_date, end=end_date)
if data.empty:
print(f"未能取得 {symbol} 的資料")
#else:
#print(f"成功取得 {symbol} 的資料:\n{data.tail()}")

data.reset_index(inplace=True)
data['Date'] = pd.to_datetime(data['Date'])

# 找到每個月最後一個交易日的資料
monthly_data = data.groupby(data['Date'].dt.to_period('M')).tail(1)

#print(f"{symbol} 每月最後一個交易日的資料:\n{monthly_data}")

# 檢查資料庫中是否已有該月份的資料,沒有的話才寫入
for _, row in monthly_data.iterrows():
c.execute('''
SELECT * FROM etf_monthly_close
WHERE symbol = ? AND date = ?
''', (symbol, row['Date'].strftime('%Y-%m-%d')))
result = c.fetchone()

if result is None:
# 插入新的數據
c.execute('''
INSERT INTO etf_monthly_close (symbol, date, close_price)
VALUES (?, ?, ?)
''', (symbol, row['Date'].strftime('%Y-%m-%d'), row['Close']))
#print(f"插入 {symbol} 的 {row['Date'].strftime('%Y-%m-%d')} 資料")

conn.commit()

# 計算報酬率的函數
def calculate_returns(df, symbol):
df_symbol = df[df['symbol'] == symbol].copy()
df_symbol.set_index('date', inplace=True)

# 計算 1 個月、3 個月、6 個月報酬率
df_symbol['month_1_return'] = df_symbol['close_price'].pct_change(1)
df_symbol['month_3_return'] = df_symbol['close_price'].pct_change(3)
df_symbol['month_6_return'] = df_symbol['close_price'].pct_change(6)

# 刪除 NaN
df_symbol.dropna(inplace=True)

return df_symbol

# 取得資料並存入資料庫
fetch_and_store_data(symbols, conn)

# 從資料庫中讀取所有 symbol 的資料
query = '''
SELECT symbol, date, close_price
FROM etf_monthly_close
ORDER BY symbol, date
'''
df = pd.read_sql(query, conn)
df['date'] = pd.to_datetime(df['date'])

# 確認已經讀取了 VOOSCZTLT 的資料
#print(f"從資料庫讀取的資料:\n{df}")

# 檢查每個 symbol 的資料是否足夠計算報酬率
for symbol in symbols:
symbol_data = df[df['symbol'] == symbol]
#print(f"{symbol} 的資料量: {len(symbol_data)} 個資料點")
#print(symbol_data)

# 計算每個 ETF 的報酬率
voo_returns = calculate_returns(df, 'VOO')
scz_returns = calculate_returns(df, 'SCZ')
tlt_returns = calculate_returns(df, 'TLT')

# 計算 VOOSCZTLT 的報酬率平均值(1 個月、3 個月、6 個月的平均)
voo_avg_return = voo_returns[['month_1_return', 'month_3_return', 'month_6_return']].mean(skipna=True).mean()
scz_avg_return = scz_returns[['month_1_return', 'month_3_return', 'month_6_return']].mean(skipna=True).mean()
tlt_avg_return = tlt_returns[['month_1_return', 'month_3_return', 'month_6_return']].mean(skipna=True).mean()

# 檢查報酬率是否有 NaN
print("VOO 的報酬率:")
print(voo_returns[['month_1_return', 'month_3_return', 'month_6_return']])

print("SCZ 的報酬率:")
print(scz_returns[['month_1_return', 'month_3_return', 'month_6_return']])

print("TLT 的報酬率:")
print(tlt_returns[['month_1_return', 'month_3_return', 'month_6_return']])


# 比較 VOOSCZ 的平均報酬率
if not voo_returns.empty and voo_avg_return > scz_avg_return:
if voo_avg_return > 0:
result = 'VOO'
else:
if not tlt_returns.empty and 'month_1_return' in tlt_returns.columns and not tlt_returns['month_1_return'].isna().all():
if tlt_returns['month_1_return'].iloc[-1] > 0:
result = 'TLT'
else:
result = 'CASH'
else:
result = 'CASH'
else:
if scz_avg_return > 0:
result = 'SCZ'
else:
if not tlt_returns.empty and 'month_1_return' in tlt_returns.columns and not tlt_returns['month_1_return'].isna().all():
if tlt_returns['month_1_return'].iloc[-1] > 0:
result = 'TLT'
else:
result = 'CASH'
else:
result = 'CASH'

# 回傳結果及報酬率
print(f"VOO 平均報酬率: {voo_avg_return:.4f}")
print(f"SCZ 平均報酬率: {scz_avg_return:.4f}")
print(f"TLT 平均報酬率: {tlt_avg_return:.4f}")
print(f"最終選擇: {result}")

# 關閉資料庫連接
conn.close()


強烈懷疑 Buy-and-Hold VOO 是真王道,持續反覆打臉自己為什麼不加入大盤到底!?

14會員
35內容數
佛系投資.估值優先
留言0
查看全部
發表第一個留言支持創作者!
蘇波麟投資與生活 的其他內容
Benjamin Graham提出的Graham Formula和Graham Number,股價估值方法對於訂定公司內在價值和合理市值的不同計算方式。Graham Formula重點在於評估公司未來成長潛力,而Graham Number則著重於計算保守的安全邊際,並提供穩健投資策略的指引。
既年初的臺企銀再等等這篇文章寫完等半年後。原本預期提存金額在備抵呆帳/逾期放款比例拉升後,獲利數字可以解除封印,但逾放比提存許多金額後仍然起起伏伏,觀察臺企銀自結合併盈餘從5月的0.16降為6月的0.09的態勢感覺又是大量提存。
璟德專注於高頻整合元件與模組的設計及製造,處於景氣循環的復甦階段,擺脫疫情帶來的衝擊,營收和利潤逐步回升;市場需求持續增長,高頻元件和模組的需求隨著5G技術的普及和物聯網的快速發展將持續增長。總體來看,璟德展現了穩健的財務表現,擁有良好的技術優勢和市場定位
或可落袋為安。
今年綜所稅各家銀行、信用卡、行動支付的回饋都縮水,加上線上刷卡/台灣Pay/行動支付三者只能擇一選擇,所以很多銀行之間的回饋是有衝突,整理既有現金回饋方案(不考慮分期零利率)的無腦攻略:
台企銀說不定有戲,再等等吧
Benjamin Graham提出的Graham Formula和Graham Number,股價估值方法對於訂定公司內在價值和合理市值的不同計算方式。Graham Formula重點在於評估公司未來成長潛力,而Graham Number則著重於計算保守的安全邊際,並提供穩健投資策略的指引。
既年初的臺企銀再等等這篇文章寫完等半年後。原本預期提存金額在備抵呆帳/逾期放款比例拉升後,獲利數字可以解除封印,但逾放比提存許多金額後仍然起起伏伏,觀察臺企銀自結合併盈餘從5月的0.16降為6月的0.09的態勢感覺又是大量提存。
璟德專注於高頻整合元件與模組的設計及製造,處於景氣循環的復甦階段,擺脫疫情帶來的衝擊,營收和利潤逐步回升;市場需求持續增長,高頻元件和模組的需求隨著5G技術的普及和物聯網的快速發展將持續增長。總體來看,璟德展現了穩健的財務表現,擁有良好的技術優勢和市場定位
或可落袋為安。
今年綜所稅各家銀行、信用卡、行動支付的回饋都縮水,加上線上刷卡/台灣Pay/行動支付三者只能擇一選擇,所以很多銀行之間的回饋是有衝突,整理既有現金回饋方案(不考慮分期零利率)的無腦攻略:
台企銀說不定有戲,再等等吧
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
    接續上一篇文章,而是要從這些跌深股之中,挑選適合逢低買進入場的標的。因為已經跌到相對低點了,只要一有風吹草動,很容易就順勢上漲,不管有沒有基本面都是有可能發生的,這也是增加勝率的一個較好的作法。看看那些飆股,為何會漲?會漲多久?其實誰也不能完全預測得到,但從這些跌深股挑選,
Thumbnail
  接續上一篇文章,這樣的作法就是一種折衷說,不能說是最好,但也不會過於偏頗。要知道,股市沒有什麼是不可能發生的,原本以為不可能再往上漲的個股,卻頻頻創高,可以漲到超過一倍;相對的,以為已經跌到底部了,卻還可以繼續破底,往更低點探去。因此,唯一不變的就是要有耐心,等待入場及出場機會,不隨著
Thumbnail
分批入場、選擇高殖利率且公司優良的股票,在急跌時入場,降低風險。
Thumbnail
這篇文章介紹壓力與支撐是怎麼來的? 並如何利用壓力與支撐位來判斷股票的買賣時機,從而提高交易的成功率和收益。此外,也分享了選股的一些規則和觀念,以及交易中的經驗與建議。
Thumbnail
本文探討了交易波動大的股票時需要考慮的因素,並提出了一套操作架構和規則。透過控制虧損在一定範圍內,以及選擇持續上漲趨勢的股票,提高勝率、降低損失、並實現高回報。
Thumbnail
金融市場操作方式繁多,投資者應該在操作選擇上作出明智的選擇,避免資金上的損失。除了數學上告訴我們,投資應該要儘量做多並且壓低每次虧損的比例,並且長期獲利的角度來看,股市的走勢長期走多,這些都有利於多方長期獲利。對於短線交易,投資者更應該注意控制交易頻率和避免輕易曝險的空間。
Thumbnail
動能投資法是一本實戰策略書,對於正在學習建立策略的人有幫助。本文針對書中的策略寫法進行討論,並進行策略實測結果與策略分析,最後提出個人看法和心得。
Thumbnail
重點摘要: 1. 『選擇權』隱含波動率飆升,顯示已有大部位進行避險。 2. 『散戶指標』持續樂觀,小心修正風險。 3. 『融資總額』持續走高,融資帶動近2個月的大漲行情。 簡單來說:漲幅過高的背景下,一但有任何的風吹草動,都有可能引起價格修正多殺多的結果;能做的就是選擇強健的資產、建立部分的避險部位
Thumbnail
本書提出動能投資策略的理論基礎和實務操作細節。透過量化分析篩選具動能個股、設立市場進場條件、以風險管理部位規模、明確止損止賺條件,並定期檢視微調,建立一套系統化的交易規則,降低主觀判斷因素,提高投資穩定獲利。適合投資領域初學者作為制定自身交易計畫的參考指南。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
    接續上一篇文章,而是要從這些跌深股之中,挑選適合逢低買進入場的標的。因為已經跌到相對低點了,只要一有風吹草動,很容易就順勢上漲,不管有沒有基本面都是有可能發生的,這也是增加勝率的一個較好的作法。看看那些飆股,為何會漲?會漲多久?其實誰也不能完全預測得到,但從這些跌深股挑選,
Thumbnail
  接續上一篇文章,這樣的作法就是一種折衷說,不能說是最好,但也不會過於偏頗。要知道,股市沒有什麼是不可能發生的,原本以為不可能再往上漲的個股,卻頻頻創高,可以漲到超過一倍;相對的,以為已經跌到底部了,卻還可以繼續破底,往更低點探去。因此,唯一不變的就是要有耐心,等待入場及出場機會,不隨著
Thumbnail
分批入場、選擇高殖利率且公司優良的股票,在急跌時入場,降低風險。
Thumbnail
這篇文章介紹壓力與支撐是怎麼來的? 並如何利用壓力與支撐位來判斷股票的買賣時機,從而提高交易的成功率和收益。此外,也分享了選股的一些規則和觀念,以及交易中的經驗與建議。
Thumbnail
本文探討了交易波動大的股票時需要考慮的因素,並提出了一套操作架構和規則。透過控制虧損在一定範圍內,以及選擇持續上漲趨勢的股票,提高勝率、降低損失、並實現高回報。
Thumbnail
金融市場操作方式繁多,投資者應該在操作選擇上作出明智的選擇,避免資金上的損失。除了數學上告訴我們,投資應該要儘量做多並且壓低每次虧損的比例,並且長期獲利的角度來看,股市的走勢長期走多,這些都有利於多方長期獲利。對於短線交易,投資者更應該注意控制交易頻率和避免輕易曝險的空間。
Thumbnail
動能投資法是一本實戰策略書,對於正在學習建立策略的人有幫助。本文針對書中的策略寫法進行討論,並進行策略實測結果與策略分析,最後提出個人看法和心得。
Thumbnail
重點摘要: 1. 『選擇權』隱含波動率飆升,顯示已有大部位進行避險。 2. 『散戶指標』持續樂觀,小心修正風險。 3. 『融資總額』持續走高,融資帶動近2個月的大漲行情。 簡單來說:漲幅過高的背景下,一但有任何的風吹草動,都有可能引起價格修正多殺多的結果;能做的就是選擇強健的資產、建立部分的避險部位
Thumbnail
本書提出動能投資策略的理論基礎和實務操作細節。透過量化分析篩選具動能個股、設立市場進場條件、以風險管理部位規模、明確止損止賺條件,並定期檢視微調,建立一套系統化的交易規則,降低主觀判斷因素,提高投資穩定獲利。適合投資領域初學者作為制定自身交易計畫的參考指南。