周kdj金叉与周macd金叉买入法 (kdj月金叉周死叉日金叉能进场否)

以下是一个可以帮助您实现KDJ金叉共振买入交易策略的代码示例,包含日线、周线和月线的判断条件。

周kdj金叉与周macd金叉买入法,月线周线日线kdj金叉选股公式源码

import tushare as ts
import pandas as pd

# 获取股票数据(以600519为例)
df = ts.get_k_data('600519', start='20100101', end='20210601')
df.index = pd.to_datetime(df['date'])
df = df[['open', 'high', 'low', 'close', 'volume']]

# 计算KDJ指标
def KDJ(df, n=9, m1=3, m2=3):
    high_list = df['high'].rolling(n, min_periods=n).max()
    low_list = df['low'].rolling(n, min_periods=n).min()
    rsv = (df['close'] - low_list) / (high_list - low_list) * 100
    k_value = rsv.ewm(com=m1).mean()
    d_value = k_value.ewm(com=m2).mean()
    j_value = 3 * k_value - 2 * d_value
    return k_value, d_value, j_value

# 判断金叉共振买入条件
def buy_signal(df):
    kdj_day = KDJ(df, 9, 3, 3)
    kdj_week = KDJ(df, 9*5, 3*5, 3*5)
    kdj_month = KDJ(df, 9*20, 3*20, 3*20)
    k_day, d_day, j_day = kdj_day
    k_week, d_week, j_week = kdj_week
    k_month, d_month, j_month = kdj_month
    if k_day[-1] > d_day[-1] and k_day[-2] < d_day[-2] \
        and k_week[-1] > d_week[-1] and k_week[-2] < d_week[-2] \
        and k_month[-1] > d_month[-1] and k_month[-2] < d_month[-2]:
        return True
    else:
        return False

# 按照金叉共振买入信号进行交易
def trade(df):
    position = 0  # 0表示空仓,1表示持仓
    for i in range(20, len(df)):
        if buy_signal(df.iloc[:i+1]):
            if position == 0:
                position = 1
                buy_price = df.iloc[i]['close']
                print('buy at', buy_price, 'on', df.index[i].date())
        elif position == 1:
            sell_price = df.iloc[i]['close']
            position = 0
            print('sell at', sell_price, 'on', df.index[i].date())

周kdj金叉与周macd金叉买入法,月线周线日线kdj金叉选股公式源码

上述代码中, KDJ函数用于计算KDJ指标,buy_signal函数用于判断金叉共振买入条件是否满足,trade函数则是实现按照金叉共振信号进行交易的逻辑。

您可以将股票数据以DataFrame的形式传入 trade函数进行试验。需要注意的是,此处仅提供一个简单的交易策略示例,具体的买入、卖出点位需根据实际市场情况和个人风险承受能力进行科学调整。

周kdj金叉与周macd金叉买入法,月线周线日线kdj金叉选股公式源码