← К каталогу
Исходный код · ID 3600

indicator_arrows.mq5

Похожие материалы по тегам

2 to 1 strategy with signals.pineTradingView · 3 общих теговxauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 2 общих теговtm sniper pro.pineTradingView · 2 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 2 общих теговrachmad imam tarecha.mq4MQL4 / MetaTrader 4 · 2 общих теговpro +.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Indicator Arrows — индикатор для платформы MetaTrader 5 на языке MQL5, отображающий стрелки покупок и продаж на графике цены. Работает с двумя настраиваемыми техническими индикаторами, которые пользователь выбирает из списка: скользящие средние, MACD, OsMA, стохастик, RSI, CCI, RVI, ADX, Triple Exponential Average и полосы Боллинджера. Индикатор формирует сигналы на основе комбинации двух выбранных индикаторов и отображает результат в виде цветных стрелок прямо на ценовом графике. Встроенная система уведомлений поддерживает вывод алертов в виде сообщений, электронных писем и звуковых оповещений при появлении новых сигналов.

Настройки программы

НастройкаОписание
Indicator1 Первая индикаторная линия — Выбор первого технического индикатора для анализа ценовых данных
TimeFrame1 Таймфрейм первого индикатора — Временной интервал для расчётов первого индикатора
Indicator2 Вторая индикаторная линия — Выбор второго технического индикатора для анализа ценовых данных
TimeFrame2 Таймфрейм второго индикатора — Временной интервал для расчётов второго индикатора
Range Диапазон — Текстовый разделитель группы настроек диапазона
RangePeriod Период диапазона — Период усреднения для расчёта текущего диапазона цены
MovingAverage Скользящая средняя — Текстовый разделитель группы настроек MA
MAPeriod Период MA — Количество периодов для расчёта скользящей средней
MAMethod Метод MA — Тип сглаживания для скользящей средней
MAPrice Цена MA — Ценовой тип, используемый для расчёта скользящей средней
MACD MACD — Текстовый разделитель группы настроек MACD
FastMACD Быстрая линия MACD — Период быстрой линии MACD
SlowMACD Медленная линия MACD — Период медленной линии MACD
SignalMACD Сигнальная линия MACD — Период сигнальной линии MACD
MACDPrice Цена MACD — Ценовой тип, используемый для расчёта MACD
OsMA OsMA — Текстовый разделитель группы настроек OsMA
FastOsMA Быстрая линия OsMA — Период быстрой линии OsMA
SlowOsMA Медленная линия OsMA — Период медленной линии OsMA
SignalOsMA Сигнальная линия OsMA — Период сигнальной линии OsMA
OsMAPrice Цена OsMA — Ценовой тип, используемый для расчёта OsMA
OsMASignal Период сигнала OsMA — Период усреднения для сигнальной линии OsMA
Stochastic Стохастик — Текстовый разделитель группы настроек стохастика
Kperiod Период K — Период линии %K стохастика
Dperiod Период D — Период линии %D стохастика
Slowing Замедление — Коэффициент замедления стохастика
StochMAMethod Метод MA стохастика — Тип сглаживания для стохастика
PriceField Поле цены стохастика — Ценовой тип, используемый для расчёта стохастика
RSI RSI — Текстовый разделитель группы настроек RSI
RSIPeriod Период RSI — Количество периодов для расчёта RSI
RSISignal Период сигнала RSI — Период усреднения для сигнальной линии RSI
Получить полный код

Поиск по коду файла

#property version   "1.00"
#property description "Indicator Arrows by pipPod"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2

#property indicator_label1  "BuyArrow"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLimeGreen
#property indicator_width1  1
#property indicator_label2  "SellArrow"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrFireBrick
#property indicator_width2  1

enum indicators
  {
   INDICATOR_MA,           //Moving Average
   INDICATOR_MACD,         //Moving Average Convergence/Divergence
   INDICATOR_OSMA,         //Oscillator of Moving Averages
   INDICATOR_STOCHASTIC,   //Stochastic Oscillator
   INDICATOR_RSI,          //Relative Strength Index
   INDICATOR_CCI,          //Commodity Channel Index
   INDICATOR_RVI,          //Relative Vigor Index
   INDICATOR_ADX,          //Average Directional Movement Index
   INDICATOR_TRIX,         //Triple Exponential Average
   INDICATOR_BANDS,        //Bollinger Bands
   INDICATOR_NONE          //No Indicator
  };

input indicators Indicator1=INDICATOR_MACD;
input ENUM_TIMEFRAMES TimeFrame1=0;
input indicators Indicator2=INDICATOR_MA;
input ENUM_TIMEFRAMES TimeFrame2=0;

input string Range;
input int RangePeriod=14;

input string MovingAverage;
input int MAPeriod=5;
input ENUM_MA_METHOD MAMethod=MODE_EMA;
input ENUM_APPLIED_PRICE MAPrice=PRICE_CLOSE;

input string MACD;
input int FastMACD=12;
input int SlowMACD=26;
input int SignalMACD=9;
input ENUM_APPLIED_PRICE MACDPrice=PRICE_CLOSE;

