Hi @lolreconlol,Guessing you exited your short after that buy signal on the hour, now waiting patiently for the next short signal?
Absolutely! Just following the strategy.
Hi @lolreconlol,Guessing you exited your short after that buy signal on the hour, now waiting patiently for the next short signal?
Hi @mtlyon23,Do the bands repaint at all on the MTF_MOBO or will they change color after a certain time?
https://usethinkscript.com/threads/how-to-modify-thinkscript-transparent-opacity-color.2625/Is there a setting to adjust the opacity of the clouds? Also can an input be added to adjust opacity of the lines and to adjust the opacity of the clouds?
Hi @lolreconlol,Good afternoon @Christopher84 - on the 1 hour TS9/1 month chart.. what leads to a buy/sell signal on the 1 hour chart? Is it closing over a certain level/moving average/something else? Looking forward to the next down arrow
#EMAD combined with Horserider Volume for label
#EMAD_Range Created by Christopher84 01/05/2022
declare lower;
input length8 = 10;
input length9 = 35;
input length10 = 12;
input show_ema_cloud = yes;
input price1 = close;
input coloredCandlesOn = no;
def showBreakoutSignals = no;
def displace = 0;
def AvgExp8 = ExpAverage(price1[-displace], length8);
def UPD = AvgExp8[1] < AvgExp8;
#AvgExp8.SetStyle(Curve.SHORT_DASH);
#AvgExp8.SetLineWeight(1);
def AvgExp9 = ExpAverage(price1[-displace], length9);
def UPW = AvgExp9[1] < AvgExp9;
#AvgExp9.SetStyle(Curve.SHORT_DASH);
#AvgExp9.SetLineWeight(1);
def Below = AvgExp8 < AvgExp9;
def Spark = UPD + UPW + Below;
def UPEMA = AvgExp8[1] < AvgExp8;
def DOWNEMA = AvgExp8[1] > AvgExp8;
#AvgExp8.AssignValueColor(if UPEMA then Color.LIGHT_GREEN else if DOWNEMA then Color.RED else Color.YELLOW);
def UPEMA2 = AvgExp9[1] < AvgExp9;
def DOWNEMA2 = AvgExp9[1] > AvgExp9;
#AvgExp9.AssignValueColor(if UPEMA2 then Color.LIGHT_GREEN else if DOWNEMA2 then Color.RED else Color.YELLOW);
def EMAD = (price1 - AvgExp8);
def UPEMAD = EMAD >= EMAD[1];
def DOWNEMAD = EMAD < EMAD[1];
#EMAD.AssignValueColor(if UPEMAD then Color.LIGHT_GREEN else if DOWNEMAD then Color.RED else Color.GRAY);
def EMAD2 = (price1 - AvgExp9);
def UPEMAD2 = EMAD2 >= EMAD2[1];
def DOWNEMAD2 = EMAD2 < EMAD2[1];
#EMAD2.AssignValueColor(if UPEMAD2 then Color.White else if DOWNEMAD2 then Color.BLUE else Color.GRAY);
def EMADAvg = (EMAD + EMAD2) / 2;
def UPEMADAvg = EMADAvg >= EMADAvg[1];
def DOWNEMADAvg = EMADAvg < EMADAvg[1];
#EMADAvg.AssignValueColor(if UPEMADAvg then Color.LIGHT_GREEN else if DOWNEMADAvg then Color.RED else Color.GRAY);
plot EMADSmooth = ExpAverage(EMADAvg[-displace], length10);
#########################################
input length = 14;
input averageType = AverageType.WILDERS;
def price = EMADSmooth;
#def bottom = Min(close[1], low);
input agperiod1 = AggregationPeriod.DAY;
def o = (EMADSmooth + EMADSmooth[1]) / 2;
def h = Max(EMADSmooth, EMADSmooth[1]);
def l = Min(EMADSmooth, EMADSmooth[1]);
def c = EMADSmooth;
#def open = open(period = agperiod1);
#def high = high(period = agperiod1);
#def low = low(period = agperiod1);
#def close = close(period = agperiod1);
def bottom = Min(c[1], l);
def tr = TrueRange(h, c, l);
def ptr = tr / (bottom + tr / 2);
def APTR = MovingAverage(averageType, ptr, length);
#APTR.SetDefaultColor(GetColor(8));
def UpperBand = c[1] + (APTR * o);
#UpperBand.SetDefaultColor(Color.GRAY);
def LowerBand = c[1] - (APTR * o);
#LowerBand.SetDefaultColor(Color.GRAY);
plot MidBand = (UpperBand + LowerBand) / 2;
MidBand.AssignValueColor(if (MidBand > EMADSmooth) then Color.RED else if (MidBand < EMADSmooth) then Color.GREEN else Color.GRAY);
EMADSmooth.AssignValueColor(if (MidBand > EMADSmooth) then Color.RED else if (MidBand < EMADSmooth) then Color.GREEN else Color.GRAY);
AddCloud(if show_ema_cloud and (MidBand > EMADSmooth) then MidBand else Double.NaN, EMADSmooth, Color.RED, Color.CURRENT);
AddCloud(if show_ema_cloud and (EMADSmooth >= MidBand) then EMADSmooth else Double.NaN, MidBand, Color.GREEN, Color.CURRENT);
def BulgeLength = 100;
def SqueezeLength = 100;
def BulgeLength2 = 200;
def SqueezeLength2 = 200;
plot ZeroLine = 0;
ZeroLine.AssignValueColor(if (EMADSmooth > ZeroLine) then Color.GREEN else if (EMADSmooth < ZeroLine) then Color.RED else Color.YELLOW);
def EMADSUp = EMADSmooth > ZeroLine;
def EMADSDown = EMADSmooth < ZeroLine;
#AssignPriceColor (if coloredCandlesOn and (MidBand > EMADSmooth) then Color.RED else if coloredCandlesOn and (MidBand < EMADSmooth) then Color.GREEN else Color.GRAY);
#Vertical Line
AddVerticalLine(( GetDay() <> GetDay()[1]), "", Color.Dark_Gray, Curve.SHORT_DASH);
plot Bulge = Highest(MidBand, BulgeLength);
Bulge.SetDefaultColor(Color.WHITE);
plot Squeeze = Lowest(MidBand, SqueezeLength);
Squeeze.SetDefaultColor(Color.WHITE);
#Label
#Addlabel (yes," EMAD: ", Color.Gray);
#addLabel (yes, if EMADSmooth > ZeroLine then " " else
#if EMADSmooth < ZeroLine then " " else " ",
# if EMADSmooth > ZeroLine then Color.Green else
# if EMADSmooth < ZeroLine then Color.Red else
# Color.CURRENT);
# Show total volume in gray. Buying volume in green. Sell Volume in red.
# Volume average is gray line.
# Specified percent over average volume is cyan triangles.
# Horserider 12/30/2019 derived from some already existing studies.
#declare lower;
#Inputs
input Show30DayAvg = yes;
input ShowTodayVolume = yes;
input ShowPercentOf30DayAvg = yes;
input UnusualVolumePercent = 200;
input Show30BarAvg = yes;
input ShowCurrentBar = yes;
input ShowPercentOf30BarAvg = yes;
input ShowSellVolumePercent = yes;
def O_HR = open;
def H_HR = high;
def C_HR = close;
def L_HR = low;
def V_HR = volume;
def buying = V_HR*(C_HR-L_HR)/(H_HR-L_HR);
def selling = V_HR*(H_HR-C_HR)/(H_HR-L_HR);
# Total Volume
# Note that Selling + Buying Volume = Volume.
plot TV = volume;
# Selling Volume
Plot SellVol = selling;
SellVol.setPaintingStrategy(PaintingStrategy.Histogram);
SellVol.SetDefaultColor(Color.Red);
SellVol.HideTitle();
SellVol.HideBubble();
SellVol.SetLineWeight(1);
TV.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
TV.SetDefaultColor(Color.GRAY);
#TV.HideTitle();
#TV.HideBubble();
TV.SetLineWeight(1);
#Volume Data
Plot BuyVol = buying;
BuyVol.setPaintingStrategy(PaintingStrategy.Histogram);
BuyVol.SetDefaultColor(Color.Green);
BuyVol.HideTitle();
BuyVol.HideBubble();
BuyVol.SetLineWeight(5);
def volLast30DayAvg = (volume(period = "DAY")[1] + volume(period = "DAY")[2] + volume(period = "DAY")[3] + volume(period = "DAY")[4] + volume(period = "DAY")[5] + volume(period = "DAY")[6] + volume(period = "DAY")[7] + volume(period = "DAY")[8] + volume(period = "DAY")[9] + volume(period = "DAY")[10] + volume(period = "DAY")[11] + volume(period = "DAY")[12] + volume(period = "DAY")[13] + volume(period = "DAY")[14] + volume(period = "DAY")[15] + volume(period = "DAY")[16] + volume(period = "DAY")[17] + volume(period = "DAY")[18] + volume(period = "DAY")[19] + volume(period = "DAY")[20] + volume(period = "DAY")[21] + volume(period = "DAY")[22] + volume(period = "DAY")[23] + volume(period = "DAY")[24] + volume(period = "DAY")[25] + volume(period = "DAY")[26] + volume(period = "DAY")[27] + volume(period = "DAY")[28] + volume(period = "DAY")[29] + volume(period = "DAY")[30]) / 30;
def today = volume(period = "DAY");
def percentOf30Day = Round((today / volLast30DayAvg) * 100, 0);
def avg30Bars = (volume[1] + volume[2] + volume[3] + volume[4] + volume[5] + volume[6] + volume[7] + volume[8] + volume[9] + volume[10] + volume[11] + volume[12] + volume[13] + volume[14] + volume[15] + volume[16] + volume[17] + volume[18] + volume[19] + volume[20] + volume[21] + volume[22] + volume[23] + volume[24] + volume[25] + volume[26] + volume[27] + volume[28] + volume[29] + volume[30]) / 30;
def curVolume = volume;
def percentOf30Bar = Round((curVolume / avg30Bars) * 100, 0);
def SellVolPercent = Round((Selling / Volume) * 100, 0);
# Labels
AddLabel(Show30DayAvg, "30 Day Avg: " + Round(volLast30DayAvg, 0), Color.LIGHT_GRAY);
AddLabel(ShowTodayVolume, "Day: " + today, (if percentOf30Day >= UnusualVolumePercent then Color.GREEN else if percentOf30Day >= 100 then Color.ORANGE else Color.LIGHT_GRAY));
AddLabel(ShowPercentOf30DayAvg, percentOf30Day + "%", (if percentOf30Day >= UnusualVolumePercent then Color.GREEN else if percentOf30Day >= 100 then Color.ORANGE else Color.WHITE) );
AddLabel(Show30BarAvg, "30 Bar Avg: " + Round(avg30Bars, 0), Color.LIGHT_GRAY);
AddLabel(ShowCurrentBar, "1 Bar: " + curVolume, (if percentOf30Bar >= UnusualVolumePercent then Color.GREEN else if PercentOf30Bar >= 100 then Color.ORANGE else Color.LIGHT_GRAY));
AddLabel(ShowPercentOf30BarAvg, PercentOf30Bar + "%", (if PercentOf30Bar >= UnusualVolumePercent then Color.GREEN else if PercentOf30Bar >= 100 then Color.ORANGE else Color.WHITE) );
AddLabel(ShowSellVolumePercent, "1 Bar Sell %: " + SellVolPercent, (if SellVolPercent > 51 then Color.RED else if SellVolPercent < 49 then Color.GREEN else Color.ORANGE));
input length_HR = 20;
plot VolAvg = Average(volume, length_HR);
VolAvg.SetDefaultColor(GetColor(7));
# hiVolume indicator
# source: http://tinboot.blogspot.com
# author: allen everhart
input type = { default SMP, EXP } ;
input length1 = 20 ;
input hotPct = 100.0 ;
def ma =
if type == type.SMP then
SimpleMovingAvg(volume, length)
else
MovAvgExponential(volume, length);
plot hv =
if 100 * ((volume / ma) - 1) >= hotPct then
ma
else
Double.NaN;
hv.SetDefaultColor( Color.CYAN);
hv.SetLineWeight(1) ;
hv.SetPaintingStrategy( PaintingStrategy.TRIANGLES);
# Bear/Bull Bias Label - Bias determined within the first 30 of market open
# bias will change or be void when sell_above_avg occurs while bias is bull
# bias will change or be void when buy_above_avg occurs while bias is bear
def Sell_Above_Avg = sellvol > VolAvg;
def Buy_Above_Avg = buyvol > VolAvg;
def Bias_Bear = MidBand > EMADSmooth and Sell_Above_Avg;
def Bias_Bull = EMADSmooth >= MidBand and Buy_Above_Avg;
AddLabel(yes, "Bias:", Color.gray);
AddLabel(yes, if Bias_Bear then "BEAR" else
if Bias_Bull then "BULL" else " ",
if Bias_Bear then Color.Red else
if Bias_Bull then Color.Green else Color.yellow);
HELP!
Can someone do me a solid and point me in the right direction?
I would like to use the following conditions to create a label for bullish or bearish bias that would remain "Bull" or "Bear" until condition two or four occurs.
1. Conditions for bearish bias at open:
2. Bearish bias ends when:
- Horserider Lower - Sell Volume is above average at open (within the first few candles of whatever timeframe chart) (the grey line is the average)
- EMAD Lower - EMA pointing down / red
- Horserider Lower - First time buy volume goes above the average
3. Conditions for Bullish bias at open:
4. Bullish bias ends when:
- Horserider Lower - Sell Volume is above average at open (within the first few candles of whatever timeframe chart) (the grey line is the average)
- EMAD Lower - EMA pointing up / green
- Horserider Lower - First time sell volume goes above the average
So far I have the following (the labels are at the end of the code)... just not sure how to accomplish the time portion (assuming what I have is correct)
Code:#EMAD combined with Horserider Volume for label #EMAD_Range Created by Christopher84 01/05/2022 declare lower; input length8 = 10; input length9 = 35; input length10 = 12; input show_ema_cloud = yes; input price1 = close; input coloredCandlesOn = no; def showBreakoutSignals = no; def displace = 0; def AvgExp8 = ExpAverage(price1[-displace], length8); def UPD = AvgExp8[1] < AvgExp8; #AvgExp8.SetStyle(Curve.SHORT_DASH); #AvgExp8.SetLineWeight(1); def AvgExp9 = ExpAverage(price1[-displace], length9); def UPW = AvgExp9[1] < AvgExp9; #AvgExp9.SetStyle(Curve.SHORT_DASH); #AvgExp9.SetLineWeight(1); def Below = AvgExp8 < AvgExp9; def Spark = UPD + UPW + Below; def UPEMA = AvgExp8[1] < AvgExp8; def DOWNEMA = AvgExp8[1] > AvgExp8; #AvgExp8.AssignValueColor(if UPEMA then Color.LIGHT_GREEN else if DOWNEMA then Color.RED else Color.YELLOW); def UPEMA2 = AvgExp9[1] < AvgExp9; def DOWNEMA2 = AvgExp9[1] > AvgExp9; #AvgExp9.AssignValueColor(if UPEMA2 then Color.LIGHT_GREEN else if DOWNEMA2 then Color.RED else Color.YELLOW); def EMAD = (price1 - AvgExp8); def UPEMAD = EMAD >= EMAD[1]; def DOWNEMAD = EMAD < EMAD[1]; #EMAD.AssignValueColor(if UPEMAD then Color.LIGHT_GREEN else if DOWNEMAD then Color.RED else Color.GRAY); def EMAD2 = (price1 - AvgExp9); def UPEMAD2 = EMAD2 >= EMAD2[1]; def DOWNEMAD2 = EMAD2 < EMAD2[1]; #EMAD2.AssignValueColor(if UPEMAD2 then Color.White else if DOWNEMAD2 then Color.BLUE else Color.GRAY); def EMADAvg = (EMAD + EMAD2) / 2; def UPEMADAvg = EMADAvg >= EMADAvg[1]; def DOWNEMADAvg = EMADAvg < EMADAvg[1]; #EMADAvg.AssignValueColor(if UPEMADAvg then Color.LIGHT_GREEN else if DOWNEMADAvg then Color.RED else Color.GRAY); plot EMADSmooth = ExpAverage(EMADAvg[-displace], length10); ######################################### input length = 14; input averageType = AverageType.WILDERS; def price = EMADSmooth; #def bottom = Min(close[1], low); input agperiod1 = AggregationPeriod.DAY; def o = (EMADSmooth + EMADSmooth[1]) / 2; def h = Max(EMADSmooth, EMADSmooth[1]); def l = Min(EMADSmooth, EMADSmooth[1]); def c = EMADSmooth; #def open = open(period = agperiod1); #def high = high(period = agperiod1); #def low = low(period = agperiod1); #def close = close(period = agperiod1); def bottom = Min(c[1], l); def tr = TrueRange(h, c, l); def ptr = tr / (bottom + tr / 2); def APTR = MovingAverage(averageType, ptr, length); #APTR.SetDefaultColor(GetColor(8)); def UpperBand = c[1] + (APTR * o); #UpperBand.SetDefaultColor(Color.GRAY); def LowerBand = c[1] - (APTR * o); #LowerBand.SetDefaultColor(Color.GRAY); plot MidBand = (UpperBand + LowerBand) / 2; MidBand.AssignValueColor(if (MidBand > EMADSmooth) then Color.RED else if (MidBand < EMADSmooth) then Color.GREEN else Color.GRAY); EMADSmooth.AssignValueColor(if (MidBand > EMADSmooth) then Color.RED else if (MidBand < EMADSmooth) then Color.GREEN else Color.GRAY); AddCloud(if show_ema_cloud and (MidBand > EMADSmooth) then MidBand else Double.NaN, EMADSmooth, Color.RED, Color.CURRENT); AddCloud(if show_ema_cloud and (EMADSmooth >= MidBand) then EMADSmooth else Double.NaN, MidBand, Color.GREEN, Color.CURRENT); def BulgeLength = 100; def SqueezeLength = 100; def BulgeLength2 = 200; def SqueezeLength2 = 200; plot ZeroLine = 0; ZeroLine.AssignValueColor(if (EMADSmooth > ZeroLine) then Color.GREEN else if (EMADSmooth < ZeroLine) then Color.RED else Color.YELLOW); def EMADSUp = EMADSmooth > ZeroLine; def EMADSDown = EMADSmooth < ZeroLine; #AssignPriceColor (if coloredCandlesOn and (MidBand > EMADSmooth) then Color.RED else if coloredCandlesOn and (MidBand < EMADSmooth) then Color.GREEN else Color.GRAY); #Vertical Line AddVerticalLine(( GetDay() <> GetDay()[1]), "", Color.Dark_Gray, Curve.SHORT_DASH); plot Bulge = Highest(MidBand, BulgeLength); Bulge.SetDefaultColor(Color.WHITE); plot Squeeze = Lowest(MidBand, SqueezeLength); Squeeze.SetDefaultColor(Color.WHITE); #Label #Addlabel (yes," EMAD: ", Color.Gray); #addLabel (yes, if EMADSmooth > ZeroLine then " " else #if EMADSmooth < ZeroLine then " " else " ", # if EMADSmooth > ZeroLine then Color.Green else # if EMADSmooth < ZeroLine then Color.Red else # Color.CURRENT); # Show total volume in gray. Buying volume in green. Sell Volume in red. # Volume average is gray line. # Specified percent over average volume is cyan triangles. # Horserider 12/30/2019 derived from some already existing studies. #declare lower; #Inputs input Show30DayAvg = yes; input ShowTodayVolume = yes; input ShowPercentOf30DayAvg = yes; input UnusualVolumePercent = 200; input Show30BarAvg = yes; input ShowCurrentBar = yes; input ShowPercentOf30BarAvg = yes; input ShowSellVolumePercent = yes; def O_HR = open; def H_HR = high; def C_HR = close; def L_HR = low; def V_HR = volume; def buying = V_HR*(C_HR-L_HR)/(H_HR-L_HR); def selling = V_HR*(H_HR-C_HR)/(H_HR-L_HR); # Total Volume # Note that Selling + Buying Volume = Volume. plot TV = volume; # Selling Volume Plot SellVol = selling; SellVol.setPaintingStrategy(PaintingStrategy.Histogram); SellVol.SetDefaultColor(Color.Red); SellVol.HideTitle(); SellVol.HideBubble(); SellVol.SetLineWeight(1); TV.SetPaintingStrategy(PaintingStrategy.HISTOGRAM); TV.SetDefaultColor(Color.GRAY); #TV.HideTitle(); #TV.HideBubble(); TV.SetLineWeight(1); #Volume Data Plot BuyVol = buying; BuyVol.setPaintingStrategy(PaintingStrategy.Histogram); BuyVol.SetDefaultColor(Color.Green); BuyVol.HideTitle(); BuyVol.HideBubble(); BuyVol.SetLineWeight(5); def volLast30DayAvg = (volume(period = "DAY")[1] + volume(period = "DAY")[2] + volume(period = "DAY")[3] + volume(period = "DAY")[4] + volume(period = "DAY")[5] + volume(period = "DAY")[6] + volume(period = "DAY")[7] + volume(period = "DAY")[8] + volume(period = "DAY")[9] + volume(period = "DAY")[10] + volume(period = "DAY")[11] + volume(period = "DAY")[12] + volume(period = "DAY")[13] + volume(period = "DAY")[14] + volume(period = "DAY")[15] + volume(period = "DAY")[16] + volume(period = "DAY")[17] + volume(period = "DAY")[18] + volume(period = "DAY")[19] + volume(period = "DAY")[20] + volume(period = "DAY")[21] + volume(period = "DAY")[22] + volume(period = "DAY")[23] + volume(period = "DAY")[24] + volume(period = "DAY")[25] + volume(period = "DAY")[26] + volume(period = "DAY")[27] + volume(period = "DAY")[28] + volume(period = "DAY")[29] + volume(period = "DAY")[30]) / 30; def today = volume(period = "DAY"); def percentOf30Day = Round((today / volLast30DayAvg) * 100, 0); def avg30Bars = (volume[1] + volume[2] + volume[3] + volume[4] + volume[5] + volume[6] + volume[7] + volume[8] + volume[9] + volume[10] + volume[11] + volume[12] + volume[13] + volume[14] + volume[15] + volume[16] + volume[17] + volume[18] + volume[19] + volume[20] + volume[21] + volume[22] + volume[23] + volume[24] + volume[25] + volume[26] + volume[27] + volume[28] + volume[29] + volume[30]) / 30; def curVolume = volume; def percentOf30Bar = Round((curVolume / avg30Bars) * 100, 0); def SellVolPercent = Round((Selling / Volume) * 100, 0); # Labels AddLabel(Show30DayAvg, "30 Day Avg: " + Round(volLast30DayAvg, 0), Color.LIGHT_GRAY); AddLabel(ShowTodayVolume, "Day: " + today, (if percentOf30Day >= UnusualVolumePercent then Color.GREEN else if percentOf30Day >= 100 then Color.ORANGE else Color.LIGHT_GRAY)); AddLabel(ShowPercentOf30DayAvg, percentOf30Day + "%", (if percentOf30Day >= UnusualVolumePercent then Color.GREEN else if percentOf30Day >= 100 then Color.ORANGE else Color.WHITE) ); AddLabel(Show30BarAvg, "30 Bar Avg: " + Round(avg30Bars, 0), Color.LIGHT_GRAY); AddLabel(ShowCurrentBar, "1 Bar: " + curVolume, (if percentOf30Bar >= UnusualVolumePercent then Color.GREEN else if PercentOf30Bar >= 100 then Color.ORANGE else Color.LIGHT_GRAY)); AddLabel(ShowPercentOf30BarAvg, PercentOf30Bar + "%", (if PercentOf30Bar >= UnusualVolumePercent then Color.GREEN else if PercentOf30Bar >= 100 then Color.ORANGE else Color.WHITE) ); AddLabel(ShowSellVolumePercent, "1 Bar Sell %: " + SellVolPercent, (if SellVolPercent > 51 then Color.RED else if SellVolPercent < 49 then Color.GREEN else Color.ORANGE)); input length_HR = 20; plot VolAvg = Average(volume, length_HR); VolAvg.SetDefaultColor(GetColor(7)); # hiVolume indicator # source: http://tinboot.blogspot.com # author: allen everhart input type = { default SMP, EXP } ; input length1 = 20 ; input hotPct = 100.0 ; def ma = if type == type.SMP then SimpleMovingAvg(volume, length) else MovAvgExponential(volume, length); plot hv = if 100 * ((volume / ma) - 1) >= hotPct then ma else Double.NaN; hv.SetDefaultColor( Color.CYAN); hv.SetLineWeight(1) ; hv.SetPaintingStrategy( PaintingStrategy.TRIANGLES); # Bear/Bull Bias Label - Bias determined within the first 30 of market open # bias will change or be void when sell_above_avg occurs while bias is bull # bias will change or be void when buy_above_avg occurs while bias is bear def Sell_Above_Avg = sellvol > VolAvg; def Buy_Above_Avg = buyvol > VolAvg; def Bias_Bear = MidBand > EMADSmooth and Sell_Above_Avg; def Bias_Bull = EMADSmooth >= MidBand and Buy_Above_Avg; AddLabel(yes, "Bias:", Color.gray); AddLabel(yes, if Bias_Bear then "BEAR" else if Bias_Bull then "BULL" else " ", if Bias_Bear then Color.Red else if Bias_Bull then Color.Green else Color.yellow);
Hi @HODL-Lay-HE-hoo!Found this code for volume of the first 30 mins … how can I do something like this but use it to determine the bias in the first 30 mins?
Code:
# Volume RTH First 30 Mins
# tomsk
# 11.5.2019
declare hide_on_daily;
input startTime = 0930;
input endTime = 1000;
def Active = SecondsFromTime(startTime) >= 0 and SecondsTillTime(endTime) >= 0;
def Vol30Mins = if Active and !Active[1] then volume
else if Active then Vol30Mins[1] + volume
else Vol30Mins[1];
AddLabel(1, "Volume First 30 Mins = " + Vol30Mins, Color.YELLOW);
# End Volume RTH First 30 Mins
Hi @HODL-Lay-HE-hoo!
I just had a spare minute to play around with this idea. Here's a sharelink https://tos.mx/t0mcb3w. This isn't a well polished code ( just a start). See what you think. Happy trading!
Hi @HODL-Lay-HE-hoo!Thanks! @Christopher84 I will check it out!
Man thank you! I haven’t had much time to look at it as I’m out of town but it’s looking good thanks for your help. I will let you know my feedback when I get back in town.Hi @HODL-Lay-HE-hoo!
Here's a share link for the Bull/Bear Label (on its own) as well as version that will paint the candles (incase you would like to see what the label would have read) https://tos.mx/xrNMbPt. If the candles are green, the label will read "Very Bullish". If candles go from green to gray or red to gray label will read either "Bullish Retracement" or "Bearish Retracement" depending on conditions. If the candles are red, the label will read "Very Bearish". Hope you find it useful! Look forward to your feedback. If everyone likes this, I will polish it up a bit and make it available on pg.1 of the thread.
Chris, Do you keep the timeframe and Agperiod1 on Day? or should we change to chart timeline?Hi @HODL-Lay-HE-hoo!
Here's a share link for the Bull/Bear Label (on its own) as well as version that will paint the candles (incase you would like to see what the label would have read) https://tos.mx/xrNMbPt. If the candles are green, the label will read "Very Bullish". If candles go from green to gray or red to gray label will read either "Bullish Retracement" or "Bearish Retracement" depending on conditions. If the candles are red, the label will read "Very Bearish". Hope you find it useful! Look forward to your feedback. If everyone likes this, I will polish it up a bit and make it available on pg.1 of the thread.
Hi @METAL!Chris, Do you keep the timeframe and Agperiod1 on Day? or should we change to chart timeline?
Definitely use caution with this new Bull/Bear indicator. Unfortunately it appears to repaint a lot. I'm working on a few different ideas to keep it from repainting.Hi @METAL!
In the limited time that I have watched this indicator, I used the day setting and it looked pretty good. My thought was to utilize the higher aggregation period for the volume to identify the trend environment and use the EMAD_Range to determine appropriate entries/exits in line with the higher timeframe volume profile. It does open the possibility of repainting until the volume aggregation period closes. It will be interesting to see what holds best. I will be watching closely to see how it performs. Also, I will be looking forward to everyone’s feedback.
Yes it does. Thank you. I tested it and it really looks promising except for how far out it repaints. I tested different timeframes and found 1hr to be pretty good for scalp attempts. Leaving Aggr period on D.Definitely use caution with this new Bull/Bear indicator. Unfortunately it appears to repaint a lot. I'm working on a few different ideas to keep it from repainting.
Hi @HODL-Lay-HE-hoo!First off thank you @Christopher84 for working on this.
As usual I found myself thinking "What is this telling me that C3 Max Spark is not already telling me?" (which is odd considering I requested this indicator). I am not sure how the re-painting will affect my opinion as I have not had much time to watch it during market hours... that being said I added the "C3 Line Only" study and let the Bull Bear Indicator paint the candles... at which point I realized it does seem to be useful as the candles during a pullback in a bullish trend (aka retracement) are painted grey and the candles during a larger down trend (reversal) are painted red - As Chris stated previously (if I understood him correctly) it helps one to focus on the larger trend while viewing a lower timeframe.
Thanks Chris... I'll be watching. Thanks!
Join useThinkScript to post your question to a community of 21,000+ developers and traders.
Start a new thread and receive assistance from our community.
useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.
We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.
If you are new, or just looking for guidance, here are some helpful links to get you started.