评价策略常用的各功能函数

4 篇文章 1 订阅

计算最高权益曲线

#最高权益曲线
df['max_equity'] = df['equity'].expanding().max()

1元波动图

#1元波动图
df['equity'] = (df['rate'] +1).cumprod()
#max_equity 为有史以来的最大值序列
df['max_equity'] = df['equity'].expanding().max()
mdd = round((df['equity'] / df['equity'].expanding(min_periods=1).max()).min() - 1, 3)
print(mdd)
df[['equity','max_equity']].plot()

最大回撤率

#最大回撤率
mdd = round((df['equity'] / df['equity'].expanding(min_periods=1).max()).min() - 1, 3)
print(mdd)

简单pandas策略

#pandas回测双均线策略
df['fast_sma'] = df['close'].rolling(50).mean()
df['slow_sma'] = df['close'].rolling(200).mean()
df['diff_sma'] = df['fast_sma'] - df['slow_sma']

df['signal'] = np.where(df['diff_sma']>0,1,0)
df['signal'] = np.where(df['diff_sma']<0,-1,df['signal'])

df["returns"] = np.log(df["close"] / df["close"].shift(1))
df["strategy"] = df["signal"].shift(1) * df["returns"]
df[[“returns”, “strategy”]].cumsum().plot()

pandas海龟策略

df['n1_high'] = df['close'].rolling(42).max().shift(1)
df['n2_low'] = df['close'].rolling(21).min().shift(1)
df[['close','n1_high','n2_low']].plot()

计算交易信号

df['signal'] = np.where(df['n1_high']>df['close'],1,0)
df['signal'] = np.where(df['close']<df['n2_low'],-1,df['signal'])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神出鬼没,指的就是我!

必须花钱,数据超好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值