input string OsMA;
input int FastOsMA=12;
input int SlowOsMA=26;
input int SignalOsMA=9;
input ENUM_APPLIED_PRICE OsMAPrice=PRICE_CLOSE;
input int OsMASignal=9;

input string Stochastic;
input int Kperiod=8;
input int Dperiod=3;
input int Slowing=3;
input ENUM_MA_METHOD StochMAMethod=MODE_SMA;
input ENUM_STO_PRICE PriceField=STO_LOWHIGH;

input string RSI;
input int RSIPeriod=8;
input int RSISignal=5;
input ENUM_APPLIED_PRICE RSIPrice=PRICE_CLOSE;

input string CCI;
input int CCIPeriod=14;
input ENUM_APPLIED_PRICE CCIPrice=PRICE_CLOSE;

input string RVI;
input int RVIPeriod=10;

input string ADX;
input int ADXPeriod=14;
input ENUM_APPLIED_PRICE ADXPrice=PRICE_CLOSE;

input string TriX;
input int TriXPeriod=14;
input int TrixSignal=9;
input ENUM_APPLIED_PRICE TriXPrice=PRICE_CLOSE;

input string Bands;
input int BBPeriod=20;  //Bands Period
input double BBDev=2.0; //Bands Deviation
input ENUM_APPLIED_PRICE BBPrice=PRICE_CLOSE;   //Bands Price
input string _;//---

input bool  AlertsOn      = true,
            AlertsMessage = true,
            AlertsEmail   = false,
            AlertsSound   = false;

int indicator1,
    indicator2;

double Buy[];
double Sell[];

long chartID = ChartID();
#define LabelBox "LabelBox"
#define Label1 "Label1"
#define Label2 "Label2"
#define Label3 "Label3"
#define Label4 "Label4"
string label1 = "Spread ",
       label2 = "Range";

int doubleToPip;
double pipToDouble;

int rangeHandle,
    indHandle1,
    indHandle2;

MqlTick tick;

int OnInit()
  {
      // код доступен только после оплаты
   }

enum ENUM_SIGNAL
  {
   SIGNAL_NONE,
   SIGNAL_BUY,
   SIGNAL_SELL
  };

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
      // код доступен только после оплаты
   }

   if(rates_total<100)  
      return(0);

   ArraySetAsSeries(time,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);

   if(SymbolInfoTick(_Symbol,tick))
      ObjectSetString(chartID,Label1,OBJPROP_TEXT,label1 + 
                      DoubleToString((tick.ask-tick.bid)*doubleToPip,1));
   static datetime prevTime;
   if(prev_calculated>0 && time[0]!=prevTime)
     {
      prevTime = time[0];
      ObjectSetString(chartID,Label2,OBJPROP_TEXT,label2 + 
                      StringFormat("(%d) %4.1f",RangePeriod,Range(0)*doubleToPip));
     }
   int i,limit;

   limit = rates_total - prev_calculated;
   if(prev_calculated==0)
     { 
      limit = (int)ChartGetInteger(chartID,CHART_VISIBLE_BARS)+100;
      PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,rates_total-limit);
      PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,rates_total-limit);
     }

   for(i=limit;i>=0 && !IsStopped();i--)
     {
      static datetime Time[1];
      if(CopyTime(_Symbol,TimeFrame1,time[i],1,Time)!=1)
         return(0);
      const datetime time1 = Time[0];
      switch(Indicator1)
        {
         case INDICATOR_MA:
           { 
            static double MoAv[1];
            static double High[1];
            static double Low[1];
            static double Close[1];
            if(CopyBuffer(indHandle1,0,time1,1,MoAv)!=1)
               return(0);
            if(CopyHigh(_Symbol,TimeFrame1,time1,1,High)!=1)
               return(0);
            if(CopyLow(_Symbol,TimeFrame1,time1,1,Low)!=1)
               return(0);
            if(CopyClose(_Symbol,TimeFrame1,time1,1,Close)!=1)
               return(0);
            indicator1 = iMA(MoAv,High,Low,Close);
            break;
           }
         case INDICATOR_MACD:
           { 
            static double Macd[2];
            static double Sign[2];
            if(CopyBuffer(indHandle1,0,time1,2,Macd)!=2)
               return(0);
            if(CopyBuffer(indHandle1,1,time1,2,Sign)!=2)
               return(0);
            indicator1 = iMACD(Macd,Sign);
            break;
           }
         case INDICATOR_OSMA:
           { 
            static double OsMa[];
            if(ArraySize(OsMa)!=OsMASignal+1)
               ArrayResize(OsMa,OsMASignal+1);
            if(CopyBuffer(indHandle1,0,time1,OsMASignal+1,OsMa)!=OsMASignal+1)
               return(0);
            indicator1 = iOsMA(OsMa);
            break;
           }
         case INDICATOR_STOCHASTIC:
           { 
            static double Stoc[2];
            static double Sign[2];
            if(CopyBuffer(indHandle1,0,time1,2,Stoc)!=2)
               return(0);
            if(CopyBuffer(indHandle1,1,time1,2,Sign)!=2)
               return(0);
            indicator

Показано первые 50% кода (символов: 20550)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
2 055₽ ≈ $25.12