一、ASI指标的计算

二、生成交易信息

import pandas as pdimport numpy as npimport pandas_datareader as pdrfrom datetime import datetime
# 计算CRSI指标def calculate_crsi(data, period=14): data['H-L'] = data['High'] - data['Low'] data['RSI'] = talib.RSI(data['Close'], timeperiod=period) data['CRSI'] = (data['RSI'] + (100 * data['H-L'] / data['High'])) / 2 return data
# 设置CRSI阈值buy_threshold = 70sell_threshold = 30
# 生成交易信号data = calculate_crsi(data)data['Signal'] = 0data['Position'] = 0
# 当CRSI值超过买入阈值时买入data.loc[data['CRSI'] > buy_threshold, 'Signal'] = 1# 当CRSI值低于卖出阈值时卖出data.loc[data['CRSI'] < sell_threshold, 'Signal'] = -1
# 计算持仓data['Position'] = data['Signal'].diff()
# 回测策略def backtest_strategy(data): data['Strategy_Returns'] = data['Position'].shift(1) * data['Close'].pct_change() data['Cumulative_Returns'] = (1 + data['Strategy_Returns']).cumprod() return data
四、结论
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/105412
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!