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

如何为多货币对编写EMA趋势信号脚本?现有代码遇问题求助

问题分析与解决方案

你的代码问题出在request.security的用法和趋势对比逻辑上,导致无法为每个货币对单独计算趋势信号。以下是具体修正方案:

核心问题说明

  1. request.security语法错误:该函数的第二个参数必须是时间框架字符串(比如""代表当前图表时间框架,"D"代表日线),而非直接写入EMA计算式。正确用法是通过它获取目标货币对的K线数据,再在其专属上下文内计算EMA。
  2. 对比逻辑错误:你用当前图表的收盘价和目标货币对的EMA做对比,这不符合需求——应该用目标货币对自身的收盘价和它的EMA进行比较。

修正后的单货币对代码

EMA_LEN = input(200, title="EMA周期")

// 输入目标货币对
ticker01 = input.symbol("AUDUSD", title="货币对1")

// 通过request.security获取目标货币对的收盘价和对应EMA
[ticker01Close, ticker01EMA] = request.security(ticker01, "", [close, ta.ema(close, EMA_LEN)])

// 计算该货币对的趋势
ticker01TREND = ticker01Close > ticker01EMA ? "Bullish(看涨)" : ticker01Close < ticker01EMA ? "Bearish(看跌)" : "Neutral(中性)"

// 将结果输出到图表
label.new(bar_index, high, ticker01 + ": " + ticker01TREND, color=color.blue, textcolor=color.white)

扩展到14个货币对的优化方案

为避免重复编写14次相同逻辑,可通过函数封装简化代码:

EMA_LEN = input(200, title="EMA周期")

// 定义获取单货币对趋势的函数
getTrend(sym) =>
    [symClose, symEMA] = request.security(sym, "", [close, ta.ema(close, EMA_LEN)])
    symClose > symEMA ? "Bullish(看涨)" : symClose < symEMA ? "Bearish(看跌)" : "Neutral(中性)"

// 定义14个货币对的输入列表
tickerList = [
    input.symbol("AUDUSD", "货币对1"),
    input.symbol("USDJPY", "货币对2"),
    input.symbol("EURUSD", "货币对3"),
    input.symbol("GBPUSD", "货币对4"),
    // 继续添加剩余10个货币对...
]

// 循环输出所有货币对的趋势信号
var labels = array.new_label()
if barstate.islast
    // 清空旧标签避免重叠
    array.clear(labels)
    // 遍历每个货币对生成标签
    for i = 0 to array.size(tickerList)-1
        sym = array.get(tickerList, i)
        trend = getTrend(sym)
        // 调整标签垂直位置防止重叠
        labelPos = high + (i * ta.atr(14) * 0.5)
        lbl = label.new(bar_index, labelPos, sym + ": " + trend, color=color.green, textcolor=color.white)
        array.push(labels, lbl)

关键细节说明

  • request.security(ticker, "", [close, ta.ema(close, EMA_LEN)]):在目标货币对的K线上下文内,同时获取它的收盘价和200周期EMA,确保每个货币对的计算完全独立。
  • 函数封装后,新增或修改货币对只需调整tickerList,代码更简洁易维护。
  • 用barstate.islast和数组存储标签,仅在最后一根K线显示最新趋势,避免图表上生成大量重复标签。

内容的提问来源于stack exchange,提问作者user21637228

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:07:41