Fibonacci Fans


Category:
0
0

Hi pete is it possible to change this Fib Fans script to always start at LOW and end at HIGH  on this Fibonacci Fans?

input price = close;
input high = high;
input low = low;
input onExpansion = Yes;
input Coefficient1 = .382;
input Coefficient_2 = .5;
input Coefficient_3 = .618;

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 low382 = b + ((b – a) * Coefficient1);
def low5 = b + ((b – a) * Coefficient_2);
def low618 = b + ((b – a) * Coefficient_3);

def high382 = a – ((a – b) * Coefficient1);
def high5 = a – ((a – b) * Coefficient_2);
def high618 = a – ((a – b) * Coefficient_3);

def x = AbsValue(lownumberall – highnumberall );

def slope = (a – b) / x;
def slope382 = (high382 – b) / x;
def slope5 = (high5 – b) / x;
def slope618 = (high618 – b) / x;

def slopelow = (b – a) / x;
def slopelow382 = (low382 – b) / x;
def slopelow5 = (low5 – b) / x;
def slopelow618 = (low618 – b) / 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 line382 = b + (slope382 * (barnumber – lownumber));
def line5 = b + (slope5 * (barnumber – lownumber));
def line618 = b + (slope618 * (barnumber – lownumber));

def linelow = a + (slopelow * (barnumber – highnumber));
def line382low = a + (slopelow382 * (barnumber – highnumber));
def line5low = a + (slopelow5 * (barnumber – highnumber));
def line618low = a + (slopelow618 * (barnumber – highnumber));

def currentlinelow = if barnumber <= istodaybarnumber then linelow else double.nan;
def currentline382low = if barnumber <= istodaybarnumber then line382low else double.nan;
def currentline5low = if barnumber <= istodaybarnumber then line5low else double.nan;
def currentline618low = if barnumber <= istodaybarnumber then line618low else double.nan;

def currentline = if barnumber <= istodaybarnumber then line else double.nan;
def currentline382 = if barnumber <= istodaybarnumber then line382 else double.nan;
def currentline5 = if barnumber <= istodaybarnumber then line5 else double.nan;
def currentline618 = if barnumber <= istodaybarnumber then line618 else double.nan;

Plot FibFan = if downward and onExpansion then linelow else if downward then currentlinelow else if upward and onExpansion then line else if upward then currentline else double.nan;
FibFan.SetStyle(Curve.SHORT_DASH);
FibFan.AssignValueColor(color.red);

Plot “Coefficient 1” = if (downward and onExpansion) then line382low else if downward then currentline382low else if upward and onExpansion then line382 else if upward then currentline382 else double.nan;
“Coefficient 1”.SetStyle(Curve.Firm);
“Coefficient 1”.AssignValueColor(color.red);
Plot “Coefficient 2” = if downward and onExpansion then line5low else if downward then currentline5low else if upward and onExpansion then line5 else if upward then currentline5 else double.nan;
“Coefficient 2”.AssignValueColor(color.red);
“Coefficient 2”.SetStyle(Curve.Firm);
Plot “Coefficient 3” = if downward and onExpansion then line618low else if downward then currentline618low else if upward and onExpansion then line618 else if upward then currentline618 else double.nan;
“Coefficient 3”.AssignValueColor(color.red);
“Coefficient 3”.SetStyle(Curve.Firm);

alert((price crosses below “Coefficient 1”) , “Price crosses below Coefficient 1”);
alert((price crosses below “Coefficient 2”) , “Price crosses below Coefficient 2”);
alert((price crosses below “Coefficient 3”) , “Price crosses below Coefficient 3”);
alert((price crosses above “Coefficient 1”) , “Price crosses above Coefficient 1”);
alert((price crosses above “Coefficient 2”) , “Price crosses above Coefficient 2”);
alert((price crosses above “Coefficient 3”) , “Price crosses above Coefficient 3”);

 

Attachments:
Marked as spam
Posted by (Questions: 1, Answers: 3)
Asked on August 21, 2018 11:38 am
180 views
0

Who is the author of this code? Do you have authority to publish this code in a public forum? Did you ask the original author about making this modification? Where did you find this code and will you please provide a link.

The code is designed to automatically flip from high/low to low/high depending on the price action on the chart. So what you are asking is already included. Unless you are asking to add the coefficients for the opposite side of the fan.

( at August 21, 2018 12:08 pm)
0
i got the script from my friend for free. is it possible only to activate the ascending pattern and turn off the descending?
( at August 21, 2018 4:08 pm)
0

If you modified it in that way, the end result would be that it would plot nothing on a chart where prices are trending lower. In the example screenshot you provided, this modification would cause the indicator to plot nothing at all on that chart. I don’t see any point in doing so.

( at August 21, 2018 5:10 pm)