[MT4指标]Figurelli RSI指标
主图指标
附图指标,
mt4指标类型:趋势指标
是否能用在mt4手机版上:否
是否含有未来函数:无
//+------------------------------------------------------------------+
//| Figurelli RSI.mq4 |
//| Copyright ? 2011, Rogerio Figurelli |
//| http://www.trajecta.com.br |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, Rogerio Figurelli"
#property link "http://www.trajecta.com.br"
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int period=120;
extern int gain=10;
//---- global vars
static double buffer_indicator;
static double buffer_positive;
static double buffer_negative;
static string name;
//+------------------------------------------------------------------+
//| Initialization |
//+------------------------------------------------------------------+
int init() {
IndicatorBuffers(3);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,buffer_indicator);
name="Figurelli RSI ("+period+","+gain+")";
IndicatorShortName(name);
SetIndexLabel(0,name);
SetIndexDrawBegin(0,period);
SetIndexBuffer(1,buffer_positive);
SetIndexBuffer(2,buffer_negative);
return(0);
}
//+------------------------------------------------------------------+
//| Figurelli Relative Strength Index |
//+------------------------------------------------------------------+
int start() {
int i,j;
int counted_bars=IndicatorCounted();
double diff;
double negative,n;
double positive,p;
if (Bars<=period) return(0);
if (counted_bars<1) {
for (i=1;i<=period;i++)
buffer_indicator[Bars-i]=0;
}
i=Bars-period-1;
if (counted_bars>=period)
i=Bars-counted_bars-1;
while (i>=0) {
n=0;
p=0;
if (i==(Bars-period-1)) {
j=Bars-2;
while (j>=i) {
diff=Close[j]-Close[j+1];
if (diff>0)
p+=diff;
else
n-=diff;
j--;
}
positive=p/period;
negative=n/period;
}
else {
diff=Close-Close[i+1];
if (diff>0)
p=diff;
else
n=-diff;
positive=(buffer_positive[i+1]*(period-1)+p)/period;
negative=(buffer_negative[i+1]*(period-1)+n)/period;
}
buffer_positive=positive;
buffer_negative=negative;
if (negative==0)
buffer_indicator=0;
else
buffer_indicator=100-100/(1+positive/negative);
buffer_indicator-=50;
buffer_indicator*=gain;
if (buffer_indicator<-50)
buffer_indicator=-50;
if (buffer_indicator>50)
buffer_indicator=50;
buffer_indicator+=50;
i--;
}
return(0);
}
//+------------------------------------------------------------------+
Figurelli%20RSI.jpg

发表于:2017-08-09 23:48只看该作者
2楼
韬客交易社区-国内最大的外汇交易社区
韬客社区www.talkfx.co
发表于:2017-08-10 00:48只看该作者
3楼
韬客交易社区-国内最大的外汇交易社区
韬客社区www.talkfx.co