使用Python编写一个简单的股票KDJ交易策略

编写了一个kdj交易策略模板,用户自已去优化吧。

import pandas as pd

import numpy as np

# 计算KDJ指标

def calculate_kdj(df, n=9, m1=3, m2=3):

df[‘lowest_low’] = df[‘low’].rolling(window=n).min()

df[‘highest_high’] = df[‘high’].rolling(window=n).max()

df[‘rsv’] = (df[‘close’] – df[‘lowest_low’]) / (df[‘highest_high’] – df[‘lowest_low’]) * 100

df[‘kdj_k’] = df[‘rsv’].ewm(com=m1-1).mean()

df[‘kdj_d’] = df[‘kdj_k’].ewm(com=m2-1).mean()

df[‘kdj_j’] = 3 * df[‘kdj_k’] – 2 * df[‘kdj_d’]

return df

# 简单的KDJ交易策略

def kdj_strategy(df):

position = 0 # 仓位,0表示空仓,1表示多仓

for i in range(1, len(df)):

# 当K线上穿D线时,买入

if df.loc[i-1, ‘kdj_k’] < df.loci-1 kdj_d and df.loci kdj_k> df.loc[i, ‘kdj_d’]:

if position == 0:

print(“买入:”, df.loc[i, ‘close’])

position = 1

# 当K线下穿D线时,卖出

elif df.loc[i-1, ‘kdj_k’] > df.loc[i-1, ‘kdj_d’] and df.loc[i, ‘kdj_k’] < df.loc[i, ‘kdj_d’]:

if position == 1:

print(“卖出:”, df.loc[i, ‘close’])

position = 0

# 读取数据

df = pd.read_csv(‘data.csv’)

# 计算KDJ指标

df = calculate_kdj(df)

# 执行KDJ交易策略

kdj_strategy(df)

上述代码中,calculate_kdj函数用于计算KDJ指标,kdj_strategy函数实现了简单的KDJ交易策略。您可以根据实际需求进行修改和优化。另外,代码中的数据来源于”data.csv”文件,请根据实际情况修改文件路径或使用其他方式获取数据。以上代码仅用于软件学习研究之用。

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

(0)
股市刺客的头像股市刺客
上一篇 14分钟前
下一篇 2024 年 11 月 11 日

相关推荐

发表回复

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