(AK) TrendXplorer.com HLC Trend Indicator For ThinkOrSwim

tradegeek

Active member
2019 Donor
Try this...


Code:
# study("(AK) TrendXplorer.com HLC Trend Indicator")
# Indicator based on article found on TrendXplorer.com
# Link:  https://www.tradingview.com/script/i218XnGI-TrendXplorer-com-HLC-Trend-Indicator/
# Ported to TOS by tradegeek

declare lower;

input closeLength = 5;
input lowLength = 13;
input highLength = 34;
input PaintBars = yes;

def emac = ExpAverage(close, closeLength);
def emal = ExpAverage(low, lowLength);
def emah = ExpAverage(high, highLength);

# Calculations
def long = (emac - emah) >= (emal - emac);
def neut = (emac - emah);
def short = (emal - emac) > ( emac - emah);

# plots
plot ch = emac - emah;
ch.SetDefaultColor(Color.GREEN);
ch.SetPaintingStrategy(PaintingStrategy.LINE);
ch.SetLineWeight(2);

plot lc = emal - emac;
lc.SetDefaultColor(Color.RED);
lc.SetPaintingStrategy(PaintingStrategy.LINE);
lc.SetLineWeight(2);

assignpriceColor(if long and PaintBars then color.Green else if short and PaintBars then color.RED else color.YELLOW);
 
Last edited:

henry1224

Active member
VIP
Changed the plot to a histogram and added arrows and dev bands
Code:
# Link:  https://www.tradingview.com/script/i218XnGI-TrendXplorer-com-HLC-Trend-Indicator/
# Ported to TOS by tradegeek

declare lower;

input closeLength = 5;
input lowLength = 13;
input highLength = 34;
input PaintBars = yes;
input arrows = 0;
input dotsize =3;

def emac = ExpAverage(close, closeLength);
def emal = ExpAverage(low, lowLength);
def emah = ExpAverage(high, highLength);

# Calculations
def long = (emac - emah) >= (emal - emac);
def neut = (emac - emah);
def short = (emal - emac) > ( emac - emah);

# plots
def ch = emac - emah;

def lc = emal - emac;

Plot osc = CH - LC;
osc.assignValueColor( if Osc >= osc[1] then color.Green else Color.Red);
osc.SetLineWeight(2);
AddCloud(Osc,0,Color.Light_Green,Color.Light_Red);
Def Con1 = osc >= 0;
Def Con2 = osc < 0;
Def Con3 = osc > osc [1];
Def Con4 = osc < osc[1];

Plot BullRise = If Con1 and Con3 then osc else 0;
BullRise.SetPaintingStrategy(PaintingStrategy.Histogram);
BullRise.SetDefaultColor(Color.Green);
BullRise.SetLineWeight(3);
Plot BullFall = if Con1 and Con4 then osc else 0;
BullFall.SetPaintingStrategy(PaintingStrategy.Histogram);
BullFall.SetDefaultColor(Color.Dark_Green);
BullFall.SetLineWeight(3);
Plot BearFall = if Con2 and Con4 then osc else 0;
BearFall.SetPaintingStrategy(PaintingStrategy.Histogram);
BearFall.SetDefaultColor(Color.Dark_Red);
BearFall.SetLineWeight(3);
Plot BearRise = if Con2 and Con3 then osc else 0;
BearRise.SetPaintingStrategy(PaintingStrategy.Histogram);
BearRise.SetDefaultColor(Color.Red);
BEarRise.SetLineWeight(3);

Plot UZ = Average(osc,34) + (1.3185*StDev(osc,34));
UZ.SetPaintingStrategy(PaintingStrategy.Line);
UZ.SetLineWeight(2);
UZ.SetDefaultColor(Color.Yellow);
Plot LZ = Average(osc,34) - (1.3185*StDev(osc,34));
LZ.SetPaintingStrategy(PaintingStrategy.Line);
LZ.SetLineWeight(2);
LZ.SetDefaultColor(Color.Yellow);

#ARROWS
plot ArrowDown = if arrows and (osc Crosses below osc[1]) then osc else double.nan;
ArrowDown.setpaintingStrategy(paintingStrategy.Arrow_Down);
ArrowDown.setDefaultColor(color.Magenta);
ArrowDown.setLineWeight(dotsize);

