一、唐奇安通道指标简介
唐奇安通道的交易信号
-
买入信号:当价格从下通道线反弹向上穿过中通道线时。
-
卖出信号:当价格从上通道线回落向下穿过中通道线时。
二、构建基于唐奇安通道的交易策略
-
确定周期长度,计算上通道线和下通道线。
-
根据上通道线和下通道线确定中通道线。
-
根据价格与通道线的交互生成交易信号。
策略回测
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 假设df是包含股票价格的DataFrame,其中'High'是最高价,'Low'是最低价
def calculate_donchian_channel(df, period):
upper_band = df['High'].rolling(window=period).max()
lower_band = df['Low'].rolling(window=period).min()
middle_band = (upper_band + lower_band) / 2
return upper_band, lower_band, middle_band
# 计算唐奇安通道
upper_band, lower_band, middle_band = calculate_donchian_channel(df, 20)
# 生成交易信号
df['Position'] = np.where((df['Close'] > middle_band) & (df['Close'].shift(1) < lower_band), 1, 0)
df['Position'] = np.where((df['Close'] < middle_band) & (df['Close'].shift(1) > upper_band), -1, df['Position'])
# 绘制唐奇安通道和交易信号
plt.figure(figsize=(14, 7))
plt.plot(df['Close'], label='Close Price', alpha=0.5)
plt.plot(upper_band, label='Upper Band', linestyle='--')
plt.plot(lower_band, label='Lower Band', linestyle='--')
plt.plot(middle_band, label='Middle Band', linestyle='-')
plt.plot(df[df['Position'] == 1].index, df['Close'][df['Position'] == 1], '^', markersize=10, color='green', label='Buy Signal')
plt.plot(df[df['Position'] == -1].index, df['Close'][df['Position'] == -1], 'v', markersize=10, color='red', label='Sell Signal')
plt.legend()
plt.show()
四、结语
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106026
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!