Help - Build a Custom Watch List

Branch

Branch

Member
VIP
Hi - Can someone help me with building a watch list to have columns based on the following criteria:
So, I am looking for my watch list to show me: [Symbol] + [Column 1] + [Column 2] + [RSI number]

COLUMN 1 (return a "Bull" or "Bear" message) based on the following:
input price = Ohlc4;
input length1 = 4;
input length2 = 100;
input averageType1 = AverageType.SIMPLE;
input averageType2 = AverageType.SIMPLE;
input crossingType = {default above, below};

def avg1 = MovingAverage(averageType1, price, length1);
def avg2 = MovingAverage(averageType2, price, length2);


AddLabel (yes, if Price > avg2 then "BULL" + "" else "" , Color.DARK_GREEN);
AddLabel (yes, if Price < avg2 then "BEAR" + "" else "" , Color.RED);

AddChartBubble(ohlc4 crosses below Average (ohlc4, 100), ohlc4, "BEAR", Color.WHITE, no);
AddChartBubble(ohlc4 crosses above Average (ohlc4, 100), ohlc4, "BULL", Color.WHITE, yes);

COLUMN 2 (return the following message based on the following)
declare lower;

input length = 14;
input over_Bought = 65;
input over_Sold = 60;
input price = ohlc4;
input averageType = AverageType.SIMPLE;
input showBreakoutSignals = no;

def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;

plot RSI = 50 * (ChgRatio + 1);
plot OverSold = over_Sold;
plot OverBought = over_Bought;
plot UpSignal = if RSI crosses above OverSold then OverSold else Double.NaN;
plot DownSignal = if RSI crosses below OverBought then OverBought else Double.NaN;

UpSignal.SetHiding(!showBreakoutSignals);
DownSignal.SetHiding(!showBreakoutSignals);

RSI.DefineColor("OverBought", GetColor(5));
RSI.DefineColor("Normal", GetColor(7));
RSI.DefineColor("OverSold", GetColor(1));
RSI.AssignValueColor(if RSI > over_Bought then RSI.color("OverBought") else if RSI < over_Sold then RSI.color("OverSold") else RSI.color("Normal"));
OverSold.SetDefaultColor(GetColor(8));
OverBought.SetDefaultColor(GetColor(8));
UpSignal.SetDefaultColor(Color.UPTICK);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
DownSignal.SetDefaultColor(Color.DOWNTICK);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

AddLabel (yes, if RSI < 50 then " RSI | SHORT: " + "BEAR" else "", Color.RED);
AddLabel (yes, if RSI > 50 then " RSI | Long: " + "BULL" else "", Color.DARK_GREEN);
AddLabel (yes, if RSI BETWEEN 50 AND 55 then "CAUTION! " + "50 & 55" else "", Color.BLACK);
AddLabel (yes, if RSI > 80 then "OVERBROUGHT" else "", Color.DARK_RED);
AddLabel (yes, if RSI > 90 then "(S)" else "", Color.RED);
AddLabel (yes, if RSI < 20 then "OVERSOLD" else "", Color.DARK_RED);
AddLabel (yes, if RSI < 10 then "(S)" else "", Color.RED);
AddLabel (yes, rsi, if rsi <= 50 or rsi >= 55 then Color.WHITE else Color.WHITE);

COLUMN 3
RSI number
 
T

tomsk

Well-known member
VIP
You cannot use info from other columns in a watchlist as stated in your statement above. Suggest you rethink your approach, perhaps by combining all the requisite info into a single watchlist. Multiple AddLabel statements won't work well so you'll need to combine that as well.
 

Similar threads

Top