如何在Heikin Ashi图表的指标代码中获取真实开高低价并计算开盘价与最高价的百分比
解决Heikin Ashi蜡烛图中显示真实开盘价相对最高价百分比的方案
问题根源
当图表切换为Heikin Ashi(平均K线)模式时,若误获取HA转换后的开盘/最高价而非真实行情数据,就会导致百分比计算不准确。核心解决思路是直接引用原生行情的真实价格。
代码实现(以TradingView Pine Script为例)
//@version=5 indicator("真实开盘价相对最高价百分比", overlay=true) // 直接获取真实行情的开盘价、最高价(不受Heikin Ashi显示影响) real_open = open real_high = high // 计算百分比:根据需求选择对应公式 // 公式1:开盘价为最高价的占比(如开盘价是最高价的98%) price_pct = (real_open / real_high) * 100 // 公式2:开盘价较最高价低的幅度(如开盘价比最高价低2%) // price_pct = ((real_high - real_open) / real_high) * 100 // 在Heikin Ashi蜡烛上显示标签,位置可按需调整 label.new( bar_index, high, str.tostring(price_pct, "%.2f%"), color=color.white, textcolor=color.black, style=label.style_label_down )
关键说明
- 真实价格获取:在Pine Script中,即使图表显示Heikin Ashi,
open/high依然指向原始行情的真实数据,HA转换后的价格需通过heikinashi()函数单独调用,直接赋值即可拿到真实开盘/最高价。 - 公式选择:根据需求选对应公式,测试时可切换回普通蜡烛图验证数值是否正确。
- 其他平台适配:如果是MT4/MT5等平台,逻辑一致——直接引用原始K线数组的
Open[]/High[]即可,避免使用HA指标转换后的数值。
内容的提问来源于stack exchange,提问作者user23487888
相关产品推荐
相关产品推荐

