1. Этот код без "шапки".
2. Start()
Событие Start() – это специальное событие для активизации скрипта после его загрузки. Это событие обрабатывается функцией OnStart. Событие Start экспертам и пользовательским индикаторам не посылается.
Код без "шапки" наводит на мысль о том, что он (этот код) был взят (намеренно или не намеренно) не совсем законно у своего законного автора.
код взят с этого же сайта
Если код с этого сайта - дайте пожалуйста ссылку.
Если код с этого сайта - дайте пожалуйста ссылку.
Возьмите код Параболика, но отрисовка идёт линией:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Кто знает что это за МА(черного цвета)?
abolk, 2014.11.09 17:56
на картинке -- параболик отрисованный линией:
-- во вложении -- сам параболик, что поставляется с терминалом
собственно, что было изменено в коде:
//--- drawing settings IndicatorDigits(Digits); SetIndexStyle(0,DRAW_LINE);//DRAW_ARROW); //SetIndexArrow(0,159);-- т.е. отрисовка стилем DRAW_ARROW была заменена на стиль DRAW_LINE.
P.S. Просто перейдите по ссылке "Кто знает что это за МА(черного цвета)?" и в конце сообщения будет работающий видоизменённый пароболик. только обратите внимание, что индикатор для терминала MetaTrader 4.
А вот исправленный код из первого Вашего сообщения:
//+------------------------------------------------------------------+ //| Test.mq4 | //| Copyright 2014, Карпутов Владимир | //| http://wmua.ru/slesar | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, Карпутов Владимир" #property link "http://wmua.ru/slesar" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_width1 2 #property indicator_color2 Red #property indicator_width2 2 //----- Input Parameters //+------------------------------------------------------------------+ extern int ATRPeriod = 21; extern int MAPeriod = 21; extern int MAMethod = 3; // 0=SMA,1=EMA,2=SSMA,3=LWMA extern int MAPrice = 5; // 0=Close,1=Open,2=High,3=Low,4=Median(HL/2),5=Typical(HLC/3),6=Weighted(HLCC/4) extern int PriceMode = 8; // 0=Close,1=Open,2=High,3=Low,4=Median(HL/2),5=Typical(HLC/3),6=Weighted(HLCC/4),7=Simple(OC/2),8=Quarted(HLOC/4),9=Bookkeeper((C*5+O*2+H+L)/9) //+------------------------------------------------------------------+ //----- Buffers double MAATR[]; double ATR[]; double MA[]; //----- int Trend; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //----- Drawing Settings IndicatorDigits(Digits); //----- IndicatorBuffers(3); //----- SetIndexBuffer(0,MA); SetIndexStyle(0,DRAW_LINE); SetIndexLabel(0,"MA"); SetIndexDrawBegin(0,MAPeriod); //----- SetIndexBuffer(1,MAATR); SetIndexStyle(1,DRAW_LINE); SetIndexLabel(1,"MAATR"); SetIndexDrawBegin(1,MAPeriod); //----- SetIndexBuffer(2,ATR); //----- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Price | //+------------------------------------------------------------------+ double Price(int i) { switch(PriceMode) { case 0 : return(Close[i]); case 1 : return(Open[i]); case 2 : return(High[i]); case 3 : return(Low[i]); case 4 : return((High[i]+Low[i])/2.0); case 5 : return((Close[i]+High[i]+Low[i])/3.0); case 6 : return((2*Close[i]+High[i]+Low[i])/4.0); case 7 : return((Open[i]+Close[i])/2.0); case 8 : return((Open[i]+Close[i]+High[i]+Low[i])/4.0); case 9 : return((Close[i]*5+Open[i]*2+High[i]+Low[i])/9); default : return(Close[i]); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //----- int i,limit; int counted_bars=IndicatorCounted(); //---- последний посчитанный бар будет пересчитан if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- основной цикл for(i=0; i<limit; i++) { ATR[i]=iATR(NULL,0,ATRPeriod,i); MA[i]=iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); if(Price(i) < MA[i] - ATR[i]) {Trend = +1;} if(Price(i) > MA[i] + ATR[i]) {Trend = -1;} MAATR[i]=MA[i]+Trend*ATR[i]; } //----- return(0); } //+------------------------------------------------------------------+
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования