Page 1 of 2

SAR Signal [Upd Oct, 18]

PostPosted: Mon May 17, 2010 4:00 pm
by Nikolay.Gekht
Oct, 18 update by NG. The signal is updated to support all new Marketscope features:
a) recurrent sound
b) parameters grouping
c) email notifications


The simple signals which shows alert when the SAR indicator changes it's direction.

sar_signal.png


Download:
SAR_signal_1.lua
(3.77 KiB) Downloaded 2255 times


Code: Select all
-- Indicator profile initialization routine
-- Defines indicator profile properties and indicator parameters
function Init()
    strategy:name("Simple SAR signal");
    strategy:description("Signals when SAR changes the direction");

    strategy.parameters:addGroup("SAR parameters");
    strategy.parameters:addDouble("Step", "Step", "", 0.02, 0.001, 1);
    strategy.parameters:addDouble("Max", "Max", "", 0.2, 0.001, 10);

    strategy.parameters:addGroup("Price parameters");
    strategy.parameters:addString("Period", "Time frame", "", "m1");
    strategy.parameters:setFlag("Period", core.FLAG_PERIODS);

    strategy.parameters:addGroup("Signal parameters");
    strategy.parameters:addBoolean("ShowAlert", "Show Alert", "", true);
    strategy.parameters:addBoolean("PlaySound", "Play Sound", "", false);
    strategy.parameters:addFile("SoundFile", "Sound file", "", "");
    strategy.parameters:setFlag("SoundFile", core.FLAG_SOUND);
    strategy.parameters:addBoolean("Recurrent", "RecurrentSound", "", false);

    strategy.parameters:addGroup("Email Parameters");
    strategy.parameters:addBoolean("SendEmail", "Send email", "", false);
    strategy.parameters:addString("Email", "Email address", "", "");
    strategy.parameters:setFlag("Email", core.FLAG_EMAIL);
end

-- Indicator instance initialization routine
-- Processes indicator parameters and creates output streams
-- Parameters block
local SAR;
local gSource;

local SoundFile;
local RecurrentSound;
local Email;
local ShowAlert;
local name;


-- Routine
function Prepare(onlyName)
    local Step;
    local Max;
    local ExplosionPower;

    Step = instance.parameters.Step;
    Max = instance.parameters.Max;

    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");

    RecurrentSound = instance.parameters.Recurrent;
    local SendEmail = instance.parameters.SendEmail;
    if SendEmail then
        Email = instance.parameters.Email;
    else
        Email = nil;
    end
    assert(not(SendEmail) or (SendEmail and Email ~= ""), "Email address must be specified");


    name = profile:id() .. "(" .. instance.bid:instrument()  .. "," .. Step .. "," .. Max .. ")";
    instance:name(name);

    if onlyName then
        return ;
    end

    assert(instance.parameters.Period ~= "t1", "Can't be applied on ticks!");

    gSource = ExtSubscribe(1, nil, instance.parameters.Period, true, "bar");
    SAR = core.indicators:create("SAR", gSource, Step, Max);
end

function ExtUpdate(id, source, period)
    if id == 1 then
        SAR:update(core.UpdateLast);
        if period >= SAR.DATA:first() + 1 then
            local message = nil;

            if not(SAR.DN:hasData(period - 1)) and SAR.DN:hasData(period) then
                message = "SAR switched down";
            elseif not(SAR.UP:hasData(period - 1)) and SAR.UP:hasData(period) then
                message = "SAR switched up";
            end

            if message ~= nil then
               if ShowAlert then
                   terminal:alertMessage(instance.bid:instrument(), instance.bid[NOW], message, instance.bid:date(NOW));
               end

               if SoundFile ~= nil then
                   terminal:alertSound(SoundFile, RecurrentSound);
               end

               if Email ~= nil then
                   terminal:alertEmail(Email, name, name .. "(" .. core.formatDate(instance.bid:date(NOW)) .. ") : " .. message);
               end
            end
        end
    end
end

dofile(core.app_path() .. "\\strategies\\standard\\include\\helper.lua");

Re: SAR Signal

PostPosted: Mon May 17, 2010 5:28 pm
by maani1972
Thanks :D

Re: SAR Signal

PostPosted: Mon May 17, 2010 7:04 pm
by maani1972
Hi,

Do I need to reset the sar signal after it produced an alert? because it doesn't give me anymore alerts after the first one. is there a way to make it "fix" so I don't need to reset it after an alert?

Thank you very much

Re: SAR Signal

PostPosted: Mon May 17, 2010 9:16 pm
by Nikolay.Gekht
No, you don't need to reset or restart anything.

Could you please tell me the instrument and timeframe you chosen. I tested it today for a couple of hours on 1 minute EUR/USD only.

Could you please also check whether any records appear on the log tab of the "events" window (except the record about the first SAR signal)?

p.s. Below it is how it looks on my TS:
sar.PNG


However, I found how to simplify the signal a bit. I updated the code, it will consume a bit less of the processor time.

Re: SAR Signal

PostPosted: Tue May 18, 2010 4:04 pm
by maani1972
Hi,

Your right is does work well, sorry for that because at one point it didn't but for today every thing worked fine. Thanks. I'm using it on the 15m chart. I look to your update.
Thanks

Re: SAR Signal

PostPosted: Wed Oct 13, 2010 12:26 pm
by wizardpro
Any update on the result? Do you think it work better with higher time frames such as 1 hours and above?

Re: SAR Signal

PostPosted: Thu Oct 14, 2010 4:51 pm
by Nikolay.Gekht
Right now you can easily check it by yourself. Just install an autotrading patch and run the signal using "Test Strategy".

BTW, there is a good article about SAR strategies on dailyfx.com:
http://www.dailyfx.com/forex/technical/ ... ategy.html

Re: SAR Signal notification/sound problem.

PostPosted: Mon Oct 18, 2010 6:31 pm
by akc1991
i downloaded the sar signal.lua, and I like what I see, but I what I do not see is a notification section(email) where I would like to have the signal emailed to me. Also I am not sure if its me, or the this particular file, but I have selected sound to notify me when a new trend is up or down, and it does not seem to work. Can anybody help me with this?

I would really appreciate anybody's help.

alan

Re: SAR Signal

PostPosted: Mon Oct 18, 2010 8:24 pm
by Nikolay.Gekht
:-)

When this signal was developed there is no such function as email notification in for the signals in Marketscope. I updated the signal in the first post of this topic. Please use the new version to get notifications.

Re: SAR Signal [Upd Oct, 18]

PostPosted: Sat Nov 06, 2010 11:35 am
by fxjunkie
Awesome indicator. I've been bugging fxcm for months to get this one. So they can thank you for making this so I get off their back. lol. One request, any chance of getting it to work on the change of the sar instead of the close of the bar? I trade mostly on 5 or 15 min chart and find sometimes by the close of the bar I miss opportunities. Just a suggestion, either way I love the indicator, ty :)