FXCM Forex Trading

Fx Sniper's Ergodic CCI Trigger indicator and signal

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

Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby Alexander.Gettinger » Mon Jun 21, 2010 2:05 am

Alexander.Gettinger
FXCodeBase: Confirmed User
 
Posts: 2458
Joined: Wed Mar 31, 2010 9:40 pm
Location: Russia, Omsk

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby Alexander.Gettinger » Mon Jun 21, 2010 2:06 am

Signal:
Code: Select all
function Init()
    strategy:name("Fx Sniper's Ergodic CCI Trigger signal");
    strategy:description("");

    strategy.parameters:addGroup("Parameters");

    strategy.parameters:addInteger("pq", "pq", "pq", 4);
    strategy.parameters:addInteger("pr", "pr", "pr", 8);
    strategy.parameters:addInteger("ps", "ps", "ps", 5);
    strategy.parameters:addInteger("trigger", "trigger", "trigger", 4);
    strategy.parameters:addString("MA_Method", "Method of MA", "", "MVA");
    strategy.parameters:addStringAlternative("MA_Method", "EMA", "", "EMA");
    strategy.parameters:addStringAlternative("MA_Method", "KAMA", "", "KAMA");
    strategy.parameters:addStringAlternative("MA_Method", "LWMA", "", "LWMA");
    strategy.parameters:addStringAlternative("MA_Method", "MVA", "", "MVA");
    strategy.parameters:addStringAlternative("MA_Method", "TMA", "", "TMA");

    strategy.parameters:addString("Period", "Timeframe", "", "m5");
    strategy.parameters:setFlag("Period", core.FLAG_PERIODS);

    strategy.parameters:addGroup("Signals");
    strategy.parameters:addBoolean("ShowAlert", "Show Alert", "", true);
    strategy.parameters:addBoolean("PlaySound", "Play Sound", "", false);
    strategy.parameters:addFile("SoundFile", "Sound File", "", "");
end

local SoundFile;
local gSourceBid = nil;
local gSourceAsk = nil;
local first;

local BidFinished = false;
local AskFinished = false;
local LastBidCandle = nil;

local Ind;

function Prepare()
    ShowAlert = instance.parameters.ShowAlert;
    if instance.parameters.PlaySound then
        SoundFile = instance.parameters.SoundFile;
    else
        SoundFile = nil;
    end
   
    assert(not(PlaySound) or (PlaySound and SoundFile ~= ""), "Sound file must be specified");
    assert(instance.parameters.Period ~= "t1", "Signal cannot be applied on ticks");

    ExtSetupSignal("Fx Sniper's Ergodic CCI Trigger signal:", ShowAlert);

    gSourceBid = core.host:execute("getHistory", 1, instance.bid:instrument(), instance.parameters.Period, 0, 0, true);
    gSourceAsk = core.host:execute("getHistory", 2, instance.bid:instrument(), instance.parameters.Period, 0, 0, false);

    Ind = core.indicators:create("FX_SNIPER'S_ERGODIC_CCI_TRIGGER", gSourceBid, instance.parameters.pq,instance.parameters.pr,instance.parameters.ps,instance.parameters.trigger,instance.parameters.MA_Method);

    first = Ind.DATA:first() + 2;

    local name = profile:id() .. "(" .. instance.bid:instrument() .. "(" .. instance.parameters.Period  .. ")" .. instance.parameters.pq .. ")" .. instance.parameters.pr .. ")" .. instance.parameters.ps .. ")" .. instance.parameters.trigger .. ")" .. instance.parameters.MA_Method .. ")";
    instance:name(name);
end

local LastDirection=nil;

-- when tick source is updated
function Update()
    if not(BidFinished) or not(AskFinished) then
        return ;
    end

    local period;

    -- update moving average
    Ind:update(core.UpdateLast);

    -- calculate enter logic
    if LastBidCandle == nil or LastBidCandle ~= gSourceBid:serial(gSourceBid:size() - 1) then
        LastBidCandle = gSourceBid:serial(gSourceBid:size() - 1);

        period = gSourceBid:size() - 1;
        if period > first then
         if Ind.buff1[period]>Ind.buff2[period] and Ind.buff1[period-1]<=Ind.buff2[period-1] and LastDirection~=1 then
                ExtSignal(gSourceAsk, period, "Buy", SoundFile);
                LastDirection=1;
         elseif Ind.buff1[period]<Ind.buff2[period] and Ind.buff1[period-1]>=Ind.buff2[period-1] and LastDirection~=-1 then
                ExtSignal(gSourceBid, period, "Sell", SoundFile);
                LastDirection=-1;
         end
       
        end
    end
