一、KDJ指标简介
二、KDJ指标交易策略
交易信号生成
-
买入信号:当%K线从下方穿越%D线,且两者都位于20以下,视为超卖区域的买入信号。
-
卖出信号:当%K线从上方穿越%D线,且两者都位于80以上,视为超买区域的卖出信号。
策略逻辑
-
使用KDJ指标的交叉点作为交易信号。
-
设置止损和止盈规则,以控制风险。
三、KDJ策略量化实战
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def calculate_kdj(df, n=9):
df['H_n'] = df['High'].rolling(window=n).max()
df['L_n'] = df['Low'].rolling(window=n).min()
df['%K'] = (df['Close'] - df['L_n']) / (df['H_n'] - df['L_n']) * 100
df['%D'] = df['%K'].rolling(window=3).mean()
df['%J'] = 3 * df['%K'] - 2 * df['%D']
return df[['Close', '%K', '%D', '%J']]
def generate_signals(df, threshold_buy=20, threshold_sell=80):
signals = pd.DataFrame(index=df.index)
signals['signal'] = 0.0 # 0 for no trade, 1 for buy, -1 for sell
signals['signal'][df['%K'] < threshold_buy] = 1
signals['signal'][df['%K'] > threshold_sell] = -1
signals.fillna(method='ffill', inplace=True) # Forward fill to handle NaNs
return signals
四、结论
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106037
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!