• [量化投资-学习笔记006]Python+TDengine从零开始搭建量化分析平台-MACD


    在上一章节介绍了 EMA 均线的计算,本节主要介绍均线的进化形态之一:MACD

    MACD (Moving Average Convergence / Divergence) 指数平滑移动平均线。MACD 是通过计算不同时间的 EMA 的差值俩判断价格趋势。

    MACD 包括 3 个值:
    长短期 EMA 差值:DIF = EMA(close,12)-EMA(close,26) (计算 12 日和 26 日 EMA 均线差值)
    信号线: DEA = EMA(DIF,9) (计算差值的 EMA 均线)
    柱状图: OSC = DIF - DEA

    通过以上公式,可以看出 MACD 可反应如下信息:

    1. DIF>0 价格上涨,DIF<0 价格下跌
    2. DEA>0 价格加速上涨,DEA<0 价格加速下跌
    3. OSC 绝对值越大,说明价格变化越剧烈

    1. 从数据库获取收盘价

    上一节,对数据进行了清洗,可以直接查询每天的收盘价,不用再使用 interval 聚合函数。

    st = '2022-06-01'
    et = '2022-10-01'
    sql = 'select tdate,close from trade_data_c.tdata where fcode="000001" and tdate>="'+st+'" and tdate<="'+et+'"'
    
    rt = fun.request_post(tdurl,sql,username,password)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. 使用 pandas 直接计算EMA

    这里 MACD 的周期设置为(12,26,9)。

    df = request_get_d(rt)
    df['DIF'] = pd.DataFrame.ewm(df['close'],span=12).mean() - pd.DataFrame.ewm(df['close'],span=26).mean()
    df['DEA'] = pd.DataFrame.ewm(df['DIF'],span=9).mean()
    df['OSC'] = df['DIF'] - df['DEA']
    
    • 1
    • 2
    • 3
    • 4

    3. 绘制图形

    plt.title("MACD")
    plt.plot(df['DIF'],'r',linewidth=1.0,label='DIF')
    plt.plot(df['DEA'],'y',linewidth=1.0,label='DEA')
    plt.bar(df.index,df['OSC']*3,label='OSC')
    plt.legend()
    plt.grid()
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    为了让图片更美观,将 OSC 进行了优化。

    在这里插入图片描述

  • 相关阅读:
    【详细介绍下PostgreSQL】
    pycharm 控制台中文乱码处理
    java学习--day11(抽象类、接口)
    【数据结构】---哈希表
    UVM环境中reset复位的处理
    adb设备调试常用命令
    Python导出word文档
    Nacos——配置中心源码详解
    Excel函数 - 多条件查找查询公式
    maven常用插件详解
  • 原文地址:https://blog.csdn.net/weixin_43700866/article/details/134246796