sclass TradingSignal extends Meta { settable S coin; settable bool isLong; settable Timestamp timestamp; settable TradingRun afterRun; toString { S text = (isLong ? "Long" : "Short") + " signal " + (empty(coin) ? "" : "for " + coin + " ") + "at " + timestamp; if (afterRun != null) text += " after " + formatDouble2X(afterRun.changePercent()) + "% run"; ret text; } // last candle before signal TradingCandle candle() { ret afterRun == null ?: last(afterRun.candles); } // Price at signal double price() { var candle = candle(); ret candle == null ? Double.NaN : candle.end(); } }