RSI + MACD Strategy
This strategy combines two popular technical indicators to generate trading signals:
- RSI to identify overbought/oversold conditions
- MACD to confirm trend direction and momentum
The strategy buys when:
- RSI is below 30 (oversold condition)
- MACD line crosses above its signal line (bullish momentum)
It sells when:
- RSI is above 70 (overbought condition)
- MACD line crosses below its signal line (bearish momentum)
// Register indicators
registerIndicator("RSI", "BUILTIN", 
  { period: 14 },
  "RSI_14"
);
registerIndicator("MACD", "BUILTIN", {
  fastPeriod: 12,
  slowPeriod: 26,
  signalPeriod: 9,
  field: "close"
}, "MACD_12_26_9");
function onBar(data, indicators, positions, trades) {
  const rowCount = data.close.length;
  const signals = new Array(rowCount).fill("HOLD");
  
  for (let i = 0; i < rowCount; i++) {
    const token = data.token_address[i];
    const rsi = indicators.getValue("RSI_14", token);
    const macd = indicators.getValue("MACD_12_26_9", token);
    const signal = indicators.getSignal("MACD_12_26_9", token);
  
    // Buy: RSI oversold + MACD crosses above signal
    if (rsi < 30 && macd > signal) {
      signals[i] = "BUY";
    }
    // Sell: RSI overbought + MACD crosses below signal
    else if (rsi > 70 && macd < signal) {
      signals[i] = "SELL";
    }
  }
  
  return signals;
}