如何使用Excel绘制砖型图Renko Charts

上一篇文章介绍了砖型图Renko Charts。

砖型图Renko Charts相对于K线,剔除了各种噪音,且只有红和绿两种形态(0,1),非常适合机器学习,进行量化分析,从而发现规律,作出策略。

现在还没找到哪个股票软件或平台,提供这种工具。
鉴于目前国内相应的策略还较少,值得进一步做量化研究。

今天尝试了用Excel实现,方式跟网格交易策略差不多。
下面是具体的方法。

假设砖块大小为E2单元格=5元。在名称管理器中定义为Brick=E2。

需要4列来实现

  • 第一列:日期,从1月1日开始-

  • 第二列:收盘价。假定1月1日为100元(B5),之后采用随机函数Rand生成价格
    函数公式为:

第二日价格B6=ROUND(B5+10*(RAND()-0.5), 2)
  • 第三列:计算上一日的Renko价格
    按照Renko价格的定义,逻辑是:
    如上一日收盘价为99,变动小于5,则Renko价格仍为100;
    • 如收盘价为93,则Renko价格为95
    • 如收盘价为100-109之间,则Renko价格仍为100;(因为第一个方块本身高度就有5)
    • 如收盘价为114,则Renko价格为110

公式直接采用IF或IFS逻辑嵌套函数,是最简单的方法,但比较罗嗦。
我用了更简单的公式,即用LOOKUP函数,返

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
缠论中枢是缠论分析中的一个重要工具,可以用来确定股票走势的方向和区间。下面是一个利用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线中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值