振动升降指标ASI策略–量化交易实战(附Python完整代码)

在量化交易领域,振动升降指标(Accumulation Swing Index,简称ASI)是一种用于识别市场趋势和潜在反转点的技术分析工具。ASI由J. Welles Wilder Jr. 在其著作《New Concepts in Technical Trading Systems》中提出,旨在通过考虑价格波动、成交量和开盘价的变化来评估市场的累积力量。今天我们将介绍ASI指标的计算方法,生成交易信息,并通过Python代码进行策略回测。

一、ASI指标的计算

ASI指标的计算较为复杂,涉及多个步骤,包括计算价格波动、累积力量和最终的ASI值。以下是ASI指标计算的基本步骤:
1.计算价格波动:首先计算价格波动,即当日最高价与最低价之差。
2.计算累积力量:然后计算累积力量,这涉及到开盘价、收盘价、最高价和最低价的比较。
3.计算ASI值:最后,将累积力量与价格波动结合起来,形成ASI指标。
ASI的计算公式为:
图片
其中:Ci是第i天的收盘价;Oi是第i天的开盘价;Hi是第i天的最高价;Li是第i天的最低价;Vi是第i天的成交量;n 是计算周期。

二、生成交易信息

在使用ASI指标生成交易信号时,我们通常会寻找ASI值的交叉点。当ASI值从下方穿过其移动平均线时,视为买入信号;当ASI值从上方穿过其移动平均线时,视为卖出信号。
三、振动升降指标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

四、结论

ASI指标是一种独特的技术分析工具,它通过考虑价格波动、成交量和开盘价的变化来评估市场的累积力量。通过Python实现ASI指标策略并进行回测,我们可以评估策略的有效性,并根据回测结果对策略进行优化。然而,需要注意的是,任何单一指标都有其局限性,因此在实际应用中,建议结合其他技术指标和基本面分析来提高交易的成功率。此外,回测结果仅能反映历史表现,未来市场表现可能会有所不同。因此,投资者在使用ASI策略时应谨慎,并结合自己的风险承受能力进行决策。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/105412
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 30 日
下一篇 2024 年 7 月 30 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注