金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 67|回复: 5

关于python编辑KDJ指标问题

[复制链接]

4

主题

17

帖子

17

积分

Rank: 1

等级: 新手上路

注册:
2024-1-12
曾用名:
发表于 2024-12-8 15:28 | 显示全部楼层 |阅读模式
我在python里用两种方法编辑KDJ指标。 发现发现和金字塔自带的KDJ指标的出来的结果都不相同。
1,   
   fastk, slowd = talib.STOCH(high_prices, low_prices, close_prices, fastk_period=9, slowk_period=3, slowd_period=3)
   J = 3 * fastk - 2 * slowd


2,
# 定义参数
    N = 9  # 用于计算LLV和HHV的时间窗口大小
    P1 = 3  # 用于计算K(RSV的SMA)的时间周期
    P2 = 3  # 用于计算D(K的SMA)的时间周期

# 确保数据长度足够
    if len(AT_15m_high) < N + P1 + P2 - 1:
        raise ValueError
# 计算LLV和HHV
    RSV_values = []
    for i in range(len(AT_15m_close) - N):
        HHV_15m = np.maximum.reduce(AT_15m_high[i:i+N])
        LLV_15m = np.minimum.reduce(AT_15m_low[i:i+N])
        close_15m = AT_15m_close[i+N-1]
        if HHV_15m == LLV_15m:  
            RSV = 0
        else:
            RSV = ((close_15m - LLV_15m) / (HHV_15m - LLV_15m)) * 100
        RSV_values.append(RSV)

# 将RSV值转换为NumPy数组
    RSV_array = np.array(RSV_values)


#确保RSV数组长度足够计算K

    if len(RSV_array) < P1:
        raise ValueError("RSV数据点不足,无法计算K")

# 计算K(RSV的SMA)
    K = talib.MA(RSV_array, timeperiod=P1, matype=0)

# 确保K数组长度足够计算D
    if len(K) < P2:
        raise ValueError("K数据点不足,无法计算D")   

# 计算D(K的SMA)
    D = talib.MA(K, timeperiod=P2, matype=0)  # 使用talib库的MA函数计算SMA

# 计算J
    J = 3 * K[-1] - 2 * D[-1]  # 由于我们只有一个K和D值,所以直接取它们的最后一个元素来计算J


这两个写法都和金字塔自带的KDJ指标得到的K,D,J数值有很大的误差。请问这是怎么回事? 或者你那有现成的KDJ指标能让我炒一下吗?


回复

使用道具 举报

34

主题

9187

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-12-9 09:06 | 显示全部楼层
本帖最后由 技术006 于 2024-12-9 09:08 编辑

1.你用的是ma函数计算 kdj。自然和常规的ema计算的值存在出入。另外不同平台上对函数的封装算法也可能存在差异2.由于技术力量有效,python相关问题,我们只解答我们提供的api接口相关的问题。其余问题不在技术支持范畴。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

77

主题

201

帖子

211

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2024-12-9 22:53 | 显示全部楼层
技术006 发表于 2024-12-9 09:06
1.你用的是ma函数计算 kdj。自然和常规的ema计算的值存在出入。另外不同平台上对函数的封装算法也可能存在 ...

楼主的代码是在python中的“python模块”新建策略吗?然后第二个问题是楼主说的对比,python怎么看数值输出,能在K线图中画线吗?
回复

使用道具 举报

31

主题

7734

帖子

7744

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-10 09:09 | 显示全部楼层
不能在k线图上画线,数值就直接python里面print输出看就行了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

77

主题

201

帖子

211

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2024-12-10 13:16 | 显示全部楼层
技术008 发表于 2024-12-10 09:09
不能在k线图上画线,数值就直接python里面print输出看就行了

上面代码是在python中的“python模块”新建策略吗?能否写好发一下    我正好学习python
回复

使用道具 举报

31

主题

7734

帖子

7744

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-12-10 13:18 | 显示全部楼层
a = 5
print(a)

python里就直接这样就能输出了
其他指标等复杂的就需要用户自己去学习下对应库的使用的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-22 18:53 , Processed in 0.237516 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表