end

function AsyncOperationFinished(cookie)
    if cookie == 1 then
        BidFinished = true;
    elseif cookie == 2 then
        AskFinished = true;
    end
end

local gSignalBase = "";     -- the base part of the signal message
local gShowAlert = false;   -- the flag indicating whether the text alert must be shown

-- ---------------------------------------------------------
-- Sets the base message for the signal
-- @param base      The base message of the signals
-- ---------------------------------------------------------
function ExtSetupSignal(base, showAlert)
    gSignalBase = base;
    gShowAlert = showAlert;
    return ;
end

-- ---------------------------------------------------------
-- Signals the message
-- @param message   The rest of the message to be added to the signal
-- @param period    The number of the period
-- @param sound     The sound or nil to silent signal
-- ---------------------------------------------------------
function ExtSignal(source, period, message, soundFile)
    if source:isBar() then
        source = source.close;
    end
    if gShowAlert then
        terminal:alertMessage(source:instrument(), source[period], gSignalBase .. message, source:date(period));
    end
    if soundFile ~= nil then
        terminal:alertSound(soundFile, false);
    end
end
Attachments
Fx_Sniper's_Ergodic_CCI_Trigger_Signal.lua
(5 KiB) Downloaded 796 times
Alexander.Gettinger
FXCodeBase: Confirmed User
 
Posts: 2458
Joined: Wed Mar 31, 2010 9:40 pm
Location: Russia, Omsk

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby oritzbaba » Fri May 20, 2011 10:12 am

Hi Alexander Gettinger and all the other geniuses out there like Apprentice, Sunshine, Nikolay and others. You are doing a good job helping newbies and novice programmers like me to hopefully succeed.

I have had most of my best trades with Fx Sniper's Ergodic CCI Trigger combined with other indicators. Please to make the FX Sniper strategy work more efficiently, can you add all the other very helpful features like set stop/limit, allowed trading, allowed side etc as contained in the MACROSS_CONF_DIST_STRATEGY.

Please help out, God bless you all.

Thanks.
oritzbaba
 
Posts: 10
Joined: Tue May 10, 2011 3:55 am

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby Apprentice » Fri May 20, 2011 4:45 pm

Your request has been added to developmental cue.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 12991
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby oritzbaba » Sat May 21, 2011 6:50 pm

Thanks Apprentice,

I tried to backtest this strategy and I have some observations; 1. It does not trade all crosses either buy/sell as shown by the signal alert arrows on the chart. 2, It enters a trade order sometimes before the signal alert arrow on the chart and at other times after. 3, In my demo trade, it is yet to take any trade even where there had been different crossing opportunities for the strategy to trade.

Please note both the signal alert on the chart and the strategy settings are the same. please help out, what am I doing wrong? One more thing, does the the strategy remain active on FXCM server when my computer laptop is shot down? I know trailing stop does but is strategy on it?
oritzbaba
 
Posts: 10
Joined: Tue May 10, 2011 3:55 am

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby adolfainsley8 » Fri Apr 22, 2016 3:31 am

One more thing, does the the strategy remain active on FXCM server when my computer laptop is shot down? I know trailing stop does but is strategy on it????
adolfainsley8
 
Posts: 1
Joined: Fri Apr 22, 2016 3:29 am

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby Apprentice » Fri Apr 22, 2016 5:54 am

does the the strategy remain active on FXCM server when my computer laptop is shot down?

Unfortunately not .
You will need to setup a VPS for this task.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 12991
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby Apprentice » Fri Apr 22, 2016 7:05 am

Strategy is available here.
viewtopic.php?f=31&t=63401
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 12991
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby jaricarr » Fri Jun 24, 2016 1:58 am

Hi Apprentice,

the indicator is causing an error.

Thanks,
JariCarr
Attachments
Screenshot (21).png
error msg
Many thanks,
JariCarr
jaricarr
 
Posts: 53
Joined: Fri Feb 19, 2016 12:39 pm

Re: Fx Sniper's Ergodic CCI Trigger indicator and signal

Postby Apprentice » Fri Jun 24, 2016 3:11 am

Try it now.
User avatar
Apprentice
FXCodeBase: Confirmed User
 
Posts: 12991
Joined: Thu Dec 31, 2009 11:59 am
Location: Zagreb, Croatia

Next

Return to Custom Indicators

Who is online

Users browsing this forum: Bing [Bot], Yahoo [Bot] and 8 guests