indicator_arrows.mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «indicator_arrows.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.