-- Test -- Copyright (c) 2016 Steven Dickinson -- http://robocod.blogspot.co.uk/ -- -- Notes: -- Version 1 - First version -- Local variables local source; local host; local length; local out1; local out2; local out3; local file = nil; -- Create the indicator's profile function Init() indicator:name("Test"); indicator:description("Test"); indicator:requiredSource(core.Bar); --indicator:type(core.Oscillator); indicator:type(core.Indicator); --indicator:setTag("group", "TBD"); --indicator:setTag("replaceSource", "t"); local colour = core.colors(); -- License --indicator.parameters:addGroup("License"); --indicator.parameters:addString("license", "License key", "Enter the license key", ""); -- Calculation parameters --indicator.parameters:addGroup("Calculation parameters"); indicator.parameters:addInteger("length", "Length", "", 20, 10, 9999); -- Display options --indicator.parameters:addGroup("Display options"); -- Colours and effects --indicator.parameters:addGroup("Colours and effects"); --indicator.parameters:addColor("colour1", "Colour 1", "", colour.Blue); --indicator.parameters:addColor("colour2", "Colour 2", "", colour.Red); --indicator.parameters:addColor("colour3", "Colour 3", "", colour.Yellow); end -- Create a new instance of the indicator function Prepare(nameOnly) -- Create locals for these commonly used variables source = instance.source; host = core.host; -- Set the indicator name local name = string.format("%s(%s)", profile:id(), instance.source:name()); instance:name(name); if nameOnly then return end -- Load required modules --require "rbc_utils"; -- Outputs --out1 = instance:addStream("OUT1", core.Line, name..".OUT1", "OUT1", instance.parameters.colour1, source:first()); --out2 = instance:addStream("OUT2", core.Line, name..".OUT2", "OUT2", instance.parameters.colour2, source:first()); --out3 = instance:addStream("OUT3", core.Line, name..".OUT3", "OUT3", instance.parameters.colour3, source:first()); -- Initialize variables length = instance.parameters.length; --out1:addLevel(50); --out1:addLevel(80); --out1:addLevel(20); file = io.open("C:\\temp\\"..string.gsub(source:instrument(), "(/)", "")..".txt", "w"); end -- Update the indicator function Update(period, mode) if file then if period < source:first() + length then file:write(string.format("period = %d, price = %g\n", period, source.close[period])); file:flush(); end end end -- Release the indicator function ReleaseInstance() if file then file:close(); end end -- Handle asynchronous events function AsyncOperationFinished(cookie, success, message) -- Nothing to do yet end