Auto Fib (Fibonacci) Levels Indicator for ThinkorSwim

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Looking to create a custom fibonacci tool similar to the below image for tos:

UxWACpC.png
 
@BenTen Good evening Mr. Ben, Please if you can help to direct me to the right path. I am looking to build a scanner around fibs levels.........For example I will to be to scan for stocks that the price of the stock is maybe at the 0% or 61.8% level (or other levels) based on the highs and lows of last 5 days (or maybe even a bigger time frame)

I will even like to to see maybe if I can scan for price that is maybe 5% from the 100% fibs level or maybe 3% below the 61.8% fibs levels

Thank you
 
I have been playing around with the AutoFib indicator to make it user defined range instead of HighestAll and LowestAll. Nothing paints when I try it. I wonder where I am going wrong.

Below is my code.

Code:
#hint: <b>Fibonacci Retracements</b>\nFibonacci retracements use horizontal lines to indicate areas of support or resistance at the key Fibonacci levels before it continues in the original direction. These levels are created by drawing a trendline between two extreme points and then dividing the vertical distance by the key Fibonacci ratios of: 23.6%, 38.2%, 50%, 61.8%, 78.6%, and 100%.

#hint Price: Price used in the alerts on crossing retracement lines. <b>(Default is Close)</b>

#hint onExpansion: Determines if the retracement lines are projected past the current bar into the right side expansion <b>(Default is Yes)</b>

#hint Extend_to_left: Determines if the retracement lines are extended to the left side of the chart. <b>(Default is No)</b>



#hint Coefficient0: Retracement Line 0: Retracement from the highest high to the lowest low.\n <b>(Default is 0%)</b>

#hint Coefficient_1: Retracement Line 1: Retracement from the highest high to the lowest low.\n <b>(Default is 23.6%)</b>

#hint Coefficient_2: Retracement Line 2: Retracement from the highest high to the lowest low.\n <b>(Default is 38.2%)</b>

#hint Coefficient_3: Retracement Line 3: Retracement from the highest high to the lowest low.\n <b>(Default is 50%)</b>

#hint Coefficient_4: Retracement Line 4: Retracement from the highest high to the lowest low.\n <b>(Default is 61.8%)</b>

#hint Coefficient_5: Retracement Line 5: Retracement from the highest high to the lowest low.\n <b>(Default is 78.6%)</b>

#hint Coefficient_6: Retracement Line 6: Retracement from the highest high to the lowest low.\n <b>(Default is 100%)</b>



#wizard input: Price

#wizard text: Inputs: Price:

#wizard input: onExpansion

#wizard text: onExpansion:

#wizard input: Extend_to_left

#wizard text: Extend_to_left:

#wizard input: Coefficient0

#wizard text: Coefficient0:

#wizard input: Coefficient_1

#wizard text: Coefficient_1:

#wizard input: Coefficient_2

#wizard text: Coefficient_2:

#wizard input: Coefficient_3

#wizard text: Coefficient_3:

#wizard input: Coefficient_4

#wizard text: Coefficient_4:

#wizard input: Coefficient_5

#wizard text: Coefficient_5:

#wizard input: Coefficient_6

#wizard text: Coefficient_6:



input price = close;

input high = high;

input low = low;

input onExpansion = Yes;

input Extend_to_left = no;

input Coefficient0 = 0.000;

input coefficient_1 = .236;

input Coefficient_2 = .382;

input Coefficient_3 = .500;

input Coefficient_4 = .618;

Input Coefficient_5 = .786;

input Coefficient_6 = 1.000;



Def showOnlyCurrent = yes;

Def len = 30;

def a = Highest(high,len);

def b = Lowest(low,len);

def barnumber = barNumber();

def c = if high == a then barnumber else double.nan;

def d = if low == b then barnumber else double.nan;

rec highnumber = compoundValue(1, if IsNaN(c) then highnumber[1] else c, c);

def highnumberall = Highest(highnumber,len);

