two_ma_cross_indicator.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «two_ma_cross_indicator.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Two MA Cross Indicator» для платформы MetaTrader 4 отображает на графике две скользящие средние и отмечает точки их пересечения стрелками. Он рассчитывает две линии скользящих средних разными методами и на основе их пересечения формирует сигналы роста и падения. Индикатор использует буферы для отрисовки линий MA и стрелок-сигналов в окне графика.
Настройки программы
| Настройка | Описание |
|---|---|
| MA_Period1 | Период MA1 — Задаёт период расчёта первой скользящей средней. |
| MA_Method1 | Метод MA1 — Выбирает метод расчёта первой скользящей средней из доступного перечня методов. |
| MA_Price_Type1 | Тип цены MA1 — Определяет тип цены, используемый для расчёта первой скользящей средней. |
| MA_Period2 | Период MA2 — Задаёт период расчёта второй скользящей средней. |
| MA_Method2 | Метод MA2 — Выбирает метод расчёта второй скользящей средней из доступного перечня методов. |
| MA_Price_Type2 | Тип цены MA2 — Определяет тип цены, используемый для расчёта второй скользящей средней. |
| Limit_Bars | Лимит баров — Ограничивает количество баров, участвующих в расчёте и отображении индикатора. |
Поиск по коду файла
#property description "This indicator shows the crossing between two MAs"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrRed
#property indicator_width1 1
#property indicator_color2 clrWhite
#property indicator_width2 2
#property indicator_color3 clrLime
#property indicator_width3 2
#property indicator_color4 clrRed
#property indicator_width4 2
enum e_method{ SMA = 1,
EMA = 2,
Wilder = 3,
LWMA = 4,
SineWMA = 5,
TriMA = 6,
LSMA = 7,
SMMA = 8,
HMA = 9,
ZeroLagEMA = 10,
ITrend = 11,
Median = 12,
GeoMean = 13,
REMA = 14,
ILRS = 15,
IE_2 = 16,
TriMAgen = 17
};
extern int MA_Period1 = 30;
extern e_method MA_Method1 = SMA;
extern ENUM_APPLIED_PRICE MA_Price_Type1 = PRICE_CLOSE;
extern int MA_Period2 = 100;
extern e_method MA_Method2 = SMA;
extern ENUM_APPLIED_PRICE MA_Price_Type2 = PRICE_CLOSE;
extern int Limit_Bars = 800;
double MA1[], MA2[];
double Price1[], Price2[];
double Up[], Dn[];
int init(){
// код доступен только после оплаты
}
int start(){
// код доступен только после оплаты
}
int i;
int counted_bars=IndicatorCounted();
int limit = Bars-counted_bars-1;
if (Limit_Bars) limit = Limit_Bars;
int multiplier = 1;
for(i=limit; i>=0; i--){
Price1[i] = iMA(NULL,0,1,0,0,ENUM_APPLIED_PRICE(MA_Price_Type1),i);
switch(MA_Method1){
case 1 : MA1[i] = SMA(Price1,MA_Period1,i, multiplier); break;
case 2 : MA1[i] = EMA(Price1[i],MA1[i+(1*multiplier)],MA_Period1,i); break;
case 3 : MA1[i] = Wilder(Price1[i],MA1[i+(1*multiplier)],MA_Period1,i); break;
case 4 : MA1[i] = LWMA(Price1,MA_Period1,i, multiplier); break;
case 5 : MA1[i] = SineWMA(Price1,MA_Period1,i, multiplier); break;
case 6 : MA1[i] = TriMA(Price1,MA_Period1,i, multiplier); break;
case 7 : MA1[i] = LSMA(Price1,MA_Period1,i, multiplier); break;
case 8 : MA1[i] = SMMA(Price1,MA1[i+(1*multiplier)],MA_Period1,i, multiplier); break;
case 9 : MA1[i] = HMA(Price1,MA_Period1,i, multiplier); break;
case 10: MA1[i] = ZeroLagEMA(Price1,MA1[i+(1*multiplier)],MA_Period1,i, multiplier); break;
case 11: MA1[i] = ITrend(Price1,MA1,MA_Period1,i, multiplier); break;
case 12: MA1[i] = Median(Price1,MA_Period1,i, multiplier); break;
case 13: MA1[i] = GeoMean(Price1,MA_Period1,i, multiplier); break;
case 14: MA1[i] = REMA(Price1[i],MA1,MA_Period1,0.5,i, multiplier); break;
case 15: MA1[i] = ILRS(Price1,MA_Period1,i, multiplier); break;
case 16: MA1[i] = IE2(Price1,MA_Period1,i, multiplier); break;
case 17: MA1[i] = TriMA_gen(Price1,MA_Period1,i, multiplier); break;
default: MA1[i] = SMA(Price1,MA_Period1,i, multiplier); break;
}
}
for(i=limit; i>=0; i--){
Price2[i] = iMA(NULL,0,1,0,0,ENUM_APPLIED_PRICE(MA_Price_Type2),i);
switch(MA_Method2){
case 1 : MA2[i] = SMA(Price2,MA_Period2,i, multiplier); break;
case 2 : MA2[i] = EMA(Price2[i],MA2[i+(1*multiplier)],MA_Period2,i); break;
case 3 : MA2[i] = Wilder(Price2[i],MA2[i+(1*multiplier)],MA_Period2,i); break;
case 4 : MA2[i] = LWMA(Price2,MA_Period2,i, multiplier); break;
case 5 : MA2[i] = SineWMA(Price2,MA_Period2,i, multiplier); break;
case 6 : MA2[i] = TriMA(Price2,MA_Period2,i, multiplier); break;
case 7 : MA2[i] = LSMA(Price2,MA_Period2,i, multiplier); break;
case 8 : MA2[i] = SMMA(Price2,MA2[i+(1*multiplier)],MA_Period2,i, multiplier); break;
case 9 : MA2[i] = HMA(Price2,MA_Period2,i, multiplier); break;
case 10: MA2[i] = ZeroLagEMA(Price2,MA2[i+(1*multiplier)],MA_Period2,i, multiplier); break;
case 11: MA2[i] = ITrend(Price2,MA2,MA_Period2,i, multiplier); break;
case 12: MA2[i] = Median(Price2,MA_Period2,i, multiplier); break;
case 13: MA2[i] = GeoMean(Price2,MA_Period2,i, multiplier); break;
case 14: MA2[i] = REMA(Price2[i],MA2,MA_Period2,0.5,i, multiplier); break;
case 15: MA2[i] = ILRS(Price2,MA_Period2,i, multiplier); break;
case 16: MA2[i] = IE2(Price2,MA_Period2,i, multiplier); break;
case 17: MA2[i] = TriMA_gen(Price2,MA_Period2,i, multiplier); break;
default: MA2[i] = SMA(Price2,MA_Period2,i, multiplier); break;
}
}
for (i=Limit_Bars; i>=(Limit_Bars-MathMax(MA_Period1,MA_Period2)); i--){
MA1[i] = EMPTY_VALUE;
MA2[i] = EПоказано первые 50% кода (символов: 8076)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.