דלגו לתוכן
פתיחת RaamTrade

RC2_IND_ON_MULTIVALUE

תוכן זה אינו זמין עדיין בשפה שלך.

Indicator <source> has multiple outputs — say which one: on=<source>.<output>.

What it means

Chaining (EMA(5, on=rsi)) feeds one indicator’s output into another as its input series. That only makes sense when the source produces one number per bar.

Aroon, MACD and BollingerBands produce three each (up/down/oscillator, line/signal/histogram, upper/mid/lower). A bare on=aroon does not name a series — it names a record — so the transpiler asks you which output you meant instead of picking one.

Why it happens

class Bad(Strategy):
trade = Symbol()
sizing = FixedCapital()
def execute(self):
aroon = Aroon(14, on=self.trade)
smooth = EMA(5, on=aroon) # ❌ up, down or oscillator?
if smooth.value > 50 and self.trade.is_flat:
self.buy(self.trade)

How to fix it

Read the output you wanted directly and drop the chain — per-output chaining is not available yet (see below).

class Good(Strategy):
period = Param(14, min=5, max=50)
trade = Symbol()
sizing = FixedCapital()
def execute(self):
aroon = Aroon(self.period, on=self.trade)
if aroon.up > 70 and aroon.down < 30 and self.trade.is_flat:
self.buy(self.trade)
if aroon.up < aroon.down and self.trade.is_long:
self.sell(self.trade, self.trade.position)

The message tells you to write on=aroon.up, and that is the shape the language is heading for — but today that spelling raises RC2_IND_ON_MULTIVALUE_CHAIN instead. Until it lands, smooth a multi-value output by tracking it yourself in persistent state, or chain onto a single-value indicator such as RSI or SMA.