rec lownumber = compoundValue(1, if IsNaN(d) then lownumber[1] else d, d);

def lownumberall = Lowest(lownumber,len);



def upward = highnumberall > lownumberall;

def downward = highnumberall < lownumberall;



def x = AbsValue(lownumberall - highnumberall );



def slope = (a - b) / x;

def slopelow = (b - a) / x;



def day = getDay();

def month = getMonth();

def year = getYear();

def lastDay = getLastDay();

def lastmonth = getLastMonth();

def lastyear = getLastYear();

def isToday = if(day == lastDay and month == lastmonth and year == lastyear, 1, 0);

def istodaybarnumber = Highest(if isToday then barnumber else double.nan,len);



def line = b + (slope * (barnumber - lownumber));

def linelow = a + (slopelow * (barnumber - highnumber));



def currentlinelow = if barnumber <= lownumberall then linelow else double.nan;

def currentline = if barnumber <= highnumberall then line else double.nan;



Plot FibFan;

Plot Retracement0;

Plot Retracement1;

Plot Retracement2;

Plot Retracement3;

Plot Retracement4;

Plot Retracement5;

Plot Retracement6;



def range = a - b;



if (showOnlyCurrent and !IsNaN(close[-1]) or IsNaN(close))

then {

FibFan = Double.NaN;

Retracement0 = Double.NaN;

Retracement1 = Double.NaN;

Retracement2 = Double.NaN;

Retracement3 = Double.NaN;

Retracement4 = Double.NaN;

Retracement5 = Double.NaN;

Retracement6 = Double.NaN;







} else {







FibFan = if downward then currentlinelow else if upward then currentline else double.nan;









Retracement0 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient0)),len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient0),len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient0)),len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient0),len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient0)),len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient0),len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient0)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient0) ,len) else double.nan;







Retracement1 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_1)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_1) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_1)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_1) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_1)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_1) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_1)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_1) ,len) else double.nan;





Retracement2 =if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_2)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_2) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_2)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_2) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_2)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_2) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_2)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_2) ,len) else double.nan;







Retracement3 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_3)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_3) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_3)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_3) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_3)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_3) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_3)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_3) ,len) else double.nan;







Retracement4 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_4)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_4),len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_4)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_4) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_4)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_4) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_4)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_4) ,len) else double.nan;





Retracement5 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_5)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_5) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_5)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_5) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_5)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_5) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_5)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_5) ,len) else double.nan;







Retracement6 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_6)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_6) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_6)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_6) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_6)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_6) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_6)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_6) ,len) else double.nan;





}





FibFan.SetStyle(Curve.SHORT_DASH);

FibFan.AssignValueColor(color.cyan);

fibfan.hidebubble();



Retracement0.assignvaluecolor(color.cyan);

