+1 888 340 6572 
Home/ Support/ Knowledgebase

Knowledgebase

The Knowledgebase and Wiki are a collection of helpful resources for MultiCharts Trading Platform customers.

You can search the base by section, by keyword(s) or both. Select a section from the pulldown menu at the left and enter a keyword or keywords separated by spaces and click "Search". You can also select a section and view every article in it. To do this leave the keyword field blank. The results of your search will be displayed in this frame.
Search in     for   




Fractals > Bill Williams. FractalLine [eSignal EFS Indicators]


Download: ABillW_FractalLine.efs

Category: Indicator > Fractal

Description:

According to Bill Williams, one should enter the market after the new price top (for long positions) or bottom (for short positions) has been broken through. The identification here is based on defining the genuine fractal formation; an upward fractal is detected if there is a row (at least three) increasing values and after the local top has been achieved, bars (at least two bars) show a constant descent. So the model requires at least 5 bars of which the middle one is the local top (upward fractal) or the local bottom (downward fractal) Entry orders according to this concept are usually posted as stop orders activated after the price breaks through a preset level, where the identification of the market`s leaving the previous price corridor takes place.
This indicator displays such levels, relative to which one decided whether the price has broken out of the previous corridor.




EFS Code:

/*******************************************************************
Description : This Indicator plots Bill Williams. FractalLine
Provided By : Developed by TS Support, LLC for eSignal. (c) Copyright 2002
********************************************************************/

function preMain()
{
setPriceStudy(true);

setStudyTitle("FractalLine");

setCursorLabelName("BuyFractal", 0);
setCursorLabelName("SellFractal", 1);

setDefaultBarFgColor(Color.blue, 0);
setDefaultBarFgColor(Color.red, 1);
}
function main(nStrength)
{
var Strength = 2;
if (nStrength != null) Strength = nStrength;
var vHigh = getValue("High",0, -(80 + Strength));
var vLow = getValue("Low",0, -(80 + Strength));
var Price = 0.0;
var SwingLow = 0;
var SwingHigh = 0;
var J = Strength;
var Found = false;
var Counter = 0;
var X = 0;
var Truth = false;
for (J = Strength;(J < 80)&&(Found == false); J++)
{
Price = vLow[J];
X = J + 1;
Truth = true;
for (X = (J + 1); ((X - J) <= Strength)&&(Truth); X++)
{
if (Price > vLow[X]) Truth = false;
}
X = J - 1;
for (X = (J - 1);((J - X) <= Strength)&&(Truth); X--)
{
if (Price >= vLow[X]) Truth = false;
}
if (Truth) Counter++;
if (Counter >= 1) Found = true;
}
if (Found) SwingLow = Price;
else SwingLow = -1;
J = Strength;
Found = false;
Counter = 0;
for (J = Strength;(J < 80)&&(Found == false); J++)
{
Price = vHigh[J];
X = J + 1;
Truth = true;
for (X = (J + 1); ((X - J) <= 2)&&(Truth); X++)
{
if (Price < vHigh[X]) Truth = false;
}
X = J - 1;
for (X = (J - 1);((J - X) <= 2)&&(Truth); X--)
{
if (Price <= vHigh[X]) Truth = false;
}
if (Truth) Counter++;
if (Counter >= 1) Found = true;
}
if (Found) SwingHigh = Price;
else SwingHigh = -1;
var Res1 = null;
var Res2 = null;
if (SwingHigh > -1) Res1 = SwingHigh;
if (SwingLow > -1) Res2 = SwingLow;
return new Array(Res1, Res2);
}

Contact Support
Discussion Forum
Project Management
Online Help & Wiki
Video Tutorials
Blog