plot ArrowUp = if arrows and (osc crosses above osc[1]) then osc else double.nan;
ArrowUp.setpaintingStrategy(paintingStrategy.Arrow_Up);
ArrowUp.setDefaultColor(color.Cyan);
ArrowUp.setLineWeight(dotsize);

plot ArrowDown2 = if arrows and (osc Crosses below 0) then 0 else double.nan;
ArrowDown2.setpaintingStrategy(paintingStrategy.Arrow_Down);
ArrowDown2.setDefaultColor(color.Red);
ArrowDown2.setLineWeight(dotsize);

plot ArrowUp2 = if arrows and (osc crosses above 0 ) then 0 else double.nan;
ArrowUp2.setpaintingStrategy(paintingStrategy.Arrow_Up);
ArrowUp2.setDefaultColor(color.Blue);
ArrowUp2.setLineWeight(dotsize);

plot ArrowDown3 = if arrows and (osc Crosses below UZ) then UZ else double.nan;
ArrowDown3.setpaintingStrategy(paintingStrategy.Arrow_Down);
ArrowDown3.setDefaultColor(color.Yellow);
ArrowDown3.setLineWeight(dotsize);

plot ArrowUp3 = if arrows and (osc crosses above LZ ) then LZ else double.nan;
ArrowUp3.setpaintingStrategy(paintingStrategy.Arrow_Up);
ArrowUp3.setDefaultColor(color.Yellow);
ArrowUp3.setLineWeight(dotsize);

assignpriceColor(if long and PaintBars then color.Green else if short and PaintBars then color.RED else color.YELLOW);
 

henry1224

Active member
VIP
Here is a binary version that looks over 6 lengths of oscillators, it also has the ability to color bars depending on the line that you set in the APC input
Code:
declare lower;
input Dotsize =3;
input APC = 0;
def emac = ExpAverage(close, 3);
def emal = ExpAverage(low, 5);
def emah = ExpAverage(high, 8);
def Bemac = ExpAverage(close, 5);
def Bemal = ExpAverage(low, 8);
def Bemah = ExpAverage(high, 13);
def Cemac = ExpAverage(close, 8);
def Cemal = ExpAverage(low, 13);
def Cemah = ExpAverage(high, 21);
def Demac = ExpAverage(close, 13);
def Demal = ExpAverage(low, 21);
def Demah = ExpAverage(high, 34);
def Eemac = ExpAverage(close, 21);
def Eemal = ExpAverage(low, 34);
def Eemah = ExpAverage(high, 55);
def Femac = ExpAverage(close, 34);
def Femal = ExpAverage(low, 55);
def Femah = ExpAverage(high, 89);
def ch = emac - emah;
def lc = emal - emac;
def Bch = Bemac - Bemah;
def Blc = Bemal - Bemac;
def Cch = Cemac - Cemah;
def Clc = Cemal - Cemac;
def Dch = Demac - Demah;
def Dlc = Demal - Demac;
def Ech = Eemac - Eemah;
def Elc = Eemal - Eemac;
def Fch = Femac - Femah;
def Flc = Femal - Femac;

