SeeminglyBD
New member
Can someone please take a look at this code and let me know what I am doing wrong? All I am trying to do is have a green box if the bullish signal is fired within 3 bars and a red box if the bearish signal is fired within 3 bars, all else black box. I don't need the 1 or the NaN in black boxes. Thanks for taking a look. This is a free indicator on Satyland.com
script Saty_Pivot_Ribbon {
# Saty Pivot Ribbon
# Copyright (C) 2022 Saty Mahajan
#
# A 3 EMA Ribbon system that simplifies measuring and using emas for trend and support/resistance.
# Special thanks to Ripster for his education and EMA Clouds which inspired this indicator.
# Settings
input Fast_EMA = 8;
input Pivot_EMA = 21;
input Slow_EMA = 34;
input Highlight_Fast = no;
input Highlight_Pivot = no;
input Highlight_Slow = no;
input Show_Conviction_Arrows = yes;
input Conviction_Arrow_Size = 2;
input Fast_Conviction_EMA = 13;
input Slow_Conviction_EMA = 48;
input Show_Fast_Conviction_EMA = yes;
input Show_Slow_Conviction_EMA = yes;
# Calculations
def price = close;
def FastValue = ExpAverage(price, Fast_EMA);
def PivotValue = ExpAverage(price, Pivot_EMA);
def SlowValue = ExpAverage(price, Slow_EMA);
def Fast_Conviction_Value = ExpAverage(price, Fast_Conviction_EMA);
def Slow_Conviction_Value = ExpAverage(price, Slow_Conviction_EMA);
# Add Clouds
DefineGlobalColor("Fast Long", Color.GREEN);
DefineGlobalColor("Fast Short", Color.RED);
AddCloud(FastValue, PivotValue, GlobalColor("Fast Long"), GlobalColor("Fast Short"));
DefineGlobalColor("Slow Long", Color.CYAN);
DefineGlobalColor("Slow Short", Color.LIGHT_ORANGE);
AddCloud(PivotValue, SlowValue, GlobalColor("Slow Long"), GlobalColor("Slow Short"));
# Add Pivot Plot
DefineGlobalColor("Pivot Highlight", Color.LIGHT_GRAY);
plot Pivot = if Highlight_Pivot then PivotValue else Double.nan;
Pivot.AssignValueColor(GlobalColor("Pivot Highlight"));
# Add Fast Plot
DefineGlobalColor("Fast Highlight", Color.LIGHT_GRAY);
plot Fast = if Highlight_Fast then FastValue else Double.nan;
Pivot.AssignValueColor(GlobalColor("Fast Highlight"));
# Add Slow Plot
DefineGlobalColor("Slow Highlight", Color.LIGHT_GRAY);
plot Slow = if Highlight_Slow then SlowValue else Double.nan;
Pivot.AssignValueColor(GlobalColor("Slow Highlight"));
# Conviction Arrows (default based on 13/48)
# Read more about that combo here: http://etfhq.com/blog/2013/01/15/golden-cross-which-is-the-best/#Top
DefineGlobalColor("Bullish Conviction Arrow", Color.CYAN);
DefineGlobalColor("Bearish Conviction Arrow", Color.ORANGE);
def bullish_conviction = Fast_Conviction_Value >= Slow_Conviction_Value;
def bearish_conviction = Fast_Conviction_Value < Slow_Conviction_Value;
def bullish_conviction_confirmed = (bullish_conviction == YES and bullish_conviction[1] == NO);
def bearish_conviction_confirmed = (bearish_conviction == YES and bearish_conviction[1] == NO);
plot bullish_conviction_signal = if bullish_conviction_confirmed and Show_Conviction_Arrows then close else Double.NaN;
plot bearish_conviction_signal = if bearish_conviction_confirmed and Show_Conviction_Arrows then close else Double.NaN;
bullish_conviction_signal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
bullish_conviction_signal.AssignValueColor(GlobalColor("Bullish Conviction Arrow"));
bullish_conviction_signal.SetLineWeight(Conviction_Arrow_Size);
bullish_conviction_signal.HideBubble();
bearish_conviction_signal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
bearish_conviction_signal.AssignValueColor(GlobalColor("Bearish Conviction Arrow"));
bearish_conviction_signal.SetLineWeight(Conviction_Arrow_Size);
bearish_conviction_signal.HideBubble();
plot fast_conviction_ema_signal = if Show_Fast_Conviction_EMA then Fast_Conviction_Value else Double.NaN;
fast_conviction_ema_signal.setDefaultColor(Color.LIGHT_GRAY);
fast_conviction_ema_signal.HideBubble();
fast_conviction_ema_signal.SetLineWeight(1);
plot slow_conviction_ema_signal = if Show_Slow_Conviction_EMA then Slow_Conviction_Value else Double.NaN;
slow_conviction_ema_signal.setDefaultColor(Color.PLUM);
slow_conviction_ema_signal.HideBubble();
slow_conviction_ema_signal.SetLineWeight(1);
}
plot signal = if Saty_Pivot_Ribbon()."bullish_conviction_signal" is true within 3 bars then 1 else if Saty_Pivot_Ribbon()."bullish_conviction_signal" is false then 0 else 9;
signal.AssignValueColor(if signal == 1 then Color.White else if signal == 2 then Color.Black else Color.White);
signal.AssignValueColor(if signal == 2 then Color.Dark_Green else if signal == 1 then Color.White else Color.White);
AssignBackgroundColor(if signal == 1 then Color.Dark_Green else if signal == 2 then Color.Black else Color.White);
script Saty_Pivot_Ribbon {
# Saty Pivot Ribbon
# Copyright (C) 2022 Saty Mahajan
#
# A 3 EMA Ribbon system that simplifies measuring and using emas for trend and support/resistance.
# Special thanks to Ripster for his education and EMA Clouds which inspired this indicator.
# Settings
input Fast_EMA = 8;
input Pivot_EMA = 21;
input Slow_EMA = 34;
input Highlight_Fast = no;
input Highlight_Pivot = no;
input Highlight_Slow = no;
input Show_Conviction_Arrows = yes;
input Conviction_Arrow_Size = 2;
input Fast_Conviction_EMA = 13;
input Slow_Conviction_EMA = 48;
input Show_Fast_Conviction_EMA = yes;
input Show_Slow_Conviction_EMA = yes;
# Calculations
def price = close;
def FastValue = ExpAverage(price, Fast_EMA);
def PivotValue = ExpAverage(price, Pivot_EMA);
def SlowValue = ExpAverage(price, Slow_EMA);
def Fast_Conviction_Value = ExpAverage(price, Fast_Conviction_EMA);
def Slow_Conviction_Value = ExpAverage(price, Slow_Conviction_EMA);
# Add Clouds
DefineGlobalColor("Fast Long", Color.GREEN);
DefineGlobalColor("Fast Short", Color.RED);
AddCloud(FastValue, PivotValue, GlobalColor("Fast Long"), GlobalColor("Fast Short"));
DefineGlobalColor("Slow Long", Color.CYAN);
DefineGlobalColor("Slow Short", Color.LIGHT_ORANGE);
AddCloud(PivotValue, SlowValue, GlobalColor("Slow Long"), GlobalColor("Slow Short"));
# Add Pivot Plot
DefineGlobalColor("Pivot Highlight", Color.LIGHT_GRAY);
plot Pivot = if Highlight_Pivot then PivotValue else Double.nan;
Pivot.AssignValueColor(GlobalColor("Pivot Highlight"));
# Add Fast Plot
DefineGlobalColor("Fast Highlight", Color.LIGHT_GRAY);
plot Fast = if Highlight_Fast then FastValue else Double.nan;
Pivot.AssignValueColor(GlobalColor("Fast Highlight"));
# Add Slow Plot
DefineGlobalColor("Slow Highlight", Color.LIGHT_GRAY);
plot Slow = if Highlight_Slow then SlowValue else Double.nan;
Pivot.AssignValueColor(GlobalColor("Slow Highlight"));
# Conviction Arrows (default based on 13/48)
# Read more about that combo here: http://etfhq.com/blog/2013/01/15/golden-cross-which-is-the-best/#Top
DefineGlobalColor("Bullish Conviction Arrow", Color.CYAN);
DefineGlobalColor("Bearish Conviction Arrow", Color.ORANGE);
def bullish_conviction = Fast_Conviction_Value >= Slow_Conviction_Value;
def bearish_conviction = Fast_Conviction_Value < Slow_Conviction_Value;
def bullish_conviction_confirmed = (bullish_conviction == YES and bullish_conviction[1] == NO);
def bearish_conviction_confirmed = (bearish_conviction == YES and bearish_conviction[1] == NO);
plot bullish_conviction_signal = if bullish_conviction_confirmed and Show_Conviction_Arrows then close else Double.NaN;
plot bearish_conviction_signal = if bearish_conviction_confirmed and Show_Conviction_Arrows then close else Double.NaN;
bullish_conviction_signal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
bullish_conviction_signal.AssignValueColor(GlobalColor("Bullish Conviction Arrow"));
bullish_conviction_signal.SetLineWeight(Conviction_Arrow_Size);
bullish_conviction_signal.HideBubble();
bearish_conviction_signal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
bearish_conviction_signal.AssignValueColor(GlobalColor("Bearish Conviction Arrow"));
bearish_conviction_signal.SetLineWeight(Conviction_Arrow_Size);
bearish_conviction_signal.HideBubble();
plot fast_conviction_ema_signal = if Show_Fast_Conviction_EMA then Fast_Conviction_Value else Double.NaN;
fast_conviction_ema_signal.setDefaultColor(Color.LIGHT_GRAY);
fast_conviction_ema_signal.HideBubble();
fast_conviction_ema_signal.SetLineWeight(1);
plot slow_conviction_ema_signal = if Show_Slow_Conviction_EMA then Slow_Conviction_Value else Double.NaN;
slow_conviction_ema_signal.setDefaultColor(Color.PLUM);
slow_conviction_ema_signal.HideBubble();
slow_conviction_ema_signal.SetLineWeight(1);
}
plot signal = if Saty_Pivot_Ribbon()."bullish_conviction_signal" is true within 3 bars then 1 else if Saty_Pivot_Ribbon()."bullish_conviction_signal" is false then 0 else 9;
signal.AssignValueColor(if signal == 1 then Color.White else if signal == 2 then Color.Black else Color.White);
signal.AssignValueColor(if signal == 2 then Color.Dark_Green else if signal == 1 then Color.White else Color.White);
AssignBackgroundColor(if signal == 1 then Color.Dark_Green else if signal == 2 then Color.Black else Color.White);