Customizable and Easy-to-Read Elliot Wave Osicllator.

Here you can post and download custom indicators. PLEASE: Do not start topics unless you are posting your own indicator, they will be moved to appropriate section even if you do.

Moderator: admin

Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby Nikolay.Gekht » Wed Feb 10, 2010 5:49 pm

Apr, 10: now the indicator is in the list of the standard indicators of Marketscope. You don't need to download and install it anymore.

Updated Feb, 22. The histogram is displayed better when the current bar has the same height as the previous bar.

The standard Marketscope implementation of the Elliot Wave oscillator is not easy to read and is not flexible at all.

Here is a slighty modified version of the EWO oscilattor which
  • Displays the result as a colored histogram
  • Lets the user choose the smoothing method (MVA, EMA, LWMA, SMMA, VIDYA95, VIDYA92 and WILDERS
  • Lets the user choose the fast and slow smothing parameters.

Below is an example how EWO based on MVA and SMMA looks:
ewo.PNG


Code: Select all
-- The formula is described in the Kaufman "Trading Systems and Methods" chapter 14 "Behavioral techniques" (page 358-361)

-- Indicator profile initialization routine
-- Defines indicator profile properties and indicator parameters
function Init()
    indicator:name("Elliot Wave Oscillator (Customizable)");
    indicator:description("Measures the rate of price change in one wave against the rate of change in another wave.");
    indicator:requiredSource(core.Bar);
    indicator:type(core.Oscillator);

    indicator.parameters:addInteger("FastN", "Fast Moving Average", "", 5, 2, 1000);
    indicator.parameters:addInteger("SlowN", " Slow Moving Average", "", 35, 2, 1000);

    indicator.parameters:addString("Source", "The price source", "", "M3");
    indicator.parameters:addStringAlternative("Source", "Median (H+L+C)/3", "", "M3");
    indicator.parameters:addStringAlternative("Source", "Median (H+L)/2", "", "M2");
    indicator.parameters:addStringAlternative("Source", "Close", "", "C");

    indicator.parameters:addString("Method", "The smoothing method", "The methods marked by the star (*) requires to have approriate indicators installed", "MVA");
    indicator.parameters:addStringAlternative("Method", "MVA", "", "MVA");
    indicator.parameters:addStringAlternative("Method", "EMA", "", "EMA");
    indicator.parameters:addStringAlternative("Method", "LWMA", "", "LWMA");
    indicator.parameters:addStringAlternative("Method", "SMMA*", "", "SMMA");
    indicator.parameters:addStringAlternative("Method", "Vidya (1995)*", "", "VIDYA");
    indicator.parameters:addStringAlternative("Method", "Vidya (1992)*", "", "VIDYA92");
    indicator.parameters:addStringAlternative("Method", "Wilders*", "", "WMA");

    indicator.parameters:addString("HideLine", "Hide the envelop curve", "This options is useful for reusing this indicator in other indicators", "Yes");
    indicator.parameters:addStringAlternative("HideLine", "Yes", "", "Yes");
    indicator.parameters:addStringAlternative("HideLine", "No", "", "No");

    indicator.parameters:addColor("clrUpGrow", "Up Growing Color", "", core.rgb(0, 255, 0));
    indicator.parameters:addColor("clrUpFall", "Up Falling Color", "", core.rgb(0, 127, 0));
    indicator.parameters:addColor("clrDnGrow", "Down Growing Color", "", core.rgb(127, 0, 0));
    indicator.parameters:addColor("clrDnFall", "Down Falling Color", "", core.rgb(255, 0, 0));
    indicator.parameters:addColor("clrCurve", "Envelope Color", "", core.rgb(127, 127, 127));
end

-- Indicator instance initialization routine
local first;
local first1;
local source = nil;

-- Streams block
local SRC = nil;
local FMA = nil;
local SMA = nil;
local EWO = nil;
local UPGROW = nil;
local UPFALL = nil;
local DNGROW = nil;
local DNFALL = nil;
local DUMMY = nil;
local srcmode;
local prior;

-- Routine
function Prepare()
    assert(instance.parameters.FastN < instance.parameters.SlowN, "Fast MA must be faster than Slow MA");
    srcmode = instance.parameters.Source;
    source = instance.source;
    first1 = source:first();

    SRC = instance:addInternalStream(source:first(), 0);

    FMA = core.indicators:create(instance.parameters.Method, SRC, instance.parameters.FastN);
    SMA = core.indicators:create(instance.parameters.Method, SRC, instance.parameters.SlowN);

    first = SMA.DATA:first();
    local name = profile:id() .. "(" .. source:name() .. "," .. instance.parameters.FastN .. "," ..  instance.parameters.SlowN .. "," ..  instance.parameters.Method  .. ")";
    instance:name(name);

    if instance.parameters.HideLine == "Yes" then
        EWO = instance:addInternalStream(first, 0);
    else
        EWO = instance:addStream("EWO", core.Dot, name .. ".EWO", "EWO", instance.parameters.clrCurve, first);
    end
    UPGROW = instance:addStream("UG", core.Bar, name .. ".UG", "UG", instance.parameters.clrUpGrow, first + 1);
    UPFALL = instance:addStream("UF", core.Bar, name .. ".UF", "UF", instance.parameters.clrUpFall, first + 1);
    DNGROW = instance:addStream("DG", core.Bar, name .. ".DG", "DG", instance.parameters.clrDnGrow, first + 1);
    DNFALL = instance:addStream("DF", core.Bar, name .. ".DF", "DF", instance.parameters.clrDnFall, first + 1);
    UPGROW:addLevel(0);
end

-- Indicator calculation routine
function Update(period, mode)
    if period >= first1 then
        if srcmode == "M3" then
            SRC[period] = (source.high[period] + source.low[period] + source.close[period]) / 3;
        elseif srcmode == "M2" then
            SRC[period] = (source.high[period] + source.low[period]) / 2;
        else
            SRC[period] = source.close[period];
        end
    end

    local diff, pdiff;
    SMA:update(mode);
    FMA:update(mode);

    if period >= first then
        diff = FMA.DATA[period] - SMA.DATA[period];
        EWO[period] = diff;
    end

    if period >= first + 1 then
        diff = EWO[period];
        pdiff = EWO[period - 1];
        if diff > 0 then
            if diff > pdiff then
                UPGROW[period] = diff;
                prior = 1;
            elseif diff < pdiff then
                UPFALL[period] = diff;
                prior = -1;
            else
                if (prior == 1) then
                    UPGROW[period] = diff;
                else
                    UPFALL[period] = diff;
                end
            end
        else
            if diff > pdiff then
                DNGROW[period] = diff;
                prior = 1;
            elseif diff < pdiff then
                DNFALL[period] = diff;
                prior = -1;
            else
                if (prior == 1) then
                    DNGROW[period] = diff;
                else
                    DNFALL[period] = diff;
                end
            end
        end
    end
end


Download:
EWO1.lua
(5.8 KiB) Downloaded 2330 times


Note: To use SMMA, VIDYA, VIDYA92 and WILDERS indicators as a smoothing method please download and install these indicators too.

The indicator was revised and updated
Nikolay.Gekht
FXCodeBase: Site Admin
 
Posts: 1235
Joined: Wed Dec 16, 2009 6:39 pm
Location: Cary, NC

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby boursicoton » Sun Feb 21, 2010 4:00 pm

i dont understood this indicator....where's elliott in this model ?
i take EMA 5 and 35..... 5 cross over 35 green and red for cross under....all simply !
boursicoton
FXCodeBase: Confirmed User
 
Posts: 78
Joined: Sat Feb 06, 2010 1:33 pm

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby Nikolay.Gekht » Mon Feb 22, 2010 12:39 am

I'll prepare the detailed description for our site soon.
You can also read more about usage of this oscillator on trading related sites, for example here
Nikolay.Gekht
FXCodeBase: Site Admin
 
Posts: 1235
Joined: Wed Dec 16, 2009 6:39 pm
Location: Cary, NC

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby FiniteTuning » Thu Aug 19, 2010 10:15 pm

Greetings, and thank you so much for all of the AWESOME indicators you have released.

I have a request, probably not a simple one.

Could you create an Elliot wave zigzag counter that numbers the waves 1-5 on the chart as well as a,b,c on the back end after wave five? But in either case, an indicator that strictly follows the main rules of Elliott wave theory to the "t".

I have no clue where to even begin, maybe you do.

Thank you greatly, I so appreciate your hard work...!
FiniteTuning
 
Posts: 1
Joined: Thu Aug 19, 2010 6:59 pm

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby Apprentice » Fri Aug 20, 2010 2:45 am

We are working on the development of this indicator.

But the development of the same is not as simple as it seems at first glance.
I developed a theoretical basis for this indicator,
but we can not seem to find time for its implementation.

I therefore invite you to help us in developing this indicator,
especially if you already have such algorithm or the code for this indicator.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 36437
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby Apprentice » Fri Aug 20, 2010 2:58 am

To make it official.
I added it to the developmental cue.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 36437
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby Merchantprince » Wed May 18, 2011 3:33 pm

FiniteTuning wrote:Could you create an Elliot wave zigzag counter that numbers the waves 1-5 on the chart as well as a,b,c on the back end after wave five? But in either case, an indicator that strictly follows the main rules of Elliott wave theory to the "t".

I have been searching for an indicator that matches this description. It was mentioned that such a custom indicator was added to the development queue. Has there been any progress on it since then?
Merchantprince
 
Posts: 14
Joined: Wed Jul 28, 2010 3:24 pm

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby Apprentice » Thu May 19, 2011 3:44 am

This is one of the few tools that we have not been able to accomplish.
There have been several attempts.
I have a few ideas, but I lack the time and knowledge.
If anyone has an algorithm that could help us, help is appreciated.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 36437
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby rob mccrory » Fri Jun 03, 2011 5:15 pm

Apprentice wrote:This is one of the few tools that we have not been able to accomplish.
There have been several attempts.
I have a few ideas, but I lack the time and knowledge.
If anyone has an algorithm that could help us, help is appreciated.


Hey Apprentice,

I'm not sure if I'm 'on subject' in this thread, but are you looking to accomplish something like the image i posted? It's not Elliott Wave, it is, however, a Tom DeMarkTD Wave indicator for Ninja Trader. Maybe you could look at that code for creative ideas? If not, thought I'd give ya a heads up either way.

I've seen a great looking TD Wave indicator for StockFinder...it colors the bars according to what wave price action is in. TD Wave is a pretty powerful tool. I could try to track that down.

I have Jason Perls book on Demark indicators. If you would like the chapter on TD Wave (which details the rules for the indicator) I could make a doc for you.

If I'm way off the mark, to the indicator you had in mind, go ahead and nuke this post.

let me know
Attachments
TD Wave.jpg
rob mccrory
 
Posts: 3
Joined: Tue May 17, 2011 2:39 am

Re: Customizable and Easy-to-Read Elliot Wave Osicllator.

Postby Apprentice » Sat Jun 04, 2011 4:43 am

I'll take a look.
As regards the book, I have on my shelf, thank you.
Links to already made solutions or sample code you can send to my private email.

Which indicator andsettings you are using on chart that you have submitted.
I can not decipher from this chart.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 36437
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Next

Return to Custom Indicators

Who is online

Users browsing this forum: Majestic-12 [Bot] and 139 guests