• python之K线模式识别


    1、晨星

    晨星也称作早晨之星,它是一种三日形态的K线组合,第一日是阴线,第二日价格振幅较小,第三日出现阳线,它的一般形态如下图所示。晨星的K线组合形态一般出现在下跌的趋势之后,预示着价格的上升回调。其在作为交易信号使用时,通常会结合交易量的指标。

    1. import mpl_finance as mpf
    2. import matplotlib.pyplot as plt
    3. import talib
    4. import pandas as pd
    5. # 读取文件
    6. df = pd.read_csv(r'xx')
    7. df=df[0:40]
    8. # 识别晨星的K线组合
    9. nums = talib.CDLMORNINGSTAR(df['open'], df['high'], df['low'], df['close'])
    10. # 可视化
    11. fig = plt.figure()
    12. ax = fig.add_subplot(111)
    13. # 绘制K线图
    14. mpf.candlestick2_ohlc(ax, df['open'], df['high'], df['low'], df['close'], width=0.6, colorup='red', colordown='green')
    15. # 标注识别K线组合的位置
    16. index = nums[nums==100].index.values
    17. for i in index:
    18. ax.annotate(s='', xy=(i, df['high'][i]), xytext=(i, df['high'][i]+20), arrowprops= {'arrowstyle':'->','facecolor':'black'})
    19. plt.show()

    2、昏星

    昏星(Evening Star),也称作黄昏之星。它与晨星类似,也是一种三日的K线组合形态,第一日为阳线,第二日价格振幅较小,第三日阴线,其常见形态如下图所示。但是它的作用于晨星反向,它通常出现在一段上升趋势中,预示着顶部的价格反转。

    1. import numpy as np
    2. import mpl_finance as mpf
    3. import matplotlib.pyplot as plt
    4. import talib
    5. import pandas as pd
    6. # 读取文件
    7. df = pd.read_csv(r'xxx')
    8. df=df[0:1000]
    9. # 识别昏星的K线组合
    10. nums = talib.CDLEVENINGSTAR(df['open'], df['high'], df['low'], df['close'])
    11. # 可视化
    12. fig = plt.figure()
    13. ax = fig.add_subplot(111)
    14. # 绘制K线图
    15. mpf.candlestick2_ohlc(ax, df['open'], df['high'], df['low'], df['close'], width=0.6, colorup='red', colordown='green')
    16. # 标注识别K线组合的位置
    17. index = nums[nums==-100].index.values
    18. print(index)
    19. for i in index:
    20. ax.annotate(s='', xy=(i, df['high'][i]), xytext=(i, df['high'][i]+200), arrowprops= {'arrowstyle':'->'})
    21. plt.show()

    3、锤子线

    锤子线(Hammer)是一种单日的K线形态,因其形态类似一把锤子,所以被命名为锤子线。它通常出现于一段下跌趋势之后,通常预示着价格见底。其形态通常表现在实体较短,下影线很长,没有上影线,如下图所示。另外,当锤子线的实体颜色是红色,而且下影线越长时,更具有参考意义。

    1. import numpy as np
    2. import mpl_finance as mpf
    3. import matplotlib.pyplot as plt
    4. import pandas as pd
    5. import talib
    6. # 读取文件
    7. df = pd.read_csv(r'xxx')
    8. df=df[0:80]
    9. # 识别锤子线的K线模型
    10. nums = talib.CDLHAMMER(df['open'], df['high'], df['low'], df['close'])
    11. # 可视化
    12. fig = plt.figure()
    13. ax = fig.add_subplot(111)
    14. # 绘制K线图
    15. mpf.candlestick2_ohlc(ax, df['open'], df['high'], df['low'], df['close'], width=0.6, colorup='red', colordown='green')
    16. # 标注识别K线组合的位置
    17. index = nums[nums==100].index.values
    18. for i in index:
    19. ax.annotate(s='', xy=(i, df['high'][i]), xytext=(i, df['high'][i] + 50), arrowprops={'arrowstyle': '->'})
    20. plt.show()

    4、上吊线

    上吊线(Hanging Man),也称作倒锤子线,同锤子线一样,也是一种单日的K线形态,但意义和锤子线相反。其常出现于一段上升的价格走势之后,预示着价格反转。上吊线通常为较小的实体,伴随着较长的下影线,如下图所示。实体颜色为绿色且具有越长的下影线的上吊线形态的参考意义越强。另外需要注意的是,锤子线和上吊线在使用时,不仅仅需要判断其形态的出现,还需要结合其出现在价格区间的顶端还是底端,通常锤子线出现在价格区间底端,上吊线出现在价格区间顶端。

    1. import numpy as np
    2. import mpl_finance as mpf
    3. import matplotlib.pyplot as plt
    4. import pandas as pd
    5. import talib
    6. # 读取文件
    7. df = pd.read_csv(r'xxx')
    8. df=df[0:150]
    9. # 识别上吊线的K线模型
    10. nums = talib.CDLHANGINGMAN(df['open'], df['high'], df['low'], df['close'])
    11. # 可视化
    12. fig = plt.figure()
    13. ax = fig.add_subplot(111)
    14. # 绘制K线图
    15. mpf.candlestick2_ohlc(ax, df['open'], df['high'], df['low'], df['close'], width=0.6, colorup='red', colordown='green')
    16. # 标注识别K线组合的位置
    17. index = nums[nums==-100].index.values
    18. for i in index:
    19. ax.annotate(s='', xy=(i, df['high'][i]), xytext=(i, df['high'][i] +40), arrowprops={'arrowstyle': '->'})
    20. plt.show()

    5、捉腰带线

    1. import numpy as np
    2. import mpl_finance as mpf
    3. import matplotlib.pyplot as plt
    4. import pandas as pd
    5. import talib
    6. # 读取文件
    7. df = pd.read_csv(r'F:\BaiduNetdiskDownload\Python量化金融编程从入门到精通 赠送资源\数据\第5章\SP_Daily_2000_2017.csv')
    8. df=df[0:50]
    9. # 识别捉腰带线的K线模型
    10. nums = talib.CDLBELTHOLD(df['open'], df['high'], df['low'], df['close'])
    11. # 可视化
    12. fig = plt.figure()
    13. ax = fig.add_subplot(111)
    14. # 绘制K线图
    15. mpf.candlestick2_ohlc(ax, df['open'], df['high'], df['low'], df['close'], width=0.6, colorup='red', colordown='green')
    16. # 标注识别K线组合的位置
    17. index = nums[nums==100].index.values
    18. for i in index:
    19. ax.annotate(s='', xy=(i, df['high'][i]), xytext=(i, df['high'][i] + 20), arrowprops={'arrowstyle': '->'})
    20. plt.show()

  • 相关阅读:
    【web-解析目标】(1.1.1)解析内容和功能:web信息抓取
    HTML5期末大作业:美妆网页主题网站设计——清新的手工肥皂网站展示(4页)HTML+CSS+JavaScript
    实践数据湖iceberg 第三十九课 清理快照前后数据文件变化分析
    Spring事务原理
    VUE在项目中的使用
    机器学习强基计划3-2:详细推导支持向量机SVM原理+Python实现
    Logstash filter grok正则的使用及介绍
    EasyExcel自定义数据格式化
    PWA及小程序在系统生态方面的支持对比
    圆的面积为什么是π r²
  • 原文地址:https://blog.csdn.net/T20151470/article/details/133781398