一、PSY指标的计算
-
N 是在给定周期内股价上涨的天数。 -
M 是给定周期内的总交易天数。
二、生成交易信息
三、心理线指标PSY策略量化实战

import pandas as pd
import numpy as np
import pandas_datareader as pdr
from datetime import datetime
# 计算PSY指标
def calculate_psy(data, period=12):
data['PSY'] = (data['Close'].shift(1) < data['Close']).rolling(window=period).sum() / period * 100
return data
# 设置PSY阈值
overbought_threshold = 80
oversold_threshold = 20
# 生成交易信号
data = calculate_psy(data)
data['Signal'] = 0
data['Position'] = 0
# 当PSY值超过超买阈值时卖出
data.loc[data['PSY'] > overbought_threshold, 'Signal'] = -1
# 当PSY值低于超卖阈值时买入
data.loc[data['PSY'] < oversold_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/105414
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!