retracement0.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber +10), retracement0, concat( "$", round(retracement0, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement0, concat( (coefficient0 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement0, concat( (coefficient0 * 100), "%"), color.cyan, yes);



Retracement1.assignvaluecolor(color.cyan);

retracement1.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement1, concat( "$", round(retracement1, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement1, concat( (coefficient_1 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement1, concat( (coefficient_1 * 100), "%"), color.cyan, yes);



Retracement2.assignvaluecolor(color.cyan);

retracement2.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement2, concat( "$", round(retracement2, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement2, concat( (coefficient_2 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement2, concat( (coefficient_2 * 100), "%"), color.cyan, yes);



Retracement3.assignvaluecolor(color.cyan);

retracement3.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement3, concat( "$", round(retracement3, 2)), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.cyan, yes);



Retracement4.assignvaluecolor(color.cyan);

retracement4.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement4, concat( "$", round(retracement4, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement4, concat( (coefficient_4 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement4, concat( (coefficient_4 * 100), "%"), color.cyan, yes);



Retracement5.assignvaluecolor(color.cyan);

retracement5.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement5, concat( "$", round(retracement5, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement5, concat( (coefficient_5 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement5, concat( (coefficient_5 * 100), "%"), color.cyan, yes);



Retracement6.assignvaluecolor(color.cyan);

retracement6.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement6, concat( "$", round(retracement6, 2)), color.cyan, yes);



AddChartBubble((downward and barnumber == highnumberall), retracement6, concat( (coefficient_6 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement6, concat( (coefficient_6 * 100), "%"), color.cyan, yes);





alert((price crosses below Retracement0) , "Price crosses below Retracement Line 0");

alert((price crosses above Retracement0) , "Price crosses above Retracement Line 0");

alert((price crosses below Retracement1) , "Price crosses below Retracement Line 1");

alert((price crosses above Retracement1) , "Price crosses above Retracement Line 1");

alert((price crosses below Retracement2) , "Price crosses below Retracement Line 2");

alert((price crosses above Retracement2) , "Price crosses above Retracement Line 2");

alert((price crosses below Retracement3) , "Price crosses below Retracement Line 3");

alert((price crosses above Retracement3) , "Price crosses above Retracement Line 3");

alert((price crosses below Retracement4) , "Price crosses below Retracement Line 4");

alert((price crosses above Retracement4) , "Price crosses above Retracement Line 4");

alert((price crosses below Retracement5) , "Price crosses below Retracement Line 5");

alert((price crosses above Retracement5) , "Price crosses above Retracement Line 5");

alert((price crosses below Retracement6) , "Price crosses below Retracement Line 6");

alert((price crosses above Retracement6) , "Price crosses above Retracement Line 6");
 
Last edited by a moderator:
I have been playing around with the AutoFib indicator to make it user defined range instead of HighestAll and LowestAll. Nothing paints when I try it. I wonder where I am going wrong.

Below is my code.

Code:
#hint: <b>Fibonacci Retracements</b>\nFibonacci retracements use horizontal lines to indicate areas of support or resistance at the key Fibonacci levels before it continues in the original direction. These levels are created by drawing a trendline between two extreme points and then dividing the vertical distance by the key Fibonacci ratios of: 23.6%, 38.2%, 50%, 61.8%, 78.6%, and 100%.

#hint Price: Price used in the alerts on crossing retracement lines. <b>(Default is Close)</b>

#hint onExpansion: Determines if the retracement lines are projected past the current bar into the right side expansion <b>(Default is Yes)</b>

#hint Extend_to_left: Determines if the retracement lines are extended to the left side of the chart. <b>(Default is No)</b>



#hint Coefficient0: Retracement Line 0: Retracement from the highest high to the lowest low.\n <b>(Default is 0%)</b>

#hint Coefficient_1: Retracement Line 1: Retracement from the highest high to the lowest low.\n <b>(Default is 23.6%)</b>

#hint Coefficient_2: Retracement Line 2: Retracement from the highest high to the lowest low.\n <b>(Default is 38.2%)</b>

#hint Coefficient_3: Retracement Line 3: Retracement from the highest high to the lowest low.\n <b>(Default is 50%)</b>

#hint Coefficient_4: Retracement Line 4: Retracement from the highest high to the lowest low.\n <b>(Default is 61.8%)</b>

#hint Coefficient_5: Retracement Line 5: Retracement from the highest high to the lowest low.\n <b>(Default is 78.6%)</b>

#hint Coefficient_6: Retracement Line 6: Retracement from the highest high to the lowest low.\n <b>(Default is 100%)</b>



#wizard input: Price

#wizard text: Inputs: Price:

#wizard input: onExpansion

#wizard text: onExpansion:

#wizard input: Extend_to_left

#wizard text: Extend_to_left:

#wizard input: Coefficient0

#wizard text: Coefficient0:

#wizard input: Coefficient_1

#wizard text: Coefficient_1:

#wizard input: Coefficient_2

#wizard text: Coefficient_2:

#wizard input: Coefficient_3

#wizard text: Coefficient_3:

#wizard input: Coefficient_4

#wizard text: Coefficient_4:

#wizard input: Coefficient_5

#wizard text: Coefficient_5:

#wizard input: Coefficient_6

#wizard text: Coefficient_6:



input price = close;

input high = high;

input low = low;

input onExpansion = Yes;

input Extend_to_left = no;

input Coefficient0 = 0.000;

input coefficient_1 = .236;

input Coefficient_2 = .382;

input Coefficient_3 = .500;

input Coefficient_4 = .618;

Input Coefficient_5 = .786;

input Coefficient_6 = 1.000;



Def showOnlyCurrent = yes;

Def len = 30;

def a = Highest(high,len);

def b = Lowest(low,len);

def barnumber = barNumber();

def c = if high == a then barnumber else double.nan;

def d = if low == b then barnumber else double.nan;

rec highnumber = compoundValue(1, if IsNaN(c) then highnumber[1] else c, c);

def highnumberall = Highest(highnumber,len);

rec lownumber = compoundValue(1, if IsNaN(d) then lownumber[1] else d, d);

def lownumberall = Lowest(lownumber,len);



def upward = highnumberall > lownumberall;

def downward = highnumberall < lownumberall;



def x = AbsValue(lownumberall - highnumberall );



def slope = (a - b) / x;

def slopelow = (b - a) / x;



def day = getDay();

def month = getMonth();

def year = getYear();

def lastDay = getLastDay();

def lastmonth = getLastMonth();

def lastyear = getLastYear();

def isToday = if(day == lastDay and month == lastmonth and year == lastyear, 1, 0);

def istodaybarnumber = Highest(if isToday then barnumber else double.nan,len);



def line = b + (slope * (barnumber - lownumber));

def linelow = a + (slopelow * (barnumber - highnumber));



def currentlinelow = if barnumber <= lownumberall then linelow else double.nan;

def currentline = if barnumber <= highnumberall then line else double.nan;



Plot FibFan;

Plot Retracement0;

Plot Retracement1;

Plot Retracement2;

Plot Retracement3;

Plot Retracement4;

Plot Retracement5;

Plot Retracement6;



def range = a - b;



if (showOnlyCurrent and !IsNaN(close[-1]) or IsNaN(close))

then {

FibFan = Double.NaN;

Retracement0 = Double.NaN;

Retracement1 = Double.NaN;

Retracement2 = Double.NaN;

Retracement3 = Double.NaN;

Retracement4 = Double.NaN;

Retracement5 = Double.NaN;

Retracement6 = Double.NaN;







} else {







FibFan = if downward then currentlinelow else if upward then currentline else double.nan;









Retracement0 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient0)),len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient0),len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient0)),len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient0),len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient0)),len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient0),len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient0)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient0) ,len) else double.nan;







Retracement1 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_1)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_1) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_1)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_1) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_1)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_1) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_1)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_1) ,len) else double.nan;





