加速防禦雙動能投資法

更新 發佈閱讀 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 是真王道,持續反覆打臉自己為什麼不加入大盤到底!?

留言
avatar-img
蘇波麟投資與生活
21會員
56內容數
佛系投資.估值優先
2025/04/09
本文分享2024年10月至2025年3月VOO、SCZ、TLT的月度動量數據以及交易紀錄。回顧此期間的投資表現,發現紀律操作可以避開4月的大跌。
Thumbnail
2025/04/09
本文分享2024年10月至2025年3月VOO、SCZ、TLT的月度動量數據以及交易紀錄。回顧此期間的投資表現,發現紀律操作可以避開4月的大跌。
Thumbnail
2025/03/20
透過AI開發的「持股法說會Telegram通知」小工具,利用Telegram即時通訊,推播個人持股公司法說會訊息,不再錯過重要資訊。
Thumbnail
2025/03/20
透過AI開發的「持股法說會Telegram通知」小工具,利用Telegram即時通訊,推播個人持股公司法說會訊息,不再錯過重要資訊。
Thumbnail
2025/02/26
分享個人使用預估EPS自動化工具及 Telegram 通知提升效率的經驗,以紅、橘、綠燈號顯示股價與預估便宜價/昂貴價的比較結果。
Thumbnail
2025/02/26
分享個人使用預估EPS自動化工具及 Telegram 通知提升效率的經驗,以紅、橘、綠燈號顯示股價與預估便宜價/昂貴價的比較結果。
Thumbnail
看更多
你可能也想看
Thumbnail
本篇文章深入剖析市場風險評估與應對策略,強調穩健風險管理對長期投資成功的重要性。透過分析市場當前狀況,並模擬五種可能走勢,提供明確的應對策略,幫助投資者降低風險、提升決策品質。無論市場上漲、震盪或崩跌,都能從中找到最佳行動方案,確保在波動中穩健獲利,笑到最後!
Thumbnail
本篇文章深入剖析市場風險評估與應對策略,強調穩健風險管理對長期投資成功的重要性。透過分析市場當前狀況,並模擬五種可能走勢,提供明確的應對策略,幫助投資者降低風險、提升決策品質。無論市場上漲、震盪或崩跌,都能從中找到最佳行動方案,確保在波動中穩健獲利,笑到最後!
Thumbnail
股災來臨時,如何保護您的投資組合並尋找增值機會?本文提供一套有效的避險策略,包括持有適量現金、審慎應對空頭趨勢、熊市中的持倉策略、利用選擇權進行避險以及再投資策略,協助您在市場動盪中降低風險,並在市場回穩時獲得更高的收益。
Thumbnail
股災來臨時,如何保護您的投資組合並尋找增值機會?本文提供一套有效的避險策略,包括持有適量現金、審慎應對空頭趨勢、熊市中的持倉策略、利用選擇權進行避險以及再投資策略,協助您在市場動盪中降低風險,並在市場回穩時獲得更高的收益。
Thumbnail
本策略以平滑變動率篩選強勢股,利用MACD慢線確認多空方向。採20日新高突破為進場點,10日低點為初始停損,並輔以39日ATR作為寬幅追蹤停損。嚴格執行單筆1%風險控管與總風險20%上限,旨在系統化捕捉長線趨勢獲利。
Thumbnail
本策略以平滑變動率篩選強勢股,利用MACD慢線確認多空方向。採20日新高突破為進場點,10日低點為初始停損,並輔以39日ATR作為寬幅追蹤停損。嚴格執行單筆1%風險控管與總風險20%上限,旨在系統化捕捉長線趨勢獲利。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本策略利用平滑變動率選股,並依據唐恩‧史坦尼茲法則,在週線MACD多頭趨勢下,等待日線勁道指數回檔。透過突破近兩日高點確認進場,利用緊密初始停損換取高部位規模,並以ATR(39)追蹤停損,在嚴格的1%風險控管下捕捉趨勢波段。
Thumbnail
本策略利用平滑變動率選股,並依據唐恩‧史坦尼茲法則,在週線MACD多頭趨勢下,等待日線勁道指數回檔。透過突破近兩日高點確認進場,利用緊密初始停損換取高部位規模,並以ATR(39)追蹤停損,在嚴格的1%風險控管下捕捉趨勢波段。
Thumbnail
2B法則專注捕捉創新高/低後的假突破轉折。利用極窄停損換取高盈虧比,適用於各時間週期。需嚴格執行停損並具備再進場紀律,以應對主力洗盤,是抓取趨勢反轉初期的激進利器。
Thumbnail
2B法則專注捕捉創新高/低後的假突破轉折。利用極窄停損換取高盈虧比,適用於各時間週期。需嚴格執行停損並具備再進場紀律,以應對主力洗盤,是抓取趨勢反轉初期的激進利器。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
加速防禦雙動能策略是一個有效的風險管理方法,透過結合相對動能和絕對動能兩種方式,讓投資者在市場上漲時能夠抓住機會,而在市場下跌時則能降低風險,從而達到「進可攻,退可守」的效果。
Thumbnail
加速防禦雙動能策略是一個有效的風險管理方法,透過結合相對動能和絕對動能兩種方式,讓投資者在市場上漲時能夠抓住機會,而在市場下跌時則能降低風險,從而達到「進可攻,退可守」的效果。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分享閱讀《不確定性時代的投資兵法》的心得,將投資比作作戰,闡述兩者在不確定性、快速決策、風險管理和勝負結果上的相似性。文章並將常見的價值投資、順勢投資和當沖策略,比喻為不同的軍事戰略,同時強調執行策略所需的實戰技能和快速應變能力。
Thumbnail
本文分享閱讀《不確定性時代的投資兵法》的心得,將投資比作作戰,闡述兩者在不確定性、快速決策、風險管理和勝負結果上的相似性。文章並將常見的價值投資、順勢投資和當沖策略,比喻為不同的軍事戰略,同時強調執行策略所需的實戰技能和快速應變能力。
Thumbnail
本文探討投資操作策略,包含波段操作與長期持有兩種方式的優缺點,並強調產業趨勢分析的重要性,以及風險管理、心理素質在投資獲利中的關鍵角色。文中也點出投資人常見錯誤,例如頻繁交易導致獲利縮水,以及新手初期幸運的真相,最終呼籲投資者應制定策略並堅持執行。
Thumbnail
本文探討投資操作策略,包含波段操作與長期持有兩種方式的優缺點,並強調產業趨勢分析的重要性,以及風險管理、心理素質在投資獲利中的關鍵角色。文中也點出投資人常見錯誤,例如頻繁交易導致獲利縮水,以及新手初期幸運的真相,最終呼籲投資者應制定策略並堅持執行。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News