能否在该Pine Script中实现多时间框架的多条趋势线?
需求实现方案:多时间框架趋势线绘制
你的需求非常容易实现,以下是两种高效的解决方案:
方案一:无需修改代码,多实例加载
这是最快捷的方式,直接利用TradingView的指标多实例功能:
- 在图表中加载你的
Low - High Simple Tracker指标 - 右键点击已加载的指标,选择「添加到图表」,或在指标列表中再次选中该脚本
- 每次添加后,进入指标设置面板,修改「时间框架」参数(比如当前图表用15分钟,新实例选1小时、4小时等)
- 为每个实例设置不同的颜色、线宽,方便区分不同周期的趋势线
方案二:修改脚本,单实例输出多周期趋势线
如果希望更整洁,可修改原脚本,通过request.security()函数一次性获取多周期数据并绘制线条,修改后的代码如下:
//用最新低点/高点填充数组 //从数组中获取最高高点和最低低点值 //计算X个最高高点与X个最低低点的平均值并绘制线条(长度可修改) //若价格低点高于线条,则为上升趋势(绿色)(数据源可修改) //若价格高点低于线条,则为下降趋势(红色)(数据源可修改) //若均不满足,则趋势放缓/可能出现反转(白色) //@version=4 study("Low - High Simple Tracker (Multi-Timeframe)",overlay=true) ////==================输入参数 length = input(8) length_avg = input(8) up_Trend_Condition = input(high) down_Trend_Condition = input(low) // 新增:选择多个时间框架 timeframes = input(title="多时间框架", type=input.string, defval="D,4H,1H", tooltip="用逗号分隔时间框架,如D,4H,1H") // 定义颜色数组,对应不同时间框架 line_colors = [color.new(color.green,0), color.new(color.blue,0), color.new(color.purple,0), color.new(color.orange,0)] ////==================多周期计算与绘图 // 拆分时间框架字符串 tf_list = str.split(timeframes, ",") // 循环处理每个时间框架 for i = 0 to array.size(tf_list)-1 tf = array.get(tf_list, i) // 获取对应周期的高低点数据 [sec_high, sec_low] = request.security(syminfo.tickerid, tf, [high, low]) // 数组计算逻辑复用原脚本 lowArray = array.new_float(0) highArray = array.new_float(0) for j = 0 to length-1 array.push(highArray, sec_high[j]) array.push(lowArray, sec_low[j]) maxValue= array.max(highArray) minValue= array.min(lowArray) highLowAvg =(sum(maxValue,length_avg) + sum(minValue,length_avg)) / (length_avg*2) // 趋势颜色判断 colorHL = down_Trend_Condition > highLowAvg ? color.green : up_Trend_Condition < highLowAvg ? color.red : color.white // 绘制线条,使用预设颜色 plot(highLowAvg, color = line_colors[i], style = plot.style_line, linewidth = 2, title="TF: " + tf)
修改说明:
- 新增
timeframes输入参数,支持自定义多个时间框架(用逗号分隔) - 通过
request.security()获取指定周期的高低点数据 - 循环处理每个时间框架,复用原脚本的计算逻辑
- 为不同周期的线条分配不同颜色,自动添加标题标注
两种方案都能轻松实现你的需求,方案一适合快速验证,方案二更适合长期使用。
内容的提问来源于stack exchange,提问作者MrSpendToLose
相关产品推荐
相关产品推荐