Retracement2 =if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_2)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_2) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_2)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_2) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_2)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_2) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_2)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_2) ,len) else double.nan;







Retracement3 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_3)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_3) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_3)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_3) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_3)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_3) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_3)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_3) ,len) else double.nan;







Retracement4 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_4)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_4),len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_4)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_4) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_4)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_4) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_4)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_4) ,len) else double.nan;





Retracement5 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_5)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_5) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_5)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_5) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_5)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_5) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_5)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_5) ,len) else double.nan;







Retracement6 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highest((b + (range * coefficient_6)) ,len) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highest(a - (range * coefficient_6) ,len) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highest((b + (range * coefficient_6)) ,len) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highest(a - (range * coefficient_6) ,len) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highest((b + (range * coefficient_6)) ,len) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highest(a - (range * coefficient_6) ,len) else if downward and onexpansion and extend_to_left then highest((b + (range * coefficient_6)) ,len) else if upward and onexpansion and extend_to_left then highest(a - (range * coefficient_6) ,len) else double.nan;





}





FibFan.SetStyle(Curve.SHORT_DASH);

FibFan.AssignValueColor(color.cyan);

fibfan.hidebubble();



Retracement0.assignvaluecolor(color.cyan);

retracement0.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber +10), retracement0, concat( "$", round(retracement0, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement0, concat( (coefficient0 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement0, concat( (coefficient0 * 100), "%"), color.cyan, yes);



Retracement1.assignvaluecolor(color.cyan);

retracement1.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement1, concat( "$", round(retracement1, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement1, concat( (coefficient_1 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement1, concat( (coefficient_1 * 100), "%"), color.cyan, yes);



Retracement2.assignvaluecolor(color.cyan);

retracement2.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement2, concat( "$", round(retracement2, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement2, concat( (coefficient_2 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement2, concat( (coefficient_2 * 100), "%"), color.cyan, yes);



Retracement3.assignvaluecolor(color.cyan);

retracement3.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement3, concat( "$", round(retracement3, 2)), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.cyan, yes);



Retracement4.assignvaluecolor(color.cyan);

retracement4.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement4, concat( "$", round(retracement4, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement4, concat( (coefficient_4 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement4, concat( (coefficient_4 * 100), "%"), color.cyan, yes);



Retracement5.assignvaluecolor(color.cyan);

retracement5.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement5, concat( "$", round(retracement5, 2)), color.cyan, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement5, concat( (coefficient_5 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement5, concat( (coefficient_5 * 100), "%"), color.cyan, yes);



Retracement6.assignvaluecolor(color.cyan);

retracement6.hidebubble();

#AddChartBubble((barnumber == istodaybarnumber+10), retracement6, concat( "$", round(retracement6, 2)), color.cyan, yes);



AddChartBubble((downward and barnumber == highnumberall), retracement6, concat( (coefficient_6 * 100), "%"), color.cyan, yes);

AddChartBubble((upward and barnumber == lownumberall), retracement6, concat( (coefficient_6 * 100), "%"), color.cyan, yes);





alert((price crosses below Retracement0) , "Price crosses below Retracement Line 0");

alert((price crosses above Retracement0) , "Price crosses above Retracement Line 0");

alert((price crosses below Retracement1) , "Price crosses below Retracement Line 1");

alert((price crosses above Retracement1) , "Price crosses above Retracement Line 1");

alert((price crosses below Retracement2) , "Price crosses below Retracement Line 2");

alert((price crosses above Retracement2) , "Price crosses above Retracement Line 2");

alert((price crosses below Retracement3) , "Price crosses below Retracement Line 3");

alert((price crosses above Retracement3) , "Price crosses above Retracement Line 3");

alert((price crosses below Retracement4) , "Price crosses below Retracement Line 4");

alert((price crosses above Retracement4) , "Price crosses above Retracement Line 4");

alert((price crosses below Retracement5) , "Price crosses below Retracement Line 5");

alert((price crosses above Retracement5) , "Price crosses above Retracement Line 5");

alert((price crosses below Retracement6) , "Price crosses below Retracement Line 6");

alert((price crosses above Retracement6) , "Price crosses above Retracement Line 6");
I found a solution on this thread: https://usethinkscript.com/threads/...ci-retracement-indicator-for-thinkorswim.153/
 
Code:
#hint Price: Price used in the alerts on crossing retracement lines. <b>(Default is Close)</b>
#hint onExpansion: Determines if the retracement lines are projected past the current bar into the right side expansion <b>(Default is Yes)</b>
#hint Extend_to_left: Determines if the retracement lines are extended to the left side of the chart. <b>(Default is No)</b>

#hint Coefficient0: Retracement Line 0: Retracement from the highest high to the lowest low.<b>(Default is 0%)</b>
#hint Coefficient_1: Retracement Line 1: Retracement from the highest high to the lowest low.<b>(Default is 23.6%)</b>
#hint Coefficient_2: Retracement Line 2: Retracement from the highest high to the lowest low.<b>(Default is 38.2%)</b>
#hint Coefficient_3: Retracement Line 3: Retracement from the highest high to the lowest low.<b>(Default is 50%)</b>
#hint Coefficient_4: Retracement Line 4: Retracement from the highest high to the lowest low.<b>(Default is 61.8%)</b>
#hint Coefficient_5: Retracement Line 5: Retracement from the highest high to the lowest low.<b>(Default is 78.6%)</b>
#hint Coefficient_6: Retracement Line 6: Retracement from the highest high to the lowest low.<b>(Default is 100%)</b>

#wizard input: Price
#wizard text: Inputs: Price:
#wizard input: onExpansion
#wizard text: onExpansion:
#wizard input: Extend_to_left
#wizard text: Extend_to_left:
#wizard input: Coefficient0
#wizard text: Coefficient0:
#wizard input: Coefficient_1
#wizard text: Coefficient_1:
#wizard input: Coefficient_2
#wizard text: Coefficient_2:
#wizard input: Coefficient_3
#wizard text: Coefficient_3:
#wizard input: Coefficient_4
#wizard text: Coefficient_4:
#wizard input: Coefficient_5
#wizard text: Coefficient_5:
#wizard input: Coefficient_6
#wizard text: Coefficient_6:

input price = close;
input high = high;
input low = low;
input onExpansion = Yes;
input Extend_to_left = no;
input Coefficient0 = 0.000;
input coefficient_1 = .236;
input Coefficient_2 = .382;
input Coefficient_3 = .500;
input Coefficient_4 = .618;
Input Coefficient_5 = .786;
input Coefficient_6 = 1.000;

def a = HighestAll(high);
def b = LowestAll(low);
def barnumber = barNumber();
def c = if high == a then barnumber else double.nan;
def d = if low == b then barnumber else double.nan;
rec highnumber = compoundValue(1, if IsNaN(c) then highnumber[1] else c, c);
def highnumberall = HighestAll(highnumber);
rec lownumber = compoundValue(1, if IsNaN(d) then lownumber[1] else d, d);
def lownumberall = LowestAll(lownumber);

def upward = highnumberall > lownumberall;
def downward = highnumberall < lownumberall;

def x = AbsValue(lownumberall - highnumberall );

def slope = (a - b) / x;
def slopelow = (b - a) / x;

def day = getDay();
def month = getMonth();
def year = getYear();
def lastDay = getLastDay();
def lastmonth = getLastMonth();
def lastyear = getLastYear();
def isToday = if(day == lastDay and month == lastmonth and year == lastyear, 1, 0);
def istodaybarnumber = HighestAll(if isToday then barnumber else double.nan);
def line = b + (slope * (barnumber - lownumber));
def linelow = a + (slopelow * (barnumber - highnumber));
def currentlinelow = if barnumber <= lownumberall then linelow else double.nan;
def currentline = if barnumber <= highnumberall then line else double.nan;

Plot FibFan =  if  downward then currentlinelow else if upward then currentline else double.nan;
FibFan.SetStyle(Curve.SHORT_DASH);
FibFan.AssignValueColor(color.red);
fibfan.hidebubble();

def range =  a - b;

Plot Retracement0 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient0))) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highestall(a - (range * coefficient0)) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highestall((b + (range *  coefficient0))) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highestall(a - (range * coefficient0)) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient0))) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highestall(a - (range * coefficient0)) else if downward and onexpansion and extend_to_left then highestall((b + (range *  coefficient0))) else if upward and onexpansion and extend_to_left then highestall(a - (range * coefficient0)) else double.nan;
Retracement0.assignvaluecolor(color.red);
retracement0.hidebubble();
#AddChartBubble((barnumber == istodaybarnumber +10), retracement0, concat( "$", round(retracement0, 2)), color.red, yes);
AddChartBubble((downward and barnumber == highnumberall), retracement0, concat( (coefficient0 * 100), "%"), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement0, concat( (coefficient0 * 100), "%"), color.red, yes);

Plot Retracement1 =  if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_1))) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_1)) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highestall((b + (range *  coefficient_1))) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highestall(a - (range * coefficient_1)) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_1))) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_1)) else if downward and onexpansion and extend_to_left then highestall((b + (range *  coefficient_1))) else if upward and onexpansion and extend_to_left then highestall(a - (range * coefficient_1)) else double.nan;
Retracement1.assignvaluecolor(color.red);
retracement1.hidebubble();
#AddChartBubble((barnumber == istodaybarnumber+10), retracement1, concat( "$", round(retracement1, 2)), color.red, yes);
AddChartBubble((downward and barnumber == highnumberall), retracement1, concat( (coefficient_1 * 100), "%"), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement1, concat( (coefficient_1 * 100), "%"), color.red, yes);

