• python:talib.BBANDS 画股价-布林线图


    布林线口诀的要点:
    1、三线向上,中轨进,上轨出
    2、三线向下,下轨进,中轨出
    3、三轨走平,下轨进,上轨出

    python 安装使用 TA-lib 
    安装主要在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 
    这个网站找到
    TA_Lib-0.4.24-cp310-cp310-win_amd64.whl

    pip install /pypi/TA_Lib-0.4.24-cp310-cp310-win_amd64.whl

    编写 talib_boll_obv.py 如下

    1. # -*- coding: utf-8 -*-
    2. import os
    3. import sys
    4. import matplotlib.pyplot as plt
    5. import pandas as pd
    6. import tushare as ts
    7. import talib
    8. if len(sys.argv) ==2:
    9. code = sys.argv[1]
    10. else:
    11. print('usage: python talib_boll_obv.py stockcode ')
    12. sys.exit(1)
    13. if len(code) !=6:
    14. print('stock code length: 6')
    15. sys.exit(2)
    16. # help(ts.get_k_data) 了解参数
    17. df = ts.get_k_data(code, start='2023-01-01')
    18. if len(df) <30:
    19. print(" len(df) <30 ")
    20. sys.exit(2)
    21. # 取收盘价
    22. close = df['close'].values
    23. # 计算布林线
    24. df['upper'], df['mid20'], df['lower'] = talib.BBANDS(close,
    25. timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
    26. # 量价指标: OBV (On-Balance Volume,净额成交量或叫能量潮指标)
    27. df['obv'] = talib.OBV(df.close, df.volume)
    28. # 取样 近期的数据
    29. d2 = df[ df['date'] >'2023-05-01']
    30. #print(d2.tail())
    31. print(" 向上突破 upper")
    32. print(d2[ d2.close > d2.upper ])
    33. print(" 向下突破 lower")
    34. print(d2[ d2.close < d2.lower ])
    35. d2.index = pd.to_datetime(d2.date)
    36. # 画股价-布林线图
    37. fig,axes = plt.subplots(2,1)
    38. d2[['close','upper','mid20','lower']].plot(ax=axes[0], grid=True, title=code)
    39. # 画股票OBV图
    40. d2[['obv']].plot(ax=axes[1], grid=True)
    41. plt.legend(loc='best', shadow=True)
    42. plt.show()

    运行 python talib_boll_obv.py 002594 

    # 画基金净值-布林线图

    编写 talib_boll.py  如下

    1. # -*- coding: utf-8 -*-
    2. import os
    3. import sys
    4. import tushare as ts
    5. import pandas as pd
    6. import matplotlib.pyplot as plt
    7. import numpy as np
    8. import talib
    9. if len(sys.argv) ==2:
    10. fcode = sys.argv[1]
    11. else:
    12. print('usage: python talib_boll.py fundcode ')
    13. sys.exit(1)
    14. if len(fcode) !=6:
    15. print('fund code length: 6')
    16. sys.exit(2)
    17. # 加这个两句 可以显示中文
    18. plt.rcParams['font.sans-serif'] = [u'SimHei']
    19. plt.rcParams['axes.unicode_minus'] = False
    20. f1 = fcode +'.csv'
    21. if not os.path.exists(f1):
    22. print("Error: %s not found." % f1)
    23. sys.exit(3)
    24. df = pd.read_csv(f1, parse_dates=True, index_col=0 )
    25. if len(df) <30:
    26. print(" len(df) <30 ")
    27. sys.exit(4)
    28. # 取基金净值
    29. jz = df['jz'].values
    30. # 计算布林线
    31. df['upper'], df['mid20'], df['lower'] = talib.BBANDS(jz,
    32. timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
    33. # 取样 近期的数据
    34. df2 = df[ df.index >'2022-01-01']
    35. print(df2.tail(5))
    36. # 画基金净值-布林线图
    37. df2[['jz','upper','mid20','lower']].plot(grid=True, title=fcode)
    38. plt.legend(loc='best', shadow=True)
    39. plt.show()

    运行 python talib_boll.py 014423 

  • 相关阅读:
    基于FPGA的图像白平衡算法实现,包括tb测试文件和MATLAB辅助验证
    论文解读-Early Detection of Cybersecurity Threats Using Collaborative Cognition
    PDO 与 MySQLi:PHP 数据库 API 之战
    C语言程序设计入门学习六步曲,六步带你入门C语言
    mysql存储引擎
    自定义Flink kafka连接器Decoding和Serialization格式
    线程池原理与实现
    前端框架小实验-在umi框架中以worker线程方式使用SQL.js的wasm
    idea 如何 进行无限续期
    vCenter 物理配置与虚拟机配置对应关系
  • 原文地址:https://blog.csdn.net/belldeep/article/details/133915803