You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TradingView for语句报错「Incorrect for statement」,如何修复Kucoin交易对遍历?

错误原因与修复方案

核心问题分析

你的代码存在三个关键错误:

  1. 无法直接获取交易所全交易对列表:syminfo.ticker仅返回当前图表显示的单个交易对代码,并非Kucoin的所有交易对集合,Pine Script没有内置接口能直接拉取交易所全量交易对。
  2. For循环语法错误:#symbols是无效语法,Pine Script中获取数组长度需用array.size(),但此处symbols是字符串而非数组,循环逻辑完全不成立。
  3. Security函数用法错误:security函数需要通过闭包传递计算逻辑,且必须接收返回值,直接调用无法获取目标交易对的行情数据。

修复后的代码示例

由于无法自动获取全交易对,需手动定义需要监控的交易对数组,再逐个遍历计算:

//@version=5
indicator("EMA 89 EMA 200 Kucoin Alerts", overlay=false)
exchange = input.string("Kucoin", "交易所")

// 手动定义需要监控的Kucoin交易对数组
target_symbols = array.new_string(["BTC/USDT", "ETH/USDT", "SOL/USDT"])

// 遍历交易对数组
for i = 0 to array.size(target_symbols) - 1
    current_symbol = array.get(target_symbols, i)
    // 使用request.security获取目标交易对的1小时K线数据,并计算EMA
    [ema89, ema200] = request.security(current_symbol + ":" + exchange, "60", [ema(close, 89), ema(close, 200)])
    
    // 示例:当EMA89上穿EMA200时触发警报
    ema_cross = ta.crossover(ema89, ema200)
    if ema_cross
        alert(current_symbol + " EMA89上穿EMA200", alert.freq_once_per_bar_close)

额外说明

  • 若需要监控更多交易对,直接在target_symbols数组中添加对应的交易对代码即可,格式需符合TradingView规范(如"BTC/USDT")。
  • request.security是Pine Script v5的推荐用法,替代旧版security函数,稳定性与功能更完善。
  • 警报逻辑可根据需求自定义,示例仅实现了EMA金叉的警报触发。

内容的提问来源于stack exchange,提问作者marcelo.delta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:25:21