请到后台主题设置添加
首页 / 未命名

使用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”文件,请根据实际情况修改文件路径或使用其他方式获取数据。以上代码仅用于软件学习研究之用。

版权说明:
1.版权归本网站或原作者所有;
2.未经本网或原作者允许不得转载本文内容,否则将视为侵权;
3.转载或者引用本文内容请注明来源及原作者;
4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。
搜索
最新留言
关注我们
关注我们
微信
关注我们
微博
请到后台主题设置添加

Powered ByZ-Blog.