查看全集:💎Quantopia量化分析56讲
杠杆(Leverage)是通过借贷资金放大投资规模的金融操作。例如您有10万元本金,通过借入10万元资金,可将总投资规模扩大至20万元。其本质是通过债务工具(如保证金交易)来增加可投资金额。
关键公式:
假设股票上涨5%时:
# 无杠杆情况
本金 = 100000
收益率 = 0.05
收益 = 本金 * 收益率 # 5000元
# 2倍杠杆情况
借入资金 = 100000
总资金 = 本金 + 借入资金
收益 = 总资金 * 收益率 # 10000元
杠杆收益率 = 收益 / 本金 # 10%
小练习:若借入30万元,本金10万元,收益率为8%,请计算杠杆比率和实际收益率
实际借贷需要考虑利息成本:
本金 = 100000
借入资金 = 50000
利率 = 0.02
资产收益率 = 0.05
利息支出 = 借入资金 * 利率 # 1000元
总收益 = (本金 + 借入资金) * 资产收益率 - 利息支出 # 6500元
实际收益率 = 总收益 / 本金 # 6.5%
现实中的贷款通常分期偿还,需考虑:
import yfinance as yf
import matplotlib.pyplot as plt
# 获取苹果和微软历史数据
start = '2020-01-01'
end = '2023-01-01'
data = yf.download(['AAPL', 'MSFT'], start=start, end=end)['Close']
# 计算收益率
returns = data.pct_change().dropna()
returns.plot(figsize=(12,6))
plt.title('股票收益率对比')
plt.show()
def leverage_effect(base, borrow, rate, asset_return):
total = base + borrow
profit = total * asset_return
interest = borrow * rate
net_return = (profit - interest) / base
return net_return
# 测试不同杠杆倍数
leverage_ratios = [1, 2, 3, 4]
results = [leverage_effect(100000, 100000*(r-1), 0.04, 0.08) for r in leverage_ratios]
plt.bar([str(r)+'x' for r in leverage_ratios], results)
plt.title('不同杠杆倍数的收益率对比')
plt.xlabel('杠杆倍数')
plt.ylabel('净收益率')
plt.show()
实战练习:修改上述代码,测试当资产收益率为-5%时各杠杆倍数下的亏损情况
衡量风险调整后收益:
strategies = {
'A': {'return': 0.22, 'vol': 0.15},
'B': {'return': 0.05, 'vol': 0.02}
}
for name, params in strategies.items():
sharpe = (params['return'] - 0.02)/params['vol']
print(f"{name}策略夏普比率: {sharpe:.2f}")
# 对B策略应用3倍杠杆
leveraged_return = 0.05*3 - 0.02*3
leveraged_vol = 0.02*3
print(f"杠杆B策略夏普比率: {(leveraged_return - 0.02)/leveraged_vol:.2f}")
def adjust_leverage(volatility, current_lev):
if volatility > 0.2:
return max(1, current_lev*0.8)
else:
return min(3, current_lev*1.1)
附录:历史杠杆灾难案例
终极挑战:构建一个动态杠杆调整模型,根据市场波动率自动调整杠杆倍数,并回测其效果
通过本教程,您已掌握杠杆的基本原理、计算方法及风险管理要点。记住:杠杆是把双刃剑,使用前务必充分测试策略并做好压力测试。