编写可随图表时间框架自动调整偏移量的Chiku Span指标求助
修复自动适配时间框架的Chiku Span指标代码
针对你需要实现的根据图表时间框架自动调整偏移量的Chiku Span指标,原代码存在几个问题:
- 手动选择时间框架的输入项与switch分支的匹配值不对应
- 固定使用了
Offset=-69,未启用自动计算的偏移量OS - 未实现自动识别当前图表时间框架的逻辑
以下是修正后的Pine Script v5代码:
//@version=5 indicator("自动适配时间框架的Chiku Span", overlay = true) // Chiku Span核心计算(原代码中使用1周期SMA即收盘价,若需标准26周期可修改参数) chiku_span = ta.sma(close, 1) // 自动获取当前图表时间框架,并匹配对应偏移量 var int offset = switch timeframe.period "5" => -825 "15" => -275 "30" => -137 "60" => -69 // 若遇到未定义的时间框架,默认使用1小时的偏移量 => -69 // 绘制Chiku Span,应用自动计算的偏移量 plot(chiku_span, offset=offset, color=color.yellow, linewidth=2)
修改说明:
- 移除了手动选择时间框架的input,改用
timeframe.period自动获取当前图表的时间周期 - 修正switch分支的匹配值,与Pine Script返回的时间框架字符串对应(5分钟周期返回"5",15分钟返回"15"以此类推)
- 将plot的offset参数替换为自动计算的offset变量,实现不同时间框架下的偏移量自动切换
- 保留了原代码中Chiku Span的计算逻辑,若需要标准Ichimoku云的Chiku Span(收盘价的26周期SMA),可将
ta.sma(close, 1)改为ta.sma(close, 26)
如果你仍需要手动选择时间框架的功能,可使用以下版本:
//@version=5 indicator("MTF Chiku Span", overlay = true) // Chiku Span核心计算 chiku_span = ta.sma(close, 1) // 手动选择多时间框架输入 res = input.string(title='选择时间框架', options = ["5", "15", "30", "60"], defval="60", group = "偏移量设置") // 根据选择的时间框架匹配对应偏移量 var int offset = switch res "5" => -825 "15" => -275 "30" => -137 "60" => -69 // 跨时间框架获取对应周期的Chiku Span mtf_chiku = request.security(syminfo.tickerid, res, ta.sma(close, 1)) // 绘制跨时间框架的Chiku Span plot(mtf_chiku, offset=offset, color=color.yellow, linewidth=2)
补充说明:
- 跨时间框架版本中,建议在
request.security内计算对应时间框架的Chiku Span,确保指标逻辑准确 - 两种版本均已修正偏移量的匹配逻辑,解决原代码中switch分支与输入项不对应的问题
内容的提问来源于stack exchange,提问作者user21637228
相关产品推荐
相关产品推荐

