一、阿隆指标Aroon简介
-
AR:计算自股价达到近期最高价以来的周期数,周期数随着时间递增,直到股价创新高。
-
AD:计算自股价达到近期最低价以来的周期数,周期数随着时间递增,直到股价创新低。
二、交易信号的生成
-
买入信号:当AR线从下向上穿越AD线,且AR值高于AD值时,视为买入信号。
-
卖出信号:当AD线从上向下穿越AR线,且AD值高于AR值时,视为卖出信号。
三、Aroon阿隆指标策略量化实战
import pandas as pd
import numpy as np
def calculate_aroon(df, n=14):
high_diff = (df['High'] - df['High'].shift(1)) > 0
low_diff = (df['Low'] - df['Low'].shift(1)) < 0
df['AroonUp'] = (n / (high_diff.cumsum() + n))
df['AroonDown'] = (n / (low_diff.cumsum() + n))
df['AR'] = 100 * (1 - df['AroonUp'])
df['AD'] = 100 * (1 - df['AroonDown'])
return df['AR'], df['AD']
def generate_signals(df, ar, ad):
df['Signal'] = 0
df['Signal'][ar > ad] = 1 # 买入信号
df['Signal'][ad > ar] = -1 # 卖出信号
return df['Signal']
# 假设df是包含股票最高价和最低价的DataFrame
ar, ad = calculate_aroon(df)
signals = generate_signals(df, ar, ad)
# 绘制Aroon指标和交易信号
import matplotlib.pyplot as plt
plt.figure(figsize=(14, 7))
plt.plot(df['Close'], label='Close Price', alpha=0.5)
plt.plot(ar, label='Aroon Up', color='green')
plt.plot(ad, label='Aroon Down', color='red')
plt.plot(df[signals == 1].index, df['Close'][signals == 1], '^', markersize=10, color='green', label='Buy Signal')
plt.plot(df[signals == -1].index, df['Close'][signals == -1], 'v', markersize=10, color='red', label='Sell Signal')
plt.legend()
plt.show()
策略回测
四、结语
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106020
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!