加速防禦雙動能投資法

閱讀時間約 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
15會員
36內容數
佛系投資.估值優先
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
蘇波麟投資與生活 的其他內容
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
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
    接續上一篇文章,而是要從這些跌深股之中,挑選適合逢低買進入場的標的。因為已經跌到相對低點了,只要一有風吹草動,很容易就順勢上漲,不管有沒有基本面都是有可能發生的,這也是增加勝率的一個較好的作法。看看那些飆股,為何會漲?會漲多久?其實誰也不能完全預測得到,但從這些跌深股挑選,
Thumbnail
  接續上一篇文章,這樣的作法就是一種折衷說,不能說是最好,但也不會過於偏頗。要知道,股市沒有什麼是不可能發生的,原本以為不可能再往上漲的個股,卻頻頻創高,可以漲到超過一倍;相對的,以為已經跌到底部了,卻還可以繼續破底,往更低點探去。因此,唯一不變的就是要有耐心,等待入場及出場機會,不隨著
Thumbnail
分批入場、選擇高殖利率且公司優良的股票,在急跌時入場,降低風險。
Thumbnail
這篇文章介紹壓力與支撐是怎麼來的? 並如何利用壓力與支撐位來判斷股票的買賣時機,從而提高交易的成功率和收益。此外,也分享了選股的一些規則和觀念,以及交易中的經驗與建議。
Thumbnail
本文探討了交易波動大的股票時需要考慮的因素,並提出了一套操作架構和規則。透過控制虧損在一定範圍內,以及選擇持續上漲趨勢的股票,提高勝率、降低損失、並實現高回報。
Thumbnail
金融市場操作方式繁多,投資者應該在操作選擇上作出明智的選擇,避免資金上的損失。除了數學上告訴我們,投資應該要儘量做多並且壓低每次虧損的比例,並且長期獲利的角度來看,股市的走勢長期走多,這些都有利於多方長期獲利。對於短線交易,投資者更應該注意控制交易頻率和避免輕易曝險的空間。
Thumbnail
動能投資法是一本實戰策略書,對於正在學習建立策略的人有幫助。本文針對書中的策略寫法進行討論,並進行策略實測結果與策略分析,最後提出個人看法和心得。
Thumbnail
重點摘要: 1. 『選擇權』隱含波動率飆升,顯示已有大部位進行避險。 2. 『散戶指標』持續樂觀,小心修正風險。 3. 『融資總額』持續走高,融資帶動近2個月的大漲行情。 簡單來說:漲幅過高的背景下,一但有任何的風吹草動,都有可能引起價格修正多殺多的結果;能做的就是選擇強健的資產、建立部分的避險部位
Thumbnail
本書提出動能投資策略的理論基礎和實務操作細節。透過量化分析篩選具動能個股、設立市場進場條件、以風險管理部位規模、明確止損止賺條件,並定期檢視微調,建立一套系統化的交易規則,降低主觀判斷因素,提高投資穩定獲利。適合投資領域初學者作為制定自身交易計畫的參考指南。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
    接續上一篇文章,而是要從這些跌深股之中,挑選適合逢低買進入場的標的。因為已經跌到相對低點了,只要一有風吹草動,很容易就順勢上漲,不管有沒有基本面都是有可能發生的,這也是增加勝率的一個較好的作法。看看那些飆股,為何會漲?會漲多久?其實誰也不能完全預測得到,但從這些跌深股挑選,
Thumbnail
  接續上一篇文章,這樣的作法就是一種折衷說,不能說是最好,但也不會過於偏頗。要知道,股市沒有什麼是不可能發生的,原本以為不可能再往上漲的個股,卻頻頻創高,可以漲到超過一倍;相對的,以為已經跌到底部了,卻還可以繼續破底,往更低點探去。因此,唯一不變的就是要有耐心,等待入場及出場機會,不隨著
Thumbnail
分批入場、選擇高殖利率且公司優良的股票,在急跌時入場,降低風險。
Thumbnail
這篇文章介紹壓力與支撐是怎麼來的? 並如何利用壓力與支撐位來判斷股票的買賣時機,從而提高交易的成功率和收益。此外,也分享了選股的一些規則和觀念,以及交易中的經驗與建議。
Thumbnail
本文探討了交易波動大的股票時需要考慮的因素,並提出了一套操作架構和規則。透過控制虧損在一定範圍內,以及選擇持續上漲趨勢的股票,提高勝率、降低損失、並實現高回報。
Thumbnail
金融市場操作方式繁多,投資者應該在操作選擇上作出明智的選擇,避免資金上的損失。除了數學上告訴我們,投資應該要儘量做多並且壓低每次虧損的比例,並且長期獲利的角度來看,股市的走勢長期走多,這些都有利於多方長期獲利。對於短線交易,投資者更應該注意控制交易頻率和避免輕易曝險的空間。
Thumbnail
動能投資法是一本實戰策略書,對於正在學習建立策略的人有幫助。本文針對書中的策略寫法進行討論,並進行策略實測結果與策略分析,最後提出個人看法和心得。
Thumbnail
重點摘要: 1. 『選擇權』隱含波動率飆升,顯示已有大部位進行避險。 2. 『散戶指標』持續樂觀,小心修正風險。 3. 『融資總額』持續走高,融資帶動近2個月的大漲行情。 簡單來說:漲幅過高的背景下,一但有任何的風吹草動,都有可能引起價格修正多殺多的結果;能做的就是選擇強健的資產、建立部分的避險部位
Thumbnail
本書提出動能投資策略的理論基礎和實務操作細節。透過量化分析篩選具動能個股、設立市場進場條件、以風險管理部位規模、明確止損止賺條件,並定期檢視微調,建立一套系統化的交易規則,降低主觀判斷因素,提高投資穩定獲利。適合投資領域初學者作為制定自身交易計畫的參考指南。