def osc = CH - LC;
def Bosc = BCH - BLC;
def Cosc = CCH - CLC;
def Dosc = DCH - DLC;
def Eosc = ECH - ELC;
def Fosc = FCH - FLC;
Def Con1 = osc >= 0;
Def Con2 = osc < 0;
Def Con3 = osc > osc [1];
Def Con4 = osc < osc[1];
Def BCon1 = Bosc >= 0;
Def BCon2 = Bosc < 0;
Def BCon3 = Bosc > Bosc [1];
Def BCon4 = Bosc < Bosc[1];
Def CCon1 = Cosc >= 0;
Def CCon2 = Cosc < 0;
Def CCon3 = Cosc > Cosc [1];
Def CCon4 = Cosc < Cosc[1];
Def DCon1 = Dosc >= 0;
Def DCon2 = Dosc < 0;
Def DCon3 = Dosc > Dosc [1];
Def DCon4 = Dosc < Dosc[1];
Def ECon1 = Eosc >= 0;
Def ECon2 = Eosc < 0;
Def ECon3 = Eosc > Eosc [1];
Def ECon4 = Eosc < Eosc[1];
Def FCon1 = Fosc >= 0;
Def FCon2 = Fosc < 0;
Def FCon3 = Fosc > Fosc [1];
Def FCon4 = Fosc < Fosc[1];
Def BullRise = If Con1 and Con3 then 1 else 0;
Def BullFall = if Con1 and Con4 then 1 else 0;
Def BearFall = if Con2 and Con4 then 1 else 0;
Def BearRise = if Con2 and Con3 then 1 else 0;
Def BBullRise = If BCon1 and BCon3 then 1 else 0;
Def BBullFall = if BCon1 and BCon4 then 1 else 0;
Def BBearFall = if BCon2 and BCon4 then 1 else 0;
Def BBearRise = if BCon2 and BCon3 then 1 else 0;
Def CBullRise = If CCon1 and CCon3 then 1 else 0;
Def CBullFall = if CCon1 and CCon4 then 1 else 0;
Def CBearFall = if CCon2 and CCon4 then 1 else 0;
Def CBearRise = if CCon2 and CCon3 then 1 else 0;
Def DBullRise = If DCon1 and DCon3 then 1 else 0;
Def DBullFall = if DCon1 and DCon4 then 1 else 0;
Def DBearFall = if DCon2 and DCon4 then 1 else 0;
Def DBearRise = if DCon2 and DCon3 then 1 else 0;
Def EBullRise = If ECon1 and ECon3 then 1 else 0;
Def EBullFall = if ECon1 and ECon4 then 1 else 0;
Def EBearFall = if ECon2 and ECon4 then 1 else 0;
Def EBearRise = if ECon2 and ECon3 then 1 else 0;
Def FBullRise = If FCon1 and FCon3 then 1 else 0;
Def FBullFall = if FCon1 and FCon4 then 1 else 0;
Def FBearFall = if FCon2 and FCon4 then 1 else 0;
Def FBearRise = if FCon2 and FCon3 then 1 else 0;

