利用python画出缠论中枢

时间: 2023-08-31 20:43:43 浏览: 180
### 回答1: 缠论中枢是缠论分析中的一个重要工具,可以用来确定股票走势的方向和区间。下面是一个利用Python画出缠论中枢的代码示例: ```python import numpy as np import pandas as pd import tushare as ts # 获取股票数据 df = ts.get_k_data('600519', start='2020-01-01', end='2021-12-31') # 初始化变量 bi_list = [] # 笔列表 xd_list = [] # 线段列表 zhongshu_list = [] # 中枢列表 bi_start = 0 # 笔起始位置 # 循环遍历K线数据 for i in range(1, len(df)): # 判断是否为顶分型 if df.iloc[i]['high'] > df.iloc[i-1]['high'] and df.iloc[i]['high'] > df.iloc[i+1]['high']: # 判断是否为笔 if not bi_list or df.iloc[i]['high'] > bi_list[-1]['high']: bi_list.append({'start': bi_start, 'end': i, 'high': df.iloc[i]['high'], 'low': df.iloc[bi_start]['low'], 'type': '顶分型'}) bi_start = i else: bi_list[-1] = {'start': bi_start, 'end': i, 'high': df.iloc[i]['high'], 'low': df.iloc[bi_start]['low'], 'type': '顶分型'} # 判断是否为底分型 elif df.iloc[i]['low'] < df.iloc[i-1]['low'] and df.iloc[i]['low'] < df.iloc[i+1]['low']: # 判断是否为笔 if not bi_list or df.iloc[i]['low'] < bi_list[-1]['low']: bi_list.append({'start': bi_start, 'end': i, 'high': df.iloc[bi_start]['high'], 'low': df.iloc[i]['low'], 'type': '底分型'}) bi_start = i else: bi_list[-1] = {'start': bi_start, 'end': i, 'high': df.iloc[bi_start]['high'], 'low': df.iloc[i]['low'], 'type': '底分型'} # 判断是否为线段 if len(bi_list) >= 2 and bi_list[-2]['type'] != bi_list[-1]['type']: xd_list.append({'start': bi_list[-2]['start'], 'end': bi_list[-1]['end'], 'high': max(bi_list[-2]['high'], bi_list[-1]['high']), 'low': min(bi_list[-2]['low'], bi_list[-1]['low'])}) # 判断是否为中枢 if len(xd_list) >= 3: high_list = [xd['high'] for xd in xd_list[-3:]] low_list = [xd['low'] for xd in xd_list[-3:]] zhongshu_list.append({'start': xd_list[-3]['start'], 'end': xd_list[-1]['end'], 'high': max(high_list), 'low': min(low_list)}) # 画出K线图和中枢线 ax = df[['open', 'close', 'high', 'low']].plot(figsize=(10, 6), grid=True) for zhongshu in zhongshu_list: ax.hlines(zhongshu['high'], zhongshu['start'], zhongshu['end'], colors='r', linestyles='--') ax.hlines(zhongshu['low'], zhongshu['start'], zhongshu['end'], colors='r', linestyles='--') ax.hlines((zhongshu['high'] + zhongshu['low']) / 2, zhongshu['start'], zhongshu['end'], colors='g', linestyles='--') ``` 这段代码中,我们使用了tushare库获取股票数据,并通过循环遍历K线数据的方式,识别出每一个笔、线段和中枢。 其中,在识别出线段时,我们判断是否为中枢,并将中枢添加到中枢列表中。 最后,我们使用matplotlib库的hlines函数来画出中枢的上下界和中轴线,并将它们添加到K线图中。 ### 回答2: 要利用Python来画出缠论中枢,首先需要安装并导入相应的库,比如matplotlib和pandas。然后,需要获取用于绘图的数据。 接下来,从数据中找出高点、低点和中枢的位置。根据缠论的定义,高点是波段的最高点,低点是波段的最低点,而中枢是由一个高点和一个低点之间的范围所定义的。 在找出这些位置后,可以使用matplotlib库中的函数绘制出这些点的图形。可以使用scatter函数来绘制高点和低点,并使用plot函数连接它们,形成波段的形态。可以使用fill函数来填充中枢的范围。 在画图时,可以使用不同的颜色来区分不同的波段和中枢。可以为高点设置一个颜色,低点设置一个颜色,中枢设置一个颜色。 最后,可以使用xlabel和ylabel函数来添加x轴和y轴的标签,使用title函数来添加图形的标题。还可以使用legend函数来添加图例,解释各个颜色所代表的含义。 综上所述,利用Python画出缠论中枢的过程包括:导入库、获取数据、找出高点、低点和中枢的位置、绘制图形、设置颜色、添加标签和标题。 ### 回答3: 绘制缠论中枢图形可以使用Python的绘图库matplotlib来实现。下面是一个简单的示例代码: ```python import matplotlib.pyplot as plt # 输入缠论中枢的最高价、最低价和中枢高低点的位置 high_price = [100, 105, 115, 110, 120, 125, 130] low_price = [90, 95, 100, 95, 105, 100, 110] pivots = [(2, 4), (6, 7)] # 创建一个新的绘图窗口 fig, ax = plt.subplots() # 绘制K线图 for i in range(len(high_price)): ax.plot([i + 1, i + 1], [low_price[i], high_price[i]], 'k-') # 绘制每根K线的线段 #绘制中枢线段 for pivot in pivots: ax.plot([pivot[0], pivot[0]], [low_price[pivot[0]-1], high_price[pivot[1]-1]], 'r-') # 绘制每个中枢的线段 # 设置图形的标题和坐标轴标签 ax.set_title('Renko Chart') ax.set_xlabel('Date') ax.set_ylabel('Price') # 设置x轴刻度为整数 ax.xaxis.set_major_locator(plt.MaxNLocator(integer=True)) # 显示图形 plt.show() ``` 该示例代码基于输入的最高价和最低价绘制出K线图,并在其中添加了缠论中枢的线段。使用`plot`函数绘制K线的线段,使用红色线段绘制每个中枢的线段。最后,通过设置坐标轴标签和标题,以及显示图形来完成绘制。 注意:上述代码仅提供了基本绘制缠论中枢图形的示例,实际使用中需要根据数据源的格式和具体要求进行适当的修改。

相关推荐

最新推荐

recommend-type

利用Python计算KS的实例详解

主要介绍了利用Python计算KS的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

Python弹出输入框并获取输入值的实例

今天小编就为大家分享一篇Python弹出输入框并获取输入值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

Python通过matplotlib绘制动画简单实例

主要介绍了Python通过matplotlib绘制动画简单实例,具有一定借鉴价值,需要的朋友可以参考下。
recommend-type

如何基于Python Matplotlib实现网格动画

主要介绍了如何基于Python Matplotlib实现网格动画,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

Python 读取WAV音频文件 画频谱的实例

主要介绍了Python 读取WAV音频文件 画频谱的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。