利用累積收益對沖整體趨勢
我很好奇一個假設的策略,你在給定時期(比如一年)做多,同時你通過每天做空並累積回報來對沖整體趨勢,所有這些都使用相同的工具(無論你正在使用 CALL 選項或實際擁有商品等)基本上複合所有利潤。這可能嗎?如果是這樣,有這個名字嗎?
這是我在 Matlab 中製作的圖表。它基本上繪製了股票在給定年份的回報與復合日收益的關係圖(並將這些收益做空以創建逆向圖)。最初的想法基本上是創造一個統計套利機會並獲得長期的 delta 中性頭寸,基本上是交易變異數/波動性。
紅色圖表是一年內每天做空的每日收益累積,藍色圖表是給定年份的股票升值。該圖的有趣之處在於,在大多數情況下,藍色圖(持有)和紅色圖(通過做空獲得的複合每日回報)之間的差異大多是正數,因此它幾乎總是以盈利告終。聽起來很奇怪!這聽起來像是一個完美的對沖,為什麼沒有人談論這個?我忽略了什麼嗎?我有錯誤嗎?這真的有利可圖嗎?
另外,這是我用來生成上圖的程式碼。如果您發現任何錯誤,請在這裡幫助我!
DIR = 'D:\hedging firm\'; FILE = strcat(DIR,'AAPL.csv'); KC = asset(FILE); KC.price = KC.price; % KC.open = KC.open; KC.high = KC.high; KC.low = KC.low; fees = 0.0035; % Fees in USD per trade difference_mkt = []; difference_fund = []; initial_balance_fund = []; multiplier = 100; balance_fund = 0; n = 252; k= 0; for i=k+n+1:length(KC.price) % SHORT difference_mkt(i) = (KC.price(i) - KC.price(i-n))/KC.price(i-n)*100; balance_fund = 0; initial_balance = 0; multiplier_mv = 100; for j=n:-1:0 if balance_fund == 0 balance_fund = multiplier_mv * KC.open(i-j); initial_balance = balance_fund; end multiplier_mv = floor(balance_fund / KC.open(i-j)); daily_gain = (KC.open(i-j) - KC.price(i-j)) * multiplier_mv - fees*multiplier_mv*2; balance_fund = balance_fund + daily_gain; end difference_fund(i) = (balance_fund-initial_balance)/initial_balance * 100; initial_balance_fund(i) = initial_balance; end net_gains = difference_mkt(k+n+1:end) + difference_fund(k+n+1:end); plot(difference_mkt(k+n+1:end)); hold on; plot(difference_fund(k+n+1:end));
如果我沒看錯的話,也就是說,你正在復合 -1 倍的每日回報,這正是反向 ETF 所做的。
顯而易見的問題是,您必須每天重新平衡您的空頭頭寸,從而降低交易成本。
不太明顯但非常重要的風險是,這種策略也會引發“變異數拖累”。想像一個假設的股票每天翻倍或減半的機率相同。從長遠來看,預計 CAGR 將為零(一路上有很多非常高和低的數字!)。從空頭來看,該策略不太可能持續一周,因為第一次翻倍事件會破壞它。這顯然是一個極端的例子,僅用於說明目的。然而,同樣的原則在較小程度上適用於更現實和更不穩定的等價物。
這就是為什麼在您的範例中,Red 可以。藍色下降很多;紅色是空頭,但只是大致收支平衡,而不是從藍色的下跌中獲得相等和相反的收益。
也許你可以在這裡找到一些見解:
統計套利金融分析師雜誌的統計,卷。2007年63期第5期
發佈時間:2007 年 10 月 2 日 Bob Robert Fernholz https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1017307