金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2171|回复: 12

请问macd指标在python中表达的函数是什么?

[复制链接]

3976

主题

4045

帖子

4070

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2023-11-8 09:09 | 显示全部楼层 |阅读模式
请教 :macd指标在python中表达的函数是什么?

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-11-8 09:18 | 显示全部楼层
直接使用talib第三方库
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-11-8 10:25 | 显示全部楼层
import pandas as pd
#计算MACD指标   
def calculate_macd(data, fast_period=12, slow_period=26, signal_period=9):   
    df = pd.DataFrame(data,columns=['close'])
    # 计算快速线(DIF)
    fast_ema = df['close'].ewm(span=fast_period, adjust=False).mean()
    slow_ema = df['close'].ewm(span=slow_period, adjust=False).mean()
    dif = fast_ema - slow_ema   
    # 计算慢速线(DEA)
    dea = dif.ewm(span=signal_period, adjust=False).mean()   
    macd = (dif - dea) * 2   
    return dif.values, dea.values, macd.values


调用上面这个函数,把K线数据data传递进去就行了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

7

帖子

7

积分

Rank: 1

等级: 新手上路

注册:
2023-11-8
曾用名:
发表于 2023-11-8 10:46 | 显示全部楼层
谢谢!在日线上显示2日和周线macd,请问如何表示?
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-11-8 10:50 | 显示全部楼层
py不支持加载到k线图,你可以用pel直接引用指定周期的数据
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

7

帖子

7

积分

Rank: 1

等级: 新手上路

注册:
2023-11-8
曾用名:
发表于 2023-11-8 10:54 | 显示全部楼层
    df['DIEF'], df['DEA'], df['MACD_1'] = talib.MACD(df['close'].values,
                                                                fastperiod=12,
                                                                slowperiod=26,
                                                                signalperiod=9)
    #多周期调整:step;最后行df序列;
    step = 2  
    df_new = pd.DataFrame()
    #对全部close做n日切片列表,i是for循环的序列值,i是切片的起点。从0开始切,
    #含0(第一个数),i+setp是终点,不含i+setp,步长=step。[i:i+setp]=step个数据
    c = [list(df['close'][i:i+step]) for i in range(0,len(df['close']),step)]
    #print(c)  #5日切片列表
    #形成n日收盘价列表,如果c这个切片的长度大于4(也就是5个),c的值为第五个数据的收盘价;
    #否则取列表中的第一个数据(列表最后一个数据,怎么表达?),i的取值从0到列表总数-1
    #df_new['b'] = [c[i][2] if len(c[i])>2 else c[i][0] for i in range(0,len(c)) ]
    df_new['b'] = [c[i][0]  for i in range(0,len(c)) ]
    #print(df_new['b'])
    #取n日收盘价代入后得到的含macd的数组
    b = talib.MACD(df_new['b'].values,fastperiod=12,slowperiod=26,signalperiod=9)
    #print(b)  #数组2列 -1.98439015e+00, -1.35804134e+00])),为什么不能代入日线公式?
    # 对b[2]遍历,每个元素重复step遍,取值区间从0到数据总数-1,步长=step
    df['MACD_2'] = [item for item in b[2] for i in range(step)][0:len(df['close'])]

    step = 5
    df_new = pd.DataFrame()
    c = [list(df['close'][i:i+step]) for i in range(0,len(df['close']),step)]
    df_new['b'] = [c[i][4] if len(c[i])>4 else c[i][0] for i in range(0,len(c)) ]
    b = talib.MACD(df_new['b'].values,fastperiod=12,slowperiod=26,signalperiod=9)
    df['MACD_5'] = [item for item in b[2] for i in range(step)][0:len(df['close'])]
这几个指标,日线准确,但2日和周线不准确。周线没有把本周最后交易日数据作为本周数据,而是把5天作为周线简单处理。请问如何修改?
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-11-8 11:27 | 显示全部楼层
本帖最后由 技术006 于 2023-11-8 12:39 编辑

你这个代码不是基于金字塔的数据环境吧?
在python中,可以直接使用history_bars获取指定周期的数据。然后对数据直接进行相关算法运算即可。至于外部的数据合成算法不在技术支持范畴内。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

7

帖子

7

积分

Rank: 1

等级: 新手上路

注册:
2023-11-8
曾用名:
发表于 2023-11-8 12:13 | 显示全部楼层
直接使用history_bars,可以举一个显示周线的例子吗?
金字塔界面,可以显示日线指标,但无法显示周线指标。
            
M日:"MACD.MACD1#d"     COLORGREEN ;
M周:"MACD.MACD1#week"  COLORMAGENTA linethick1 ;   
回复

使用道具 举报

1

主题

7

帖子

7

积分

Rank: 1

等级: 新手上路

注册:
2023-11-8
曾用名:
发表于 2023-11-8 12:24 | 显示全部楼层
请问有没有金字塔py接口的编程使用说明?
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-11-8 13:44 | 显示全部楼层
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 12:52 , Processed in 0.229174 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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