Plot Retracement2 =if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_2))) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_2)) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highestall((b + (range *  coefficient_2))) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highestall(a - (range * coefficient_2)) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_2))) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_2)) else if downward and onexpansion and extend_to_left then highestall((b + (range *  coefficient_2))) else if upward and onexpansion and extend_to_left then highestall(a - (range * coefficient_2)) else double.nan;
Retracement2.assignvaluecolor(color.red);
retracement2.hidebubble();
#AddChartBubble((barnumber == istodaybarnumber+10), retracement2, concat( "$", round(retracement2, 2)), color.red, yes);
AddChartBubble((downward and barnumber == highnumberall), retracement2, concat( (coefficient_2 * 100), "%"), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement2, concat( (coefficient_2 * 100), "%"), color.red, yes);

Plot Retracement3 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_3))) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_3)) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highestall((b + (range *  coefficient_3))) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highestall(a - (range * coefficient_3)) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_3))) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_3)) else if downward and onexpansion and extend_to_left then highestall((b + (range *  coefficient_3))) else if upward and onexpansion and extend_to_left then highestall(a - (range * coefficient_3)) else double.nan;
Retracement3.assignvaluecolor(color.red);
retracement3.hidebubble();
#AddChartBubble((barnumber == istodaybarnumber+10), retracement3, concat( "$", round(retracement3, 2)), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.red, yes);
AddChartBubble((downward and barnumber == highnumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement3, concat( (coefficient_3 * 100), "%"), color.red, yes);

Plot Retracement4 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_4))) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_4)) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highestall((b + (range *  coefficient_4))) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highestall(a - (range * coefficient_4)) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_4))) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_4)) else if downward and onexpansion and extend_to_left then highestall((b + (range *  coefficient_4))) else if upward and onexpansion and extend_to_left then highestall(a - (range * coefficient_4)) else double.nan;
Retracement4.assignvaluecolor(color.red);
retracement4.hidebubble();
#AddChartBubble((barnumber == istodaybarnumber+10), retracement4, concat( "$", round(retracement4, 2)), color.red, yes);
AddChartBubble((downward and barnumber == highnumberall), retracement4, concat( (coefficient_4 * 100), "%"), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement4, concat( (coefficient_4 * 100), "%"), color.red, yes);

