如何在TradingView Pine Script中设置蜡烛柱高度为第1/3根的70%?
TradingView Pine Script 实现蜡烛柱高度按比例设置方法
核心逻辑
将目标蜡烛柱的高度限制为形态中第1根或第3根蜡烛柱高度的70%,核心是先计算参考蜡烛的高度,再按比例设置阈值,最后验证目标蜡烛是否符合要求。
实现步骤与代码示例
1. 基础配置与高度计算函数
首先声明脚本版本和基础配置,定义通用的蜡烛高度计算函数(支持实体高度或全蜡烛高度):
//@version=5 indicator("蜡烛高度比例验证", overlay=true) // 计算蜡烛高度:可选实体高度或全蜡烛高度(含影线) getCandleHeight(index) => // 选项1:计算实体高度(close与open的差值绝对值) abs(close[index] - open[index]) // 选项2:计算全蜡烛高度(high到low的差值) // high[index] - low[index] // 设置目标比例:70% target_ratio = 0.7
2. 针对形态场景的高度验证
以晨星/夜星形态为例,验证中间星线(目标蜡烛)的高度是否为第1根、第3根蜡烛高度的70%以内:
// 获取形态中参考蜡烛的高度(索引根据形态结构调整) candle_1_height = getCandleHeight(2) // 形态第1根蜡烛(当前柱往前数2根) candle_3_height = getCandleHeight(0) // 形态第3根蜡烛(当前柱) // 计算目标蜡烛的高度阈值(取两根参考蜡烛70%高度中的较小值) target_candle_height_threshold = math.min(candle_1_height * target_ratio, candle_3_height * target_ratio) // 验证目标蜡烛(形态第2根,当前柱往前数1根)是否符合要求 is_target_candle_valid = getCandleHeight(1) <= target_candle_height_threshold
3. 可视化验证
添加标记,在图表上标出符合高度要求的目标蜡烛:
// 在符合条件的蜡烛下方标注 plotshape(is_target_candle_valid, location=location.belowbar, color=color.new(color.green, 0), style=shape.labelup, text="达标", textcolor=color.white, size=size.small)
融入现有形态脚本(如晨星/夜星)
如果要将此逻辑融入经典反转形态脚本,只需替换原脚本中关于星线高度的判断条件。例如将原脚本中固定高度阈值的判断,替换为基于参考蜡烛比例的逻辑:
// 替换原脚本的星线高度验证逻辑 star_body_height = abs(close[1] - open[1]) valid_star_height = star_body_height <= math.min(abs(close[2]-open[2])*0.7, abs(close[0]-open[0])*0.7)
内容的提问来源于stack exchange,提问作者Leonard TY
相关产品推荐
相关产品推荐

