利用python画出缠论中枢
时间: 2023-08-31 13:43:43 浏览: 526
缠论自动画笔画线段画中枢代码
### 回答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线的线段,使用红色线段绘制每个中枢的线段。最后,通过设置坐标轴标签和标题,以及显示图形来完成绘制。
注意:上述代码仅提供了基本绘制缠论中枢图形的示例,实际使用中需要根据数据源的格式和具体要求进行适当的修改。
阅读全文