Plot Retracement5 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_5))) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_5)) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highestall((b + (range *  coefficient_5))) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highestall(a - (range * coefficient_5)) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_5))) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_5)) else if downward and onexpansion and extend_to_left then highestall((b + (range *  coefficient_5))) else if upward and onexpansion and extend_to_left then highestall(a - (range * coefficient_5)) else double.nan;
Retracement5.assignvaluecolor(color.red);
retracement5.hidebubble();
#AddChartBubble((barnumber == istodaybarnumber+10), retracement5, concat( "$", round(retracement5, 2)), color.red, yes);
AddChartBubble((downward and barnumber == highnumberall), retracement5, concat( (coefficient_5 * 100), "%"), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement5, concat( (coefficient_5 * 100), "%"), color.red, yes);

Plot Retracement6 = if downward and !onexpansion and !extend_to_left and barnumber >= highnumberall and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_6))) else if upward and !extend_to_left and !onexpansion and barnumber >= lownumberall and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_6)) else if downward and onexpansion and !extend_to_left and barnumber >= highnumberall then highestall((b + (range *  coefficient_6))) else if upward and onexpansion and barnumber >= lownumberall and !extend_to_left then highestall(a - (range * coefficient_6)) else if downward and !onexpansion and extend_to_left and barnumber <= istodaybarnumber then highestall((b + (range *  coefficient_6))) else if upward and extend_to_left and !onexpansion and barnumber <= istodaybarnumber then highestall(a - (range * coefficient_6)) else if downward and onexpansion and extend_to_left then highestall((b + (range *  coefficient_6))) else if upward and onexpansion and extend_to_left then highestall(a - (range * coefficient_6)) else double.nan;
Retracement6.assignvaluecolor(color.red);
retracement6.hidebubble();
#AddChartBubble((barnumber == istodaybarnumber+10), retracement6, concat( "$", round(retracement6, 2)), color.red, yes);

