Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

NonLagAMA - индикатор для MetaTrader 4

Просмотров:
8852
Рейтинг:
(10)
Опубликован:
2009.01.19 07:06
Обновлен:
2014.04.21 14:53
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
//+------------------------------------------------------------------+
//| NonLagAMA.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_width1 2
#property indicator_color2 RoyalBlue
#property indicator_width2 2
#property indicator_color3 Red
#property indicator_width3 2
//---- входные параметры
extern int Price =0;
extern int Length =40;
extern int Displace =0;
extern int Filter =0;
extern int Color =1;
extern int ColorBarBack =2;
extern double Deviation =0;
//----
double Cycle= 4;
//---- буферы индикатора
double MABuffer[];
double UpBuffer[];
double DnBuffer[];
double price[];
double trend[];
//+------------------------------------------------------------------+
//| Функция инициализации пользовательского индикатора |
//+------------------------------------------------------------------+
int init()
{
int ft=0;
string short_name;
//---- линия индикатора
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MABuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,UpBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,DnBuffer);
SetIndexBuffer(3,price);
SetIndexBuffer(4,trend);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
SetIndexArrow(0,159);
SetIndexArrow(1,159);
SetIndexArrow(2,159);
SetIndexArrow(3,159);
//---- имя онка данных и подокна данных индикатора
short_name="NonLagDot("+Length+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"NLD");
SetIndexLabel(1,"Up");
SetIndexLabel(2,"Dn");
//----
SetIndexShift(0,Displace);
SetIndexShift(1,Displace);
SetIndexShift(2,Displace);

SetIndexDrawBegin(0,Length*Cycle+Length);
SetIndexDrawBegin(1,Length*Cycle+Length);
SetIndexDrawBegin(2,Length*Cycle+Length);
//----
return(0);
}
//+------------------------------------------------------------------+
//| NonLagMA_v4 |
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
double alfa, beta, t, Sum, Weight, step,g;
double pi=3.1415926535;
//----
double Coeff= 3*pi;
int Phase=Length-1;
double Len=Length*Cycle + Phase;
//----
if(counted_bars > 0) limit=Bars-counted_bars;
if(counted_bars < 0) return(0);
if(counted_bars ==0) limit=Bars-Len-1;
if(counted_bars < 1)
for(i=1;i<Length*Cycle+Length;i++)
{
MABuffer[Bars-i]=0;
UpBuffer[Bars-i]=0;
DnBuffer[Bars-i]=0;
}
for(shift=limit;shift>=0;shift--)
{
Weight=0; Sum=0; t=0;
for(i=0;i<=Len-1;i++)
{
g=1.0/(Coeff*t+1);
if (t<=0.5)g=1;
beta=MathCos(pi*t);
alfa=g * beta;
price[i]=iMA(NULL,0,1,0,MODE_SMA,Price,shift+i);
Sum+=alfa*price[i];
Weight+=alfa;
if(t < 1)t+=1.0/(Phase-1);
else if(t < Len-1) t+=(2*Cycle-1)/(Cycle*Length-1);
}
if (Weight > 0) MABuffer[shift]=(1.0+Deviation/100)*Sum/Weight;
if (Filter>0)
{
if(MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter*Point)MABuffer[shift]=MABuffer[shift+1];
}
if (Color>0)
{
trend[shift]=trend[shift+1];
if (MABuffer[shift]-MABuffer[shift+1] > Filter*Point) trend[shift]= 1;
if (MABuffer[shift+1]-MABuffer[shift] > Filter*Point) trend[shift]=-1;
if (trend[shift]>0)
{
UpBuffer[shift]=MABuffer[shift];
if (trend[shift+ColorBarBack]<0) UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
DnBuffer[shift]=EMPTY_VALUE;
}
if (trend[shift]<0)
{
DnBuffer[shift]=MABuffer[shift];
if (trend[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack];
UpBuffer[shift]=EMPTY_VALUE;
}
}
}
return(0);
}
//+------------------------------------------------------------------+

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/8605

Индикатор Cronex T Demarker GF Индикатор Cronex T Demarker GF

Вариант индикатора DeMarker

BETTER_YZGraphOnLine BETTER_YZGraphOnLine

Скрипт в удобном виде визуально показывает сделки на графике.

Индикатор Cronex T RSI GF Индикатор Cronex T RSI GF

По многочисленным просьбам модификация индикатора RSI

Осциллятор Клингера KVO Осциллятор Клингера KVO

Основанный на обороте осциллятор