i am new to this Forum and on Marketscope.
Did someone have this MT4 Indicator for Marketscope?
- Code: Select all
http://www.forexsystemtrader.com/super-signals-channel-mt4-indicator/
Moderator: admin
http://www.forexsystemtrader.com/super-signals-channel-mt4-indicator/
//+------------------------------------------------------------------+
//| super-signals-channel.mq4 |
//| Copyright © 2006, Nick Bilak, beluck[AT]gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Nick Bilak"
#property link "http://www.forex-tsd.com/"
// hacked into a channel ind. by t_david sometime in early 2007
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_width1 1
#property indicator_color2 Lime
#property indicator_width2 1
#property indicator_color3 Red
#property indicator_width3 1
#property indicator_color4 Lime
#property indicator_width4 1
extern int SignalGap = 4;
extern int ShowBars = 500;
int dist=24;
double b1[];
double b2[];
double b3[];
double b4[];
int init() {
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,1);
SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,1);
SetIndexBuffer(0,b1);
SetIndexBuffer(1,b2);
SetIndexBuffer(2,b3);
SetIndexBuffer(3,b4);
SetIndexArrow(2,234);
SetIndexArrow(3,233);
return(0);
}
int start() {
int k,i,j,limit,hhb,llb;
if (ShowBars >= Bars) ShowBars = Bars;
for (i=0;i<ShowBars;i++) {
b1[i]=0;
b2[i]=0;
b3[i]=0;
b4[i]=0;
hhb = iHighest(Symbol(),0,MODE_HIGH,dist,i-dist/2);
llb = iLowest(Symbol(),0,MODE_LOW,dist,i-dist/2);
if (i==hhb)
b3[i]=High[hhb]+SignalGap*Point;
if (i==llb)
b4[i]=Low[llb]-SignalGap*Point;
b1[i]=High[hhb];//+SignalGap*Point;
b2[i]=Low[llb];//-SignalGap*Point;
}
return(0);
}
function Init()
indicator:name("super-signals-channel indicator");
indicator:description("super-signals-channel indicator");
indicator:requiredSource(core.Bar);
indicator:type(core.Indicator);
indicator.parameters:addGroup("Calculation");
indicator.parameters:addInteger("SignalGap", "SignalGap", "", 4);
indicator.parameters:addInteger("Dist", "Dist", "", 24);
indicator.parameters:addGroup("Style");
indicator.parameters:addColor("clrUP", "Color UP", "Color UP", core.rgb(0, 255, 0));
indicator.parameters:addColor("clrDN", "Color DN", "Color DN", core.rgb(255, 0, 0));
indicator.parameters:addColor("clrSignalUP", "Color Signal UP", "Color Signal UP", core.rgb(0, 255, 0));
indicator.parameters:addColor("clrSignalDN", "Color Signal DN", "Color Signal DN", core.rgb(255, 0, 0));
end
local first;
local source = nil;
local SignalGap;
local Dist;
function Prepare()
source = instance.source;
SignalGap=instance.parameters.SignalGap;
Dist=instance.parameters.Dist;
first = source:first()+2;
local name = profile:id() .. "(" .. source:name() .. ", " .. instance.parameters.SignalGap .. ")";
instance:name(name);
BuffUP = instance:addStream("BuffUP", core.Line, name .. ".UP", "UP", instance.parameters.clrUP, first);
BuffDN = instance:addStream("BuffDN", core.Line, name .. ".DN", "DN", instance.parameters.clrDN, first);
SignalUp = instance:createTextOutput ("Up", "Up", "Wingdings", 10, core.H_Center, core.V_Center, instance.parameters.clrSignalUP, first);
SignalDn = instance:createTextOutput ("Dn", "Dn", "Wingdings", 10, core.H_Center, core.V_Center, instance.parameters.clrSignalDN, first);
end
function Update(period, mode)
if (period>first+Dist) then
local hhb=core.max(source.high,core.rangeTo(period,Dist));
local llb=core.min(source.low,core.rangeTo(period,Dist));
BuffUP[period]=hhb;
BuffDN[period]=llb;
if source.high[period]==hhb then
SignalUp:set(period, source.high[period], "\226");
end
if source.low[period]==llb then
SignalDn:set(period, source.low[period], "\225");
end
end
end
Return to Indicator and Signal Requests
Users browsing this forum: Bing [Bot] and 13 guests