AddChartBubble((downward and barnumber == highnumberall), retracement6, concat( (coefficient_6 * 100), "%"), color.red, yes);
AddChartBubble((upward and barnumber == lownumberall), retracement6, concat( (coefficient_6 * 100), "%"), color.red, yes);

alert((price crosses below Retracement0) , "Price crosses below Retracement Line 0");
alert((price crosses above Retracement0) , "Price crosses above Retracement Line 0");
alert((price crosses below Retracement1) , "Price crosses below Retracement Line 1");
alert((price crosses above Retracement1) , "Price crosses above Retracement Line 1");
alert((price crosses below Retracement2) , "Price crosses below Retracement Line 2");
alert((price crosses above Retracement2) , "Price crosses above Retracement Line 2");
alert((price crosses below Retracement3) , "Price crosses below Retracement Line 3");
alert((price crosses above Retracement3) , "Price crosses above Retracement Line 3");
alert((price crosses below Retracement4) , "Price crosses below Retracement Line 4");
alert((price crosses above Retracement4) , "Price crosses above Retracement Line 4");
alert((price crosses below Retracement5) , "Price crosses below Retracement Line 5");
alert((price crosses above Retracement5) , "Price crosses above Retracement Line 5");
alert((price crosses below Retracement6) , "Price crosses below Retracement Line 6");
alert((price crosses above Retracement6) , "Price crosses above Retracement Line 6");


I'm trying to scan to find 78% retraces but its not giving me good results. I dont know why its not working right? thanks

Code:
close is equal to jons_auto_fibs()."Retracement5" within 1 bars    (daily)
 
Has anyone come across an auto-drawing fibonacci study that allows you to draw levels from multiple different timeframes on one chart? Basically if you're in the 5 minute you would be able to see the levels from let's say the 5day/15 min and the 10day/30 minute and so on since each aggregated chart contain different minima and maxima. Thanks a lot.
 
@BenTen Hi Ben. Is there a way to have just the 1 year daily fib levels marked on your chart regardless of what time frame I am using?
 
@YAD You're talking about turning the indicator into MTF. I'm not sure if that version is already out there yet. If not, I may have to look into it.
 
Hi @BenTen, not sure if this the right forum for this question, but here it is:
I have a script that scans for the mid (50%) of last month's range.
But when I try to scan for a price cross above or below this level on an intraday basis, it gives me an error, since the I am trying to scan on a 1min. basis and the script is on a monthly. Is there any way to scan from that low (1 or 5min. bar), if the price is crossing this monthly level? Thank you one again for your help!
 

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
392 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

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.

How do I get started?

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.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top