Login Page - Create Account

Support Board


Date/Time: Tue, 11 Mar 2025 01:24:07 +0000



Post From: Two Legged Pullback Indicator

[2022-04-17 12:11:36]
User871209 - Posts: 91
# "Normal" PullBack Zone
# Attempting to define a typical pullback area using imp_volatility()
# v.01 7.31.18
# Nube

input AcceptableBarsToEntry = 7;
input HeadroomTicks = 1;
input Fixins = no;

def c = close;
def na = Double.NaN;
def bn = BarNumber();
def tick = TickSize();

def firstThing = Average(c,20);
def secondThing = Average(c,100);
def upCross = c > secondThing &&
firstThing crosses above secondThing;
def upStop = c crosses below secondThing;
def downCross = c < secondThing &&
firstThing crosses below secondThing;
def downStop = c crosses above firstThing;

def iv = if !IsNaN(imp_volatility())
then imp_volatility()
else iv[1];
def SD1 = c * iv * Sqrt((AcceptableBarsToEntry/(AggregationPeriod.DAY/GetAggregationPeriod())) / 365);
def SD2 = SD1 * 2;

def buyBar = if upCross
then bn
else buyBar[1];
def buyStop = if bn == buyBar
then c - SD2 - tick * HeadroomTicks
else if upStop
then na
else buyStop[1];
def buyPrice = if bn == buyBar
then c
else buyPrice[1];
def buyRetrace = if bn == buyBar
then c - SD1
else if upStop
then na
else buyRetrace[1];
def buyRiskOff = if bn == buyBar
then c + SD1
else if upStop
then na
else buyRiskOff[1];

def sellBar = if downCross
then bn
else sellBar[1];
def sellPrice = if bn == sellBar
then c
else sellPrice[1];
def sellStop = if bn == sellBar
then c + SD2 + tick * HeadroomTicks
else if downStop
then na
else sellStop[1];
def sellRetrace = if bn == sellBar
then c + SD1
else if downStop
then na
else sellRetrace[1];
def sellRiskOff = if bn == sellBar
then c - SD1
else if downStop
then na
else sellRiskOff[1];

plot
LongEntry;
LongEntry. SetDefaultColor(CreateColor(100,200,100));
LongEntry. SetPaintingStrategy(PaintingStrategy.Arrow_Up);
LongEntry = if bn == buyBar
then low - tick * HeadroomTicks
else na;

plot
LongRetrace = Round(buyRetrace,2);
LongRetrace. SetStyle(Curve.Short_Dash);
LongRetrace. SetDefaultColor(CreateColor(100,200,100));

plot
LongStop = Round(buyStop,2);
LongStop. SetDefaultColor(CreateColor(200,100,100));
LongStop. SetStyle(Curve.Firm);

plot
LongRiskOff = Round(buyRiskOff,2);
LongRiskOff. SetDefaultColor(Color.Pink);
LongRiskOff. SetStyle(Curve.Medium_Dash);

plot
ShortEntry;
ShortEntry. SetDefaultColor(CreateColor(200,100,100));
ShortEntry. SetPaintingStrategy(PaintingStrategy.Arrow_Down);
ShortEntry = if bn == sellBar
then high + tick * HeadroomTicks
else na;

plot
ShortRetrace = Round(sellRetrace,2);
ShortRetrace. SetStyle(Curve.Short_Dash);
ShortRetrace. SetDefaultColor(CreateColor(200,100,100));

plot
ShortStop = Round(sellStop,2);
ShortStop. SetDefaultColor(CreateColor(100,200,100));
ShortStop. SetStyle(Curve.Firm);

plot
ShortRiskOff = Round(sellRiskOff,2);
ShortRiskOff. SetDefaultColor(CreateColor(155,225,155));
ShortRiskOff. SetStyle(Curve.Medium_Dash);

AddChartBubble(Fixins && LongEntry, LongStop, "Long Stop \n" +LongStop, Color.Red,0);
AddChartBubble(Fixins && LongEntry, LongRiskOff, "Long Risk Off: " +LongRiskOff+ "\n 1 SD: "+ Round(SD1,2), Color.Pink);
AddChartBubble(Fixins && ShortEntry, ShortStop, "Short Stop \n" +ShortStop, Color.Green);
AddChartBubble(Fixins && ShortEntry, ShortRiskOff, "Short Risk Off: " +ShortRiskOff+ "\n 1 SD: "+ Round(SD1,2), CreateColor(155,225,155), 0);

def LE = if !IsNaN(c) then buyPrice else na;
def SE = if !IsNaN(c) then sellPrice else na;
AddCloud(if (Fixins, LE, na), LongRetrace, CreateColor(155,225,155));
AddCloud(if (Fixins, ShortRetrace, na), SE, Color.Pink);

# f/ "Normal" PullBack Zone