SIGNAL ARROW
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «signal arrow.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор SIGNAL ARROW отображает на графике стрелки сигналов BUY и SELL, основываясь на совпадении направления свечей на текущем таймфрейме и пяти старших таймфреймах. Если на всех анализируемых таймфреймах свечи бычьи (открытие ниже закрытия), рисуется синяя стрелка покупки; если медвежьи — красная стрелка продажи.
Индикатор также поддерживает уведомления: при появлении нового сигнала на нулевом баре вызывается функция оповещения с информацией о символе, таймфрейме и типе сигнала. На графике отображаются метки с информацией о порядке таймфреймов.
Логика расчёта использует вспомогательные функции для определения следующего старшего таймфрейма и форматирования его названия. При удалении индикатора с графика все созданные объекты-метки очищаются.
Поиск по коду файла
#property version "1.03"
#property description "The indicator gives a signal when candles match with several TF"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrRed
#property indicator_color2 clrLime
double SignalBufferRed[];
double SignalBufferBlue[];
datetime TimeAlert=0;
int tf0,tf1,tf2,tf3,tf4,tf5;
int S=0;
int OnInit()
{
// код доступен только после оплаты
}
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[])
{
// код доступен только после оплаты
}
int i,limit;
limit=rates_total-prev_calculated-1;
if (limit<0) limit=0;
if(rates_total<1) return(0);
double d=(high[1]-low[1]+high[2]-low[2])/2;
for(i=limit; i>=0; i--)
{
if(S<1 && open[i]<close[i] &&
iOpen(NULL,tf1,iBarShift(NULL,tf1,time[i],false))<iClose(NULL,tf1,iBarShift(NULL,tf1,time[i],false)) &&
iOpen(NULL,tf2,iBarShift(NULL,tf2,time[i],false))<iClose(NULL,tf2,iBarShift(NULL,tf2,time[i],false)) &&
iOpen(NULL,tf3,iBarShift(NULL,tf3,time[i],false))<iClose(NULL,tf3,iBarShift(NULL,tf3,time[i],false)) &&
iOpen(NULL,tf4,iBarShift(NULL,tf4,time[i],false))<iClose(NULL,tf4,iBarShift(NULL,tf4,time[i],false)) &&
iOpen(NULL,tf5,iBarShift(NULL,tf5,time[i],false))<iClose(NULL,tf5,iBarShift(NULL,tf5,time[i],false)))
{
SignalBufferBlue[i]=low[i]-d;
if(i==0 && TimeAlert!=time[i]) Alert(Symbol(), (" M"), Period(), " SIGNAL ARROW : BUY!");
TimeAlert=time[i];
S=1;
}
if(S>-1 && open[i]>close[i] &&
iOpen(NULL,tf1,iBarShift(NULL,tf1,time[i],false))>iClose(NULL,tf1,iBarShift(NULL,tf1,time[i],false)) &&
iOpen(NULL,tf2,iBarShift(NULL,tf2,time[i],false))>iClose(NULL,tf2,iBarShift(NULL,tf2,time[i],false)) &&
iOpen(NULL,tf3,iBarShift(NULL,tf3,time[i],false))>iClose(NULL,tf3,iBarShift(NULL,tf3,Показано первые 50% кода (символов: 4157)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.