plot A1_Dot = if IsNaN(Close) then Double.NaN else 1;
A1_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A1_Dot.SetLineWeight(DotSize);
A1_Dot.AssignValueColor(if BULLRISE ==1 then Color.GREEN else if BULLFALL ==1 then Color.Dark_GREEN else if BearRISE ==1 then Color.red else if Bearfall ==1 then Color.Dark_Red else Color.Gray);
plot A2_Dot = if IsNaN(Close) then Double.NaN else 2;
A2_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A2_Dot.SetLineWeight(DotSize);
A2_Dot.AssignValueColor(if BBULLRISE ==1 then Color.GREEN else if BBULLFALL ==1 then Color.Dark_GREEN else if BBearRISE ==1 then Color.red else if BBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A3_Dot = if IsNaN(Close) then Double.NaN else 3;
A3_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A3_Dot.SetLineWeight(DotSize);
A3_Dot.AssignValueColor(if CBULLRISE ==1 then Color.GREEN else if CBULLFALL ==1 then Color.Dark_GREEN else if CBearRISE ==1 then Color.red else if CBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A4_Dot = if IsNaN(Close) then Double.NaN else 4;
A4_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A4_Dot.SetLineWeight(DotSize);
A4_Dot.AssignValueColor(if DBULLRISE ==1 then Color.GREEN else if DBULLFALL ==1 then Color.Dark_GREEN else if DBearRISE ==1 then Color.red else if DBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A5_Dot = if IsNaN(Close) then Double.NaN else 5;
A5_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A5_Dot.SetLineWeight(DotSize);
A5_Dot.AssignValueColor(if EBULLRISE ==1 then Color.GREEN else if EBULLFALL ==1 then Color.Dark_GREEN else if EBearRISE ==1 then Color.red else if EBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A6_Dot = if IsNaN(Close) then Double.NaN else 6;
A6_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A6_Dot.SetLineWeight(DotSize);
A6_Dot.AssignValueColor(if FBULLRISE ==1 then Color.GREEN else if FBULLFALL ==1 then Color.Dark_GREEN else if FBearRISE ==1 then Color.red else if FBearfall ==1 then Color.Dark_Red else Color.Gray);

AssignPriceColor(if APC ==1 and BULLRISE ==1 then Color.GREEN else if APC ==1 and BULLFALL ==1 then Color.Dark_GREEN else if APC ==1 and BearRISE ==1 then Color.red else if APC ==1 and Bearfall ==1 then Color.Dark_Red else if APC ==2 and BBULLRISE ==1 then Color.GREEN else if APC ==2 and BBULLFALL ==1 then Color.Dark_GREEN else if APC ==2 and BBearRISE ==1 then Color.red else if APC ==2 and BBearfall ==1 then Color.Dark_Red else if APC ==3 and CBULLRISE ==1 then Color.GREEN else if APC ==3 and CBULLFALL ==1 then Color.Dark_GREEN else if APC ==3 and CBearRISE ==1 then Color.red else if APC ==3 and CBearfall ==1 then Color.Dark_Red else if APC ==4 and DBULLRISE ==1 then Color.GREEN else if APC ==4 and DBULLFALL ==1 then Color.Dark_GREEN else if APC ==4 and DBearRISE ==1 then Color.red else if APC ==4 and DBearfall ==1 then Color.Dark_Red else if APC ==5 and EBULLRISE ==1 then Color.GREEN else if APC ==5 and EBULLFALL ==1 then Color.Dark_GREEN else if APC ==5 and EBearRISE ==1 then Color.red else if APC ==5 and EBearfall ==1 then Color.Dark_Red else if APC ==6 and FBULLRISE ==1 then Color.GREEN else if APC ==6 and FBULLFALL ==1 then Color.Dark_GREEN else if APC ==6 and FBearRISE ==1 then Color.red else if APC ==6 and FBearfall ==1 then Color.Dark_Red else Color.Current);

NJaYwur.png
 

henry1224

Active member
VIP
here is the 2 pole Butterworth filter version

Code:
declare lower;
input Dotsize =3;
input APC = 0;
def a1AC3 = exp(-1.414 * 3.14159 / 3);
def b1AC3 = 2 * a1AC3 * Cos(1.414 * 3.14159 / 3);
def coef2AC3 =b1AC3;
def coef3AC3 = -a1AC3 * a1AC3;
def coef1AC3 = (1 – b1AC3 + a1AC3 * a1AC3) / 4;
rec EMAC3 = if barNumber() < 3 then Close else coef1AC3 * (Close + 2 * Close[1] + Close[2]) + coef2AC3 * EMAC3[1] + coef3AC3 * EMAC3[2];
def emac = EMAC3;
def a1AL5 = exp(-1.414 * 3.14159 / 5);
def b1AL5 = 2 * a1AL5 * Cos(1.414 * 3.14159 / 5);
def coef2AL5 =b1AL5;
def coef3AL5 = -a1AL5 * a1AL5;
def coef1AL5 = (1 – b1AL5 + a1AL5 * a1AL5) / 4;
rec EMAL5 = if barNumber() < 3 then Low else coef1AL5 * (Low + 2 * Low[1] + LOW[2]) + coef2AL5 * EMAL5[1] + coef3AL5 * EMAL5[2];
def emal = EMAL5;
def a1AH8 = exp(-1.414 * 3.14159 / 8);
def b1AH8 = 2 * a1AH8 * Cos(1.414 * 3.14159 / 8);
def coef2AH8 =b1AH8;
def coef3AH8 = -a1AH8 * a1AH8;
def coef1AH8 = (1 – b1AH8 + a1AH8 * a1AH8) / 4;
rec EMAH8 = if barNumber() < 3 then High else coef1AH8 * (High + 2 * High[1] + HIGH[2]) + coef2AH8 * EMAH8[1] + coef3AH8 * EMAH8[2];
def emah = EMAH8;
def a1AC5 = exp(-1.414 * 3.14159 / 5);
def b1AC5 = 2 * a1AC5 * Cos(1.414 * 3.14159 / 5);
def coef2AC5 =b1AC5;
def coef3AC5 = -a1AC5 * a1AC5;
def coef1AC5 = (1 – b1AC5 + a1AC5 * a1AC5) / 4;
rec EMAC5 = if barNumber() < 3 then Close else coef1AC5 * (Close + 2 * Close[1] + Close[2]) + coef2AC5 * EMAC5[1] + coef3AC5 * EMAC5[2];
def Bemac = EMAC5;
def a1AL8 = exp(-1.414 * 3.14159 / 8);
def b1AL8 = 2 * a1AL8 * Cos(1.414 * 3.14159 / 8);
def coef2AL8 =b1AL8;
def coef3AL8 = -a1AL8 * a1AL8;
def coef1AL8 = (1 – b1AL8 + a1AL8 * a1AL8) / 4;
rec EMAL8 = if barNumber() < 3 then Low else coef1AL8 * (Low + 2 * Low[1] + Low[2]) + coef2AL8 * EMAL8[1] + coef3AL8 * EMAL8[2];
def Bemal = EMAL8;
def a1AH13 = exp(-1.414 * 3.14159 / 13);
def b1AH13 = 2 * a1AH13 * Cos(1.414 * 3.14159 / 13);
def coef2AH13 =b1AH13;
def coef3AH13 = -a1AH13 * a1AH13;
def coef1AH13 = (1 – b1AH13 + a1AH13 * a1AH13) / 4;
rec EMAH13 = if barNumber() < 3 then High else coef1AH13 * (High + 2 * High[1] + High[2]) + coef2AH13 * EMAH13[1] + coef3AH13 * EMAH13[2];
def Bemah = EMAH13;
def a1AC8 = exp(-1.414 * 3.14159 / 8);
def b1AC8 = 2 * a1AC8 * Cos(1.414 * 3.14159 / 8);
def coef2AC8 =b1AC8;
def coef3AC8 = -a1AC8 * a1AC8;
def coef1AC8 = (1 – b1AC8 + a1AC8 * a1AC8) / 4;
rec EMAC8 = if barNumber() < 3 then Close else coef1AC8 * (Close + 2 * Close[1] + Close[2]) + coef2AC8 * EMAC8[1] + coef3AC8 * EMAC8[2];


def Cemac = EMAC8;
def a1AL13 = exp(-1.414 * 3.14159 / 13);
def b1AL13 = 2 * a1AL13 * Cos(1.414 * 3.14159 / 13);
def coef2AL13 =b1AL13;
def coef3AL13= -a1AL13 * a1AL13;
def coef1AL13 = (1 – b1AL13 + a1AL13 * a1AL13) / 4;
rec EMAL13 = if barNumber() < 3 then Low else coef1AL13 * (Low + 2 * Low[1] + Low[2]) + coef2AL13 * EMAL13[1] + coef3AL13* EMAL13[2];
def Cemal = EMAL13;
def a1AH21 = exp(-1.414 * 3.14159 / 21);
def b1AH21 = 2 * a1AH21 * Cos(1.414 * 3.14159 / 21);
def coef2AH21 =b1AH21;
def coef3AH21 = -a1AH21 * a1AH21;
def coef1AH21 = (1 – b1AH21 + a1AH21 * a1AH21) / 4;
rec EMAH21 = if barNumber() < 3 then High else coef1AH21 * (High + 2 * High[1] + High[2]) + coef2AH21 * EMAH21[1] + coef3AH21 * EMAH21[2];
def Cemah = EMAH21;
def a1AC13 = exp(-1.414 * 3.14159 / 13);
def b1AC13 = 2 * a1AC13 * Cos(1.414 * 3.14159 / 13);
def coef2AC13 =b1AC13;
def coef3AC13 = -a1AC13 * a1AC13;
def coef1AC13 = (1 – b1AC13 + a1AC13 * a1AC13) / 4;
rec EMAC13= if barNumber() < 3 then Close else coef1AC13 * (Close + 2 * Close[1] + Close[2]) + coef2AC13 * EMAC13[1] + coef3AC13 * EMAC13[2];
def Demac = EMAC13;
def a1AL21 = exp(-1.414 * 3.14159 / 21);
def b1AL21 = 2 * a1AL21 * Cos(1.414 * 3.14159 / 21);
def coef2AL21 =b1AL21;
def coef3AL21= -a1AL21 * a1AL21;
def coef1AL21 = (1 – b1AL21 + a1AL21 * a1AL21) / 4;
rec EMAL21 = if barNumber() < 3 then Low else coef1AL21 * (Low + 2 * Low[1] + Low[2]) + coef2AL21 * EMAL21[1] + coef3AL21* EMAL21[2];
def Demal = EMAL21;
def a1AH34 = exp(-1.414 * 3.14159 / 34);
def b1AH34 = 2 * a1AH34 * Cos(1.414 * 3.14159 / 34);
def coef2AH34 =b1AH34;
def coef3AH34 = -a1AH34 * a1AH34;
def coef1AH34 = (1 – b1AH34 + a1AH34 * a1AH34) / 4;
rec EMAH34 = if barNumber() < 3 then High else coef1AH34 * (High + 2 * High[1] + High[2]) + coef2AH34 * EMAH34[1] + coef3AH34 * EMAH34[2];
def Demah = EMAH34;
def a1AC21 = exp(-1.414 * 3.14159 / 21);
def b1AC21 = 2 * a1AC21 * Cos(1.414 * 3.14159 / 21);
def coef2AC21 =b1AC21;
def coef3AC21 = -a1AC21 * a1AC21;
def coef1AC21 = (1 – b1AC21 + a1AC21 * a1AC21) / 4;
rec EMAC21= if barNumber() < 3 then Close else coef1AC21 * (Close + 2 * Close[1] + Close[2]) + coef2AC21 * EMAC21[1] + coef3AC21 * EMAC21[2];
def Eemac = EMAC21;
def a1AL34 = exp(-1.414 * 3.14159 / 34);
def b1AL34 = 2 * a1AL34 * Cos(1.414 * 3.14159 / 34);
def coef2AL34 =b1AL34;
def coef3AL34= -a1AL34 * a1AL34;
def coef1AL34 = (1 – b1AL34 + a1AL34 * a1AL34) / 4;
rec EMAL34 = if barNumber() < 3 then Low else coef1AL34 * (Low + 2 * Low[1] + Low[2]) + coef2AL34 * EMAL34[1] + coef3AL34* EMAL34[2];
def Eemal = EMAL34;
def a1AH55 = exp(-1.414 * 3.14159 / 55);
def b1AH55 = 2 * a1AH55 * Cos(1.414 * 3.14159 / 55);
def coef2AH55 =b1AH55;
def coef3AH55 = -a1AH55 * a1AH55;
def coef1AH55 = (1 – b1AH55 + a1AH55 * a1AH55) / 4;
rec EMAH55 = if barNumber() < 3 then High else coef1AH55 * (High + 2 * High[1] + High[2]) + coef2AH55 * EMAH55[1] + coef3AH55 * EMAH55[2];
def Eemah = EMAH55;
def a1AC34 = exp(-1.414 * 3.14159 / 34);
def b1AC34 = 2 * a1AC34 * Cos(1.414 * 3.14159 / 34);
def coef2AC34 =b1AC34;
def coef3AC34 = -a1AC34 * a1AC34;
def coef1AC34 = (1 – b1AC34 + a1AC34 * a1AC34) / 4;
rec EMAC34= if barNumber() < 3 then Close else coef1AC34 * (Close + 2 * Close[1] + Close[2]) + coef2AC34 * EMAC34[1] + coef3AC34 * EMAC34[2];
def Femac = EMAC34;
def a1AL55 = exp(-1.414 * 3.14159 / 55);
def b1AL55 = 2 * a1AL55 * Cos(1.414 * 3.14159 / 55);
def coef2AL55 =b1AL55;
def coef3AL55= -a1AL55 * a1AL55;
def coef1AL55 = (1 – b1AL55 + a1AL55 * a1AL55) / 4;
rec EMAL55 = if barNumber() < 3 then Low else coef1AL55 * (Low + 2 * Low[1] + Low[2]) + coef2AL55 * EMAL55[1] + coef3AL55* EMAL55[2];
def Femal = EMAL55;
def a1AH89 = exp(-1.414 * 3.14159 / 89);
def b1AH89 = 2 * a1AH89 * Cos(1.414 * 3.14159 / 89);
def coef2AH89 =b1AH89;
def coef3AH89 = -a1AH89 * a1AH89;
def coef1AH89 = (1 – b1AH89 + a1AH89 * a1AH89) / 4;
rec EMAH89 = if barNumber() < 3 then High else coef1AH89 * (High + 2 * High[1] + High[2]) + coef2AH89* EMAH89[1] + coef3AH89 * EMAH89[2];

def Femah = EMAH89;
def ch = emac - emah;
def lc = emal - emac;
def Bch = Bemac - Bemah;
def Blc = Bemal - Bemac;
def Cch = Cemac - Cemah;
def Clc = Cemal - Cemac;
def Dch = Demac - Demah;
def Dlc = Demal - Demac;
def Ech = Eemac - Eemah;
def Elc = Eemal - Eemac;
def Fch = Femac - Femah;
def Flc = Femal - Femac;

def osc = CH - LC;
def Bosc = BCH - BLC;
def Cosc = CCH - CLC;
def Dosc = DCH - DLC;
def Eosc = ECH - ELC;
def Fosc = FCH - FLC;
Def Con1 = osc >= 0;
Def Con2 = osc < 0;
Def Con3 = osc > osc [1];
Def Con4 = osc < osc[1];
Def BCon1 = Bosc >= 0;
Def BCon2 = Bosc < 0;
Def BCon3 = Bosc > Bosc [1];
Def BCon4 = Bosc < Bosc[1];
Def CCon1 = Cosc >= 0;
Def CCon2 = Cosc < 0;
Def CCon3 = Cosc > Cosc [1];
Def CCon4 = Cosc < Cosc[1];
Def DCon1 = Dosc >= 0;
Def DCon2 = Dosc < 0;
Def DCon3 = Dosc > Dosc [1];
Def DCon4 = Dosc < Dosc[1];
Def ECon1 = Eosc >= 0;
Def ECon2 = Eosc < 0;
Def ECon3 = Eosc > Eosc [1];
Def ECon4 = Eosc < Eosc[1];
Def FCon1 = Fosc >= 0;
Def FCon2 = Fosc < 0;
Def FCon3 = Fosc > Fosc [1];
Def FCon4 = Fosc < Fosc[1];
Def BullRise = If Con1 and Con3 then 1 else 0;
Def BullFall = if Con1 and Con4 then 1 else 0;
Def BearFall = if Con2 and Con4 then 1 else 0;
Def BearRise = if Con2 and Con3 then 1 else 0;
Def BBullRise = If BCon1 and BCon3 then 1 else 0;
Def BBullFall = if BCon1 and BCon4 then 1 else 0;
Def BBearFall = if BCon2 and BCon4 then 1 else 0;
Def BBearRise = if BCon2 and BCon3 then 1 else 0;
Def CBullRise = If CCon1 and CCon3 then 1 else 0;
Def CBullFall = if CCon1 and CCon4 then 1 else 0;
Def CBearFall = if CCon2 and CCon4 then 1 else 0;
Def CBearRise = if CCon2 and CCon3 then 1 else 0;
Def DBullRise = If DCon1 and DCon3 then 1 else 0;
Def DBullFall = if DCon1 and DCon4 then 1 else 0;
Def DBearFall = if DCon2 and DCon4 then 1 else 0;
Def DBearRise = if DCon2 and DCon3 then 1 else 0;
Def EBullRise = If ECon1 and ECon3 then 1 else 0;
Def EBullFall = if ECon1 and ECon4 then 1 else 0;
Def EBearFall = if ECon2 and ECon4 then 1 else 0;
Def EBearRise = if ECon2 and ECon3 then 1 else 0;
Def FBullRise = If FCon1 and FCon3 then 1 else 0;
Def FBullFall = if FCon1 and FCon4 then 1 else 0;
Def FBearFall = if FCon2 and FCon4 then 1 else 0;
Def FBearRise = if FCon2 and FCon3 then 1 else 0;

plot A1_Dot = if IsNaN(Close) then Double.NaN else 1;
A1_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A1_Dot.SetLineWeight(DotSize);
A1_Dot.AssignValueColor(if BULLRISE ==1 then Color.GREEN else if BULLFALL ==1 then Color.Dark_GREEN else if BearRISE ==1 then Color.red else if Bearfall ==1 then Color.Dark_Red else Color.Gray);
plot A2_Dot = if IsNaN(Close) then Double.NaN else 2;
A2_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A2_Dot.SetLineWeight(DotSize);
A2_Dot.AssignValueColor(if BBULLRISE ==1 then Color.GREEN else if BBULLFALL ==1 then Color.Dark_GREEN else if BBearRISE ==1 then Color.red else if BBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A3_Dot = if IsNaN(Close) then Double.NaN else 3;
A3_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A3_Dot.SetLineWeight(DotSize);
A3_Dot.AssignValueColor(if CBULLRISE ==1 then Color.GREEN else if CBULLFALL ==1 then Color.Dark_GREEN else if CBearRISE ==1 then Color.red else if CBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A4_Dot = if IsNaN(Close) then Double.NaN else 4;
A4_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A4_Dot.SetLineWeight(DotSize);
A4_Dot.AssignValueColor(if DBULLRISE ==1 then Color.GREEN else if DBULLFALL ==1 then Color.Dark_GREEN else if DBearRISE ==1 then Color.red else if DBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A5_Dot = if IsNaN(Close) then Double.NaN else 5;
A5_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A5_Dot.SetLineWeight(DotSize);
A5_Dot.AssignValueColor(if EBULLRISE ==1 then Color.GREEN else if EBULLFALL ==1 then Color.Dark_GREEN else if EBearRISE ==1 then Color.red else if EBearfall ==1 then Color.Dark_Red else Color.Gray);
plot A6_Dot = if IsNaN(Close) then Double.NaN else 6;
A6_Dot.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
A6_Dot.SetLineWeight(DotSize);
A6_Dot.AssignValueColor(if FBULLRISE ==1 then Color.GREEN else if FBULLFALL ==1 then Color.Dark_GREEN else if FBearRISE ==1 then Color.red else if FBearfall ==1 then Color.Dark_Red else Color.Gray);

AssignPriceColor(if APC ==1 and BULLRISE ==1 then Color.GREEN else if APC ==1 and BULLFALL ==1 then Color.Dark_GREEN else if APC ==1 and BearRISE ==1 then Color.red else if APC ==1 and Bearfall ==1 then Color.Dark_Red else if APC ==2 and BBULLRISE ==1 then Color.GREEN else if APC ==2 and BBULLFALL ==1 then Color.Dark_GREEN else if APC ==2 and BBearRISE ==1 then Color.red else if APC ==2 and BBearfall ==1 then Color.Dark_Red else if APC ==3 and CBULLRISE ==1 then Color.GREEN else if APC ==3 and CBULLFALL ==1 then Color.Dark_GREEN else if APC ==3 and CBearRISE ==1 then Color.red else if APC ==3 and CBearfall ==1 then Color.Dark_Red else if APC ==4 and DBULLRISE ==1 then Color.GREEN else if APC ==4 and DBULLFALL ==1 then Color.Dark_GREEN else if APC ==4 and DBearRISE ==1 then Color.red else if APC ==4 and DBearfall ==1 then Color.Dark_Red else if APC ==5 and EBULLRISE ==1 then Color.GREEN else if APC ==5 and EBULLFALL ==1 then Color.Dark_GREEN else if APC ==5 and EBearRISE ==1 then Color.red else if APC ==5 and EBearfall ==1 then Color.Dark_Red else if APC ==6 and FBULLRISE ==1 then Color.GREEN else if APC ==6 and FBULLFALL ==1 then Color.Dark_GREEN else if APC ==6 and FBearRISE ==1 then Color.red else if APC ==6 and FBearfall ==1 then Color.Dark_Red else Color.Current);
 
Thread starter Similar threads Forum Replies Date
S Convert TradeStation ES trading indicators from emini-miniwatch.com Questions 2
T HLC Price Line Questions 5
M HLC BARS NOT OHLC Questions 15

Similar threads

Top