PSY心理线指标策略–量化实战(附Python代码)

心理线指标(Psychological Line, PSY)是一种反映市场心理的技术分析工具,由Joseph DiNapoli提出。它通过衡量一定周期内价格上涨与下跌的天数比例,为交易者提供了市场情绪的直观展示。

一、心理线指标PSY简介

图片

其中n为周期数,通常是12天。

PSY值的范围在0到100之间,超过80通常被认为是超买区域,而低于20则被认为是超卖区域。

二、交易信号的生成

  • 买入信号:当PSY值低于20,表明市场可能过度悲观,是一个潜在的买入机会。

  • 卖出信号:当PSY值高于80,表明市场可能过度乐观,是一个潜在的卖出机会。

三、PSY心理线指标策略量化实战

图片
import pandas as pdimport numpy as np
def calculate_psy(df, n=12):    df['Price_Change'] = df['Close'] > df['Close'].shift(1)    df['PSY'] = (df['Price_Change'].rolling(n).sum() / n) * 100    return df['PSY']
def generate_signals(df, psy_threshold_buy=20, psy_threshold_sell=80):    df['Signal'] = 0    # 生成买入信号    df.loc[df['PSY'] < psy_threshold_buy, 'Signal'] = 1    # 生成卖出信号    df.loc[df['PSY'] > psy_threshold_sell, 'Signal'] = -1    return df['Signal']
# 假设df是包含股票收盘价的DataFramepsy_values = calculate_psy(df)signals = generate_signals(df, psy_threshold_buy=20, psy_threshold_sell=80)  # 调整阈值以适应市场
# 绘制PSY指标和交易信号import matplotlib.pyplot as plt
plt.figure(figsize=(14, 7))plt.plot(df['Close'], label='Close Price')plt.plot(psy_values, label='PSY', linestyle='--')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()
  • 策略回测

策略回测是量化交易中验证交易策略有效性的重要步骤。通过历史数据模拟交易,可以评估策略的收益、风险和稳定性。

四、最后

心理线指标PSY为量化交易者提供了衡量市场情绪的有效工具。本文通过实战应用展示了PSY指标的计算、交易信号生成和策略回测的全过程,为交易者提供了一种系统的量化交易策略开发和评估方法。需注意,以上内容和代码仅为示例,实际应用中需要根据具体情况进行调整和优化。量化交易涉及复杂的数学模型和编程技能,建议交易者在充分学习和测试后,再将策略应用于实际交易中。

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

(0)
股市刺客的头像股市刺客
上一篇 5天前
下一篇 5天前

相关推荐

发表回复

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