如何为NISMO BINARY MONSTER GT指标添加两种对比货币
在NISMO BINARY MONSTER GT指标中添加多货币对比的实现方法
下面是修改后的完整代码,已支持添加另外两种货币的对比柱状图,每个品种用不同颜色区分:
//@version=5 //////////////////////////////////////////////////////////// // NISMO BINARY MONSTER GT - 多货币对比版 //////////////////////////////////////////////////////////// indicator(title='NISMO BINARY MONSTER GT 多货币对比', precision=2, overlay=false) // 基础输入参数 input_barwidth = input(4, title='柱状图宽度') input_percentorprice = input(false, title='显示价格变动(关闭则显示百分比变动)') input_abs = input(false, title='显示绝对值') input_barsback = input(1, title='回溯K线数') // 新增:自定义对比货币对输入 input_currency1 = input("EURUSD", title='对比货币对1') input_currency2 = input("GBPUSD", title='对比货币对2') // 水平线参考 hline(0, color=color.blue, linestyle=hline.style_solid) // -------------------------- // 原品种计算逻辑 // -------------------------- xPrice = close xPrice1 = 0.0 xPrice1 := input_percentorprice ? xPrice - xPrice[input_barsback] : (xPrice - xPrice[input_barsback]) * 100 / xPrice[input_barsback] color_original = xPrice1 < 0 ? color.red : color.green xPrice1 := input_abs ? math.abs(xPrice1) : xPrice1 plot(xPrice1, color=color_original, style=plot.style_histogram, linewidth=input_barwidth, title='当前品种变动') // -------------------------- // 对比货币对1计算逻辑 // -------------------------- // 获取对比货币对1的收盘价 price_curr1 = request.security(input_currency1, timeframe.period, close) price_curr1_change = 0.0 price_curr1_change := input_percentorprice ? price_curr1 - price_curr1[input_barsback] : (price_curr1 - price_curr1[input_barsback]) * 100 / price_curr1[input_barsback] color_curr1 = price_curr1_change < 0 ? color.orange : color.new(color.orange, 30) // 下跌橙色,上涨浅橙 price_curr1_change := input_abs ? math.abs(price_curr1_change) : price_curr1_change plot(price_curr1_change, color=color_curr1, style=plot.style_histogram, linewidth=input_barwidth, title='对比货币1变动') // -------------------------- // 对比货币对2计算逻辑 // -------------------------- // 获取对比货币对2的收盘价 price_curr2 = request.security(input_currency2, timeframe.period, close) price_curr2_change = 0.0 price_curr2_change := input_percentorprice ? price_curr2 - price_curr2[input_barsback] : (price_curr2 - price_curr2[input_barsback]) * 100 / price_curr2[input_barsback] color_curr2 = price_curr2_change < 0 ? color.purple : color.new(color.purple, 30) // 下跌紫色,上涨浅紫 price_curr2_change := input_abs ? math.abs(price_curr2_change) : price_curr2_change plot(price_curr2_change, color=color_curr2, style=plot.style_histogram, linewidth=input_barwidth, title='对比货币2变动')
关键改动说明
- 新增货币对输入:添加两个输入框,直接输入想要对比的货币对代码(如AUDUSD、USDJPY),无需修改代码即可切换品种。
- 获取外部数据:用
request.security()函数拉取指定货币对的收盘价,确保和当前图表时间周期一致。 - 复用计算逻辑:把原指标的价格变动计算逻辑完全复制到新货币对上,保证所有品种的计算规则统一。
- 区分颜色:给每个货币对设置独特的颜色组合(下跌深色调、上涨浅色调),方便快速区分不同品种的变动方向和幅度。
- 保留原有功能:原指标的所有输入选项(显示价格/百分比、绝对值、柱状宽度等)全部保留,不影响原有使用习惯。
使用注意事项
- 输入的货币对代码要和你的交易平台格式一致(比如MT5用EURUSD,部分平台可能是EUR/USD)。
- 若柱状图重叠看不清,可减小
input_barwidth数值,或给每个plot添加offset参数(如offset=-1)让柱子错开显示。
内容的提问来源于stack exchange,提问作者NISMO DRIFTSTAR
相关产品推荐
相关产品推荐

