Brettser16
New member
I was wondering if there was a scanner out there that alerted you when if using say the hma 25 and hma 49 when they cross each other? Any help would be appreciated
You can easily create one in the Scan tab:I was wondering if there was a scanner out there that alerted you when if using say the hma 25 and hma 49 when they cross each other? Any help would be appreciated
HullMovingAvg("length" = 25) crosses above HullMovingAvg("length" = 49)
input EMAPeriod = 10;
input SMAPeriod = 13;
input price = close;
def na = double.nan;
plot fastema = ExpAverage(price, EMAPeriod);
plot slowema = Average(price, SMAPeriod);
def crossover = if fastema > slowema AND fastema[1] <= slowema[1] then 1 else 0;
def crossunder = if fastema < slowema AND fastema[1] >= slowema[1] then 1 else 0;
#Plot arrows
Plot up = if crossover then low - tickSize() else na;
Plot down = if crossunder then high + tickSize() else na;
up.SetPaintingStrategy(paintingStrategy.ARROW_UP);
down.SetPaintingStrategy(paintingStrategy.ARROW_DOWN);
#Trigger alerts
alert(crossover[1], "Crossover", Alert.Bar, Sound.Ding);
alert(crossunder[1], "Crossunder", Alert.Bar, Sound.Ding);
# E-Charts v2
declare upper;
input short_average = 5;
input medium_average = 10;
input long_average = 20;
input average_type = {default "SMA", "EMA"};
input show_vertical_line = no;
input show_bubble_labels = yes;
def MA1;
def MA2;
def MA3;
switch (average_type) {
case "SMA":
MA1 = Average(close, short_average);
MA2 = Average(close, medium_average);
MA3 = Average(close, long_average);
case "EMA":
MA1 = ExpAverage(close, short_average);
MA2 = ExpAverage(close, medium_average);
MA3 = ExpAverage(close, long_average);
}
# define e-signal and crossover point
def Eup = MA1 > MA2 && MA2 > MA3;
def Edn = MA1 < MA2 && MA2 < MA3;
def CrossUp = close > MA1 && Eup && !Eup[1];
def CrossDn = close < MA1 && Edn && !Edn[1];
# Define up and down signals
def higherHigh = close > Highest(max(open,close), 3)[1];
def lowerLow = close < Lowest(min(open,close), 3)[1];
def SignalUp = if (CrossUp && higherHigh)
then 1
else if (CrossUp[1] && higherHigh && !higherHigh[1])
then 1
else if (CrossUp[2] && higherHigh && !higherHigh[1] && !higherHigh[2])
then 1
else Double.NaN;
def SignalDn = if (CrossDn && lowerLow)
then 1
else if (CrossDn[1] && lowerLow && !lowerLow[1])
then 1
else if (CrossDn[2] && lowerLow && !lowerLow[1] && !lowerLow[2])
then 1
else Double.NaN;
# Plot the moving average lines
plot ln1 = MA1;
ln1.SetDefaultColor(CreateColor(145, 210, 144));
ln1.SetLineWeight(2);
plot ln2 = MA2;
ln2.SetDefaultColor(CreateColor(111, 183, 214));
ln2.SetLineWeight(2);
plot ln3 = MA3;
ln3.SetDefaultColor(CreateColor(249, 140, 182));
ln3.SetLineWeight(2);
# Draw vertical line to indicate call and put signals
AddVerticalLine(SignalUp && show_vertical_line, "Up", Color.UPTICK);
AddVerticalLine(SignalDn && show_vertical_line, "Down", Color.LIGHT_RED);
# Show Call / Put Signal in a Chart Bubble
AddChartBubble(SignalUp && show_bubble_labels, low - 0.3, "Up", Color.UPTICK, no);
AddChartBubble(SignalDn && show_bubble_labels, high + 0.3, "Dn", Color.LIGHT_RED);
# Add label for Eup or Edn
AddLabel(Eup, "E Up", Color.GREEN);
AddLabel(Edn, "E Dn", Color.RED);
# Alerts
Alert(CrossUp, " ", Alert.Bar, Sound.Chimes);
Alert(CrossDn, " ", Alert.Bar, Sound.Bell);
# E-Charts v2
declare upper;
input short_average = 5;
input medium_average = 10;
input long_average = 20;
input average_type = {default "SMA", "EMA", "HMA"};
input show_vertical_line = no;
input show_bubble_labels = yes;
def MA1;
def MA2;
def MA3;
switch (average_type) {
case "SMA":
MA1 = Average(close, short_average);
MA2 = Average(close, medium_average);
MA3 = Average(close, long_average);
case "EMA":
MA1 = ExpAverage(close, short_average);
MA2 = ExpAverage(close, medium_average);
MA3 = ExpAverage(close, long_average);
case "HMA":
MA1 = HullMovingAvg(close, short_average);
MA2 = HullMovingAvg(close, medium_average);
MA3 = HullMovingAvg(close, long_average);
}
# define e-signal and crossover point
def Eup = MA1 > MA2 && MA2 > MA3;
def Edn = MA1 < MA2 && MA2 < MA3;
def CrossUp = close > MA1 && Eup && !Eup[1];
def CrossDn = close < MA1 && Edn && !Edn[1];
# Define up and down signals
def higherHigh = close > Highest(max(open,close), 3)[1];
def lowerLow = close < Lowest(min(open,close), 3)[1];
def SignalUp = if (CrossUp && higherHigh)
then 1
else if (CrossUp[1] && higherHigh && !higherHigh[1])
then 1
else if (CrossUp[2] && higherHigh && !higherHigh[1] && !higherHigh[2])
then 1
else Double.NaN;
def SignalDn = if (CrossDn && lowerLow)
then 1
else if (CrossDn[1] && lowerLow && !lowerLow[1])
then 1
else if (CrossDn[2] && lowerLow && !lowerLow[1] && !lowerLow[2])
then 1
else Double.NaN;
# Plot the moving average lines
plot ln1 = MA1;
ln1.SetDefaultColor(CreateColor(145, 210, 144));
ln1.SetLineWeight(2);
plot ln2 = MA2;
ln2.SetDefaultColor(CreateColor(111, 183, 214));
ln2.SetLineWeight(2);
plot ln3 = MA3;
ln3.SetDefaultColor(CreateColor(249, 140, 182));
ln3.SetLineWeight(2);
# Draw vertical line to indicate call and put signals
AddVerticalLine(SignalUp && show_vertical_line, "Up", Color.UPTICK);
AddVerticalLine(SignalDn && show_vertical_line, "Down", Color.LIGHT_RED);
# Show Call / Put Signal in a Chart Bubble
AddChartBubble(SignalUp && show_bubble_labels, low - 0.3, "Up", Color.UPTICK, no);
AddChartBubble(SignalDn && show_bubble_labels, high + 0.3, "Dn", Color.LIGHT_RED);
# Add label for Eup or Edn
AddLabel(Eup, "E Up", Color.GREEN);
AddLabel(Edn, "E Dn", Color.RED);
# Alerts
Alert(CrossUp, " ", Alert.Bar, Sound.Chimes);
Alert(CrossDn, " ", Alert.Bar, Sound.Bell);
#Basic Hull Ma Pack tinkered by InSilico
#Original Port from https://www.tradingview.com/script/hg92pFwS-Hull-Suite
#
# 2019.10.30 1.0 [USER=258]@diazlaz[/USER] - Original Port
# 2019.11.14 2.0 [USER=1369]@tomsk[/USER] - Added alerts for color bar transitions
# 2020.08.10 3.0 Pensar - Added multi-timeframe input
input modeSwitch = {default "Hma", "Thma", "Ehma"}; #Hull Variation
input length = 55; #Length(180-200 for floating S/R , 55 for swing entry)
input switchColor = yes; #Color Hull according to trend?
input candleCol = yes; #Color candles based on Hull's Trend?
input visualSwitch = yes; #Show as a Band?
input thicknesSwitch = 2; #Line Thickness
input showLabels = yes;
input aggregation = aggregationperiod.FIVE_MIN;
def src = close(period = aggregation); #Source
addLabel (showLabels, modeSwitch, Color.ORANGE);
def hma;
switch (modeSwitch) {
case "Hma":
hma = wma(2 * wma(src, length / 2) - wma(src, length), round(sqrt(length)));
case "Ehma":
hma = expAverage(2 * expAverage(src, length / 2) - expAverage(src, length), round(sqrt(length)));
case "Thma":
hma = wma(wma(src,(length/2) / 3) * 3 - wma(src, (length/2) / 2) - wma(src, (length/2)), (length/2));
}
def hull = hma;
def Mhull = hull[0];
def Shull = hull[2];
def transition = hull > hull[2];
plot Fi1 = Mhull;
Fi1.AssignValueColor(if transition then Color.GREEN else Color.RED);
Fi1.SetLineWeight(thicknesSwitch);
plot Fi2 = Shull;
Fi2.AssignValueColor(if transition then Color.GREEN else Color.RED);
Fi2.SetLineWeight(thicknesSwitch);
Fi2.SetHiding(!visualSwitch);
AddCloud (if visualSwitch then Fi1 else Double.NaN, Fi2);
AssignPriceColor(if !candleCol then Color.CURRENT else if transition then COLOR.GREEN else COLOR.RED);
Alert((!transition[1] and transition) or (transition[1] and !transition), "Hull Color Change", Alert.BAR, Sound.RING);
# END
#
# TD Ameritrade IP Company, Inc. (c) 2008-2020
#
input price = close;
input length = 20;
input displace = 0;
plot HMA = MovingAverage(AverageType.HULL, price, length)[-displace];
HMA.DefineColor("Up", GetColor(1));
HMA.DefineColor("Down", GetColor(0));
HMA.AssignValueColor(if HMA > HMA[1] then HMA.color("Up") else HMA.color("Down"));
input period = 17;
declare lower;
def hmaFullPeriod = MovingAverage(AverageType.WEIGHTED, close, period);
def hmaHalfPeriod = MovingAverage(AverageType.WEIGHTED, close, period / 2);
def fltBandPass = hmaHalfPeriod - hmaFullPeriod;
def hmaRough = fltBandPass + hmaHalfPeriod;
def hmaSmoothed = MovingAverage(AverageType.WEIGHTED, hmaRough, RoundDown(Sqrt(period), 0));
def ToS_HMA = MovingAverage(AverageType.HULL, close, 17);
def errHMA = hmaSmoothed - ToS_HMA;
plot HMA = errHMA;
#True HMA by MoneyMagnet
input price = close;
input length = 20;
input displace = 0;
plot HMA = MovingAverage(AverageType.WEIGHTED, 2 * MovingAverage(AverageType.WEIGHTED, price, RoundDown(length / 2)) - MovingAverage(AverageType.WEIGHTED, price, length), RoundDown(Sqrt(length), 0))[-displace];
HMA.DefineColor("Up", GetColor(1));
HMA.DefineColor("Down", GetColor(0));
HMA.AssignValueColor(if HMA > HMA[1] then HMA.color("Up") else HMA.color("Down"));
#Follow @Krose_TDA on twitter for updates to this and other custom columns
#TD Ameritrade IP Company, Inc. (c) 2008-2019
#Follow @Krose_TDA on twitter for updates to this and other custom columns
#Input desired parameters using the input statements below
input price = close;
input length = 20;
input WithinBars = 1;
def hma = HullMovingAvg(price,length);
def TriglableBull = hma[1]<hma[2] and hma>hma[1];
def TriglableBear = hma[1]>hma[2]and hma < hma[1];
def trigger = TriglableBear or TriglableBull;
addlabel(yes,if triglableBear then "bear" else if TriglableBull then "Bull" else " ");
Hi, is it possible to add the ev and pot sector? thx@diazlaz See if this concept is workable. Idealy, to me, SPY should be at ==0 with the others rotating around it. Thoughts?
@BenTen Please copy this to its own thread...
Code:# beta_rotation_v2 #ETF_Rotate_Lower_ED_nn 4-2019 # from 4/4/2019 chat room: # 06:37 Mobius: johnny - To find rotation quickly - Use primary ETF's in a watchlist with 2 columns first column is Correlation to SPX second is a stochastic of Beta, if Beta is 1 or close to 1 that ETF is moving at the fastest momentum in that range and if correlation is with SPX .85 or better it's moving with SPX cor# daily start with 13,34 as starting point #markos #took out out Beta 1 & 2 4-19-19 # Put Back in 6-23-19 declare lower; input BetaLength = 21; input StochLength =34; input showBeta = No; input showOverlay = Yes; input Cyclicals = "XLY"; input Technology = "XLK"; input Industrials = "XLI"; input Materials = "XLB"; input Energy = "XLE"; input Staples = "XLP"; input HealthCare = "XLV"; input Utilities = "XLU"; input Financials = "XLF"; #------------------------------ #----purple colors defineglobalColor(“PlumMedium“, createColor(221, 160, 221)); defineglobalColor(“Orchid“, createColor(218, 130, 214)); defineglobalColor(“MediumOrchid“, createColor(186, 85, 211)); defineglobalColor(“MediumPurple“, createColor(147, 112, 219)); defineglobalColor(“DarkOrchid“, createColor(153, 50, 204)); plot Scriptlabel = Double.NaN; Scriptlabel.SetDefaultColor(CreateColor (0, 0, 0)); def Agg = GetAggregationPeriod(); #--------------------date start addLabel(1, getMonth() + "/" + getDayOfMonth(getYyyyMmDd()) + "/" + AsPrice(getYear()), GlobalColor("PlumMedium")); #--------------------date end #addLabel(1, " Ticker: '" + GetSymbol() + "' ", GlobalColor("Orchid")); addLabel(1, "Agg: " + ( if Agg == 60000 then "1 Min" else if Agg == 120000 then "2 Min" else if Agg == 180000 then "3 Min" else if Agg == 240000 then "4 Min" else if Agg == 300000 then "5 Min" else if Agg == 600000 then "10 Min" else if Agg == 900000 then "15 Min" else if Agg == 1800000 then "30 Min" else if Agg == 3600000 then "1 Hour" else if Agg == 7200000 then "2 Hour" else if Agg == 14400000 then "4 Hours" else if Agg == 86400000 then "1 Day" else if Agg == 604800000 then "1 Week" else if Agg == 2592000000 then "1 Month" else (Agg / 1000 / 60) + "Minutes") + " (" + (if Agg<=23400000 then 23400000/Agg else 86400000/Agg)+ ")" , GlobalColor("MediumPurple")); #addLabel(1, BarNumber() + " Bars", GlobalColor("DarkOrchid")); #----------------------------- #----------------------------- addLabel(1,"Rotation Beta/Stochastic (" + betaLength + "," +stochLength + ") ", color.Light_Gray); script calcBeta { input secondSymbol = "XLF"; input refSymbol = "SPX"; input betaLength = 21; input returnLength = 1; def refPrice = close(refSymbol); def primary = if refPrice[returnLength] == 0 then 0 else (refPrice - refPrice[returnLength]) / refPrice[returnLength] * 100; def secondPrice = close(secondSymbol); def secondary = if secondPrice[returnLength] == 0 then 0 else (secondPrice - secondPrice[returnLength]) / secondPrice[returnLength] * 100; plot Beta = covariance(secondary, primary, betaLength) / Sqr(stdev(primary, betaLength)); } script EhlersESSfilter { input price = close; input length = 8; def ESS_coeff_0 = Exp(-Double.Pi * Sqrt(2) / length); def ESS_coeff_2 = 2 * ESS_coeff_0 * Cos(Sqrt(2) * Double.Pi / length); def ESS_coeff_3 = - Sqr(ESS_coeff_0); def ESS_coeff_1 = 1 - ESS_coeff_2 - ESS_coeff_3; def ESS_filter = if IsNaN(price + price[1]) then ESS_filter[1] else ESS_coeff_1 * (price + price[1]) / 2 + ESS_coeff_2 * ESS_filter[1] + ESS_coeff_3 * ESS_filter[2]; plot Smooth_Filter = if barnumber() < length then price else if !IsNaN(price) then ESS_filter else Double.NaN; } script calcStoch { input data = close; input StochLength = 21; def stochasticValue = ((data - lowest(data, StochLength)) / (highest(data, StochLength) - lowest(data, StochLength))); plot stoch = stochasticValue; } plot beta1 = if showBeta then calcBeta(Cyclicals) else Double.NaN; plot beta2 = if showBeta then calcBeta(Technology) else Double.NaN; #### plot stoch1 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Cyclicals, betaLength = BetaLength)), stochLength = StochLength); stoch1.SetDefaultColor(Color.VIOLET); stoch1.SetLineWeight(2); stoch1.SetPaintingStrategy(PaintingStrategy.LINE_VS_SQUARES); stoch1.HideBubble(); AddLabel(ShowOverlay, " Cyclicals ", Color.VIOLET); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), if stoch1 < 0.15 then 0 else if stoch1 > 0.85 then 1 else stoch1, "Cyclicals", Color.VIOLET, stoch1 > 0.5); plot stoch2 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Technology, betaLength = BetaLength)), stochLength = StochLength); stoch2.SetDefaultColor(CreateColor(90, 160, 120)); stoch2.SetLineWeight(5); stoch2.SetStyle(Curve.LONG_DASH); stoch2.HideBubble(); AddLabel(ShowOverlay, " Techology ", CreateColor(90, 160, 120)); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), if stoch2 < 0.15 then 0 else if stoch2 > 0.85 then 1 else stoch2, "Technology", CreateColor(90, 160, 120), stoch2 > 0.5); plot stoch3 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Industrials, betaLength = BetaLength)), stochLength = StochLength); stoch3.SetDefaultColor(Color.MAGENTA); stoch3.SetLineWeight(5); stoch3.SetStyle(Curve.SHORT_DASH); stoch3.HideBubble(); AddLabel(ShowOverlay, " Industrials ", Color.MAGENTA); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), if stoch3 < 0.15 then 0 else if stoch3 > 0.85 then 1 else stoch3, "Industrials", Color.MAGENTA, stoch3 > 0.5); plot stoch4 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Materials, betaLength = BetaLength)), stochLength = StochLength); stoch4.SetDefaultColor(Color.CYAN); stoch4.SetLineWeight(2); stoch4.SetPaintingStrategy(PaintingStrategy.LINE); stoch4.HideBubble(); AddLabel(ShowOverlay, " Materials ", Color.CYAN); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), if stoch4 < 0.15 then 0 else if stoch4 > 0.85 then 1 else stoch4, "Materials", Color.CYAN, stoch4 > 0.5); plot stoch5 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Energy, betaLength = BetaLength)), stochLength = StochLength); stoch5.SetDefaultColor(Color.YELLOW); stoch5.SetLineWeight(1); stoch5.SetPaintingStrategy(PaintingStrategy.Line_vs_POINTS); stoch5.HideBubble(); AddLabel(ShowOverlay, " Energy ", Color.YELLOW); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), if stoch5 < 0.15 then 0 else if stoch5 > 0.85 then 1 else stoch5, "Energy", Color.YELLOW, stoch5 > 0.5); plot stoch6 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Staples, betaLength = BetaLength)), stochLength = StochLength); stoch6.SetDefaultColor(CreateColor(80, 180, 70)); stoch6.SetLineWeight(2); stoch6.SetPaintingStrategy(PaintingStrategy.LINE_VS_TRIANGLES); stoch6.HideBubble(); AddLabel(ShowOverlay, " Staples ", CreateColor(80, 180, 70)); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), if stoch6 < 0.15 then 0 else if stoch6 > 0.85 then 1 else stoch6, "Staples", CreateColor(80, 180, 70), stoch6 > close); plot stoch7 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = HealthCare, betaLength = BetaLength)), stochLength = StochLength); stoch7.SetDefaultColor(CreateColor(180, 80, 180)); stoch7.SetLineWeight(4); stoch7.SetPaintingStrategy(PaintingStrategy.LINE); stoch7.HideBubble(); AddLabel(ShowOverlay, " HealthCare ", CreateColor(180, 80, 180)); AddChartBubble("time condition" = ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), "price location" = if stoch7 < 0.15 then 0 else if stoch7 > 0.85 then 1 else stoch7, text = "HealthCare", color = CreateColor(180, 80, 180), stoch7 > 0.5); plot stoch8 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Utilities, betaLength = BetaLength)), stochLength = StochLength); stoch8.SetDefaultColor(Color.ORANGE); stoch8.SetLineWeight(2); stoch8.SetPaintingStrategy(PaintingStrategy.LINE); stoch8.HideBubble(); AddLabel(ShowOverlay, " Utilities ", Color.ORANGE); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close[0]), if stoch8 < 0.15 then 0 else if stoch8 > 0.85 then 1 else stoch8, "Utilities", Color.ORANGE, stoch8 > 0.5); plot stoch9 = calcStoch( data = EhlersESSfilter( calcBeta(secondSymbol = Financials, betaLength = BetaLength)), stochLength = StochLength); stoch9.SetDefaultColor(Color.PINK); stoch9.SetLineWeight(2); stoch9.SetPaintingStrategy(PaintingStrategy.LINE_VS_POINTS); stoch9.HideBubble(); AddLabel(ShowOverlay, " Financials ", Color.PINK); AddChartBubble(ShowOverlay and IsNaN(close[-1]) and !IsNaN(close), if stoch9 < 0.15 then 0 else if stoch9 > 0.85 then 1 else stoch9, "Financials", Color.PINK, stoch9 > 0.5); #---------------------------------------------- def barNumber = BarNumber(); def endBar = if !IsNaN(close) and IsNaN(close[-1]) then barNumber else endBar[1]; def lastBar = HighestAll(endBar); input flowLabelStep = 40; addLabel(1,"Last Bar = " + lastBar, color.Light_Gray); DefineGlobalColor("YellowGreen", CreateColor(90, 140, 5)); AddChartBubble(barNumber == (lastBar - flowLabelStep), 1.01, "M O N E Y F L O W S I N", globalColor("YellowGreen"), 1); AddChartBubble(barNumber == (lastBar - 2*flowLabelStep), 1.01, "M O N E Y F L O W S I N", globalColor("YellowGreen"), 1); #mAddChartBubble(barNumber == (lastBar - 3*flowLabelStep), 1.01, #"M O N E Y F L O W S I N", globalColor("YellowGreen"), 1); DefineGlobalColor("Cinamon", CreateColor(200, 10, 40)); AddChartBubble(barNumber == (lastBar - flowLabelStep), -0.01, "M O N E Y F L O W S O U T", globalColor("Cinamon"), 0); AddChartBubble(barNumber == (lastBar - 2*flowLabelStep), -0.01, "M O N E Y F L O W S O U T", globalColor("Cinamon"), 0); #mAddChartBubble(barNumber == (lastBar - 3*flowLabelStep), -0.01, #m"M O N E Y F L O W S O U T", globalColor("Cinamon"), 0); #plot zero = if isNaN(close) then double.nan else 0; plot zero = if barNumber > (lastBar + 7) then double.nan else 0; zero.SetDefaultColor(createColor(90, 20, 20)); zero.SetStyle(Curve.Long_Dash); zero.SetLineWeight(5); zero.HideBubble(); plot one = if barNumber > (lastBar + 7) then double.nan else 1; one.SetDefaultColor(createColor(20, 70, 20)); one.SetStyle(Curve.Long_Dash); one.SetLineWeight(5); one.HideBubble(); #EOC
SectorRotate_ED_NN
declare lower;
#100 * (h / AVGC200)
def x=100 * (high / Average(length = 200, data = CLOSE));
input length =10;
def displace = 0;
plot HMA = MovingAverage(AverageType.wEIGHTED, x, length)[-displace];
HMA.DefineColor("Up", GetColor(1));
HMA.DefineColor("Down", GetColor(0));
HMA.AssignValueColor(if HMA > HMA[1] then HMA.color("Up") else HMA.color("Down"));
input agg = AggregationPeriod.THIRTY_MIN ;
def c = close(period = agg);
def h = high(period = agg);
declare lower;
#100 * (h / AVGC200)
def x=100 * (h / Average(length = 200, data = c));
input length =10;
def displace = 0;
plot HMA = MovingAverage(AverageType.wEIGHTED, x, length)[-displace];
HMA.DefineColor("Up", GetColor(1));
HMA.DefineColor("Down", GetColor(0));
HMA.AssignValueColor(if HMA > HMA[1] then HMA.color("Up") else HMA.color("Down"));
Need help.
I am using 1 min and 10 min time frame. For 10 mins chart, I am using a hull moving average with 8 period. How to get a auto price level line with the hull moving average? which is also going to show on my 1 min chart?
Thanks so much!!!!!!!!!!!!!!!!!!
Ruby:input show_hma_plot = no; input agg = AggregationPeriod.TEN_MIN; input len = 8; plot hma8 = HullMovingAvg(close(period = agg), len); hma8.SetHiding(!show_hma_plot); #Hull MovingAverage Price Level input show_hma_price_level = yes; def last_hma8_bn = HighestAll(if !IsNaN(close) and IsNaN(close[-1]) then BarNumber() else 0); def last_hma8_pr = HighestAll(if BarNumber() == last_hma8_bn then hma8 else Double.NaN); plot last_hma8 = (last_hma8_pr); last_hma8.SetPaintingStrategy(PaintingStrategy.HORIZONTAL); last_hma8.SetDefaultColor(Color.CYAN); last_hma8.SetHiding(!show_hma_price_level);
Hey man,Here you go!
Chart Behavior
Watchlist:
Ruby:#Follow @Krose_TDA on twitter for updates to this and other custom columns #TD Ameritrade IP Company, Inc. (c) 2008-2019 #Follow @Krose_TDA on twitter for updates to this and other custom columns #Input desired parameters using the input statements below # #2019.10.11 - @diazlaz - Updated to include persist state # input price = close; input length = 20; input WithinBars = 1; def hma = HullMovingAvg(price,length); def TriglableBull = hma[1]<hma[2] and hma>hma[1]; def TriglableBear = hma[1]>hma[2]and hma < hma[1]; def trigger = TriglableBear or TriglableBull; def sTrigger = if TriglableBear then -100 else if TriglableBull then 100 else sTrigger[1]; AddLabel(yes, if sTrigger == -100 then "Bear" else "Bull", if sTrigger == -100 then COLOR.RED else COLOR.GREEN ); #plot results = sTrigger;
if hull ma of previous candle is less than hull ma of two candles ago and the hull ma is greater than hull ma of the previous candle then green else if opposite then red.Hey man,
any chance to share your candles colors rules? gonna help me a lot! If not, its ok!!
Thanks in advance.
input price = close;
input length = 20;
input WithinBars = 1;
def hma = HullMovingAvg(price,length);
def TriglableBull = hma[1]<hma[2] and hma>hma[1];
def TriglableBear = hma[1]>hma[2]and hma < hma[1];
def trigger = TriglableBear or TriglableBull;
addlabel(yes,if triglableBear then "bear" else if TriglableBull then "Bull" else " ");
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.