PineScript中仅在TD买入形态完成时绘制1-9计数的需求
TD Sequential买入形态计数显示优化方案
针对你需要仅在TD买入形态完成(计数到9)时才显示1-9全部计数的需求,核心思路是通过一个标记变量,只有当形态触发完成信号后,才回溯显示整个计数序列。以下是修正后的代码及关键逻辑说明:
核心代码实现
//@version=5 indicator("TD Sequential Buy (Only Show on Complete)", overlay=true) // 初始化计数变量与显示标记 var int buy_count = 0 var bool show_sequence = false // TD买入计数规则实现 buy_condition = close < close[4] buy_count := buy_condition ? buy_count + 1 : 0 // 控制显示标记的触发与重置 show_sequence := buy_count == 9 ? true : (buy_count == 0 ? false : show_sequence) // 仅当标记激活时,回溯绘制1-9的计数 for count_num = 1 to 9 // 确认对应K线的计数匹配,且显示标记已激活 if show_sequence and buy_count[9 - count_num] == count_num label.new(bar_index[9 - count_num], low - ta.atr(10)*0.1, str.tostring(count_num), color=color.new(color.green, 0), textcolor=color.white, style=label.style_label_up, size=size.small)
关键逻辑说明
- 标记变量
show_sequence:当计数到达9时设为true,当计数重置为0时设为false,全程保留形态完成后的显示状态直到下一次计数重置。 - 回溯绘制逻辑:通过循环遍历1-9的计数,利用
buy_count[9 - count_num]定位到对应计数的K线位置,仅在show_sequence为true时才绘制标签,确保只有形态完成后才显示全部计数。 - 之前
plotCounts无效的原因:大概率是没有建立“完成信号→回溯显示”的关联逻辑,仅单独控制单根K线的显示,而未同步触发整个序列的显示状态。
内容的提问来源于stack exchange,提问作者Tuff Fish
相关产品推荐
相关产品推荐

