Группа "Стол заказов MQL"

Рейтинг 1530



РЕКОМЕНДУЮ



Алерт по уровню для штатного ОСМА.

Рискну я, пожалуй, разместить заказ.:) 

Требуется в штатный(либо штатно-кастомный) индикатор OsMa добавить всяческие оповещения по достижению задаваемых уровней, как в ту, так и в обратную сторону.

Пример: задаю 2 уровня: 0.001 и -0.001. Соответственно нужны алерты каждый раз, когда гистограмма OsMa пересекает данные уровни на нулевой свечке. И туда, и обратно.

(UPDATE: для соблюдения формальностей дата создания заказа изменена с 31 июля на 1 августа)
  • +3
  • Просмотров: 3004
  • 1 августа 2016, 08:45
  • Anatoly74
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
31 июля 2016
01 августа 2016

Комментарии (14)

+
0
Прав Buff… Точно мониторят...;)  Даже по выходным…
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 31 июля 2016, 19:20
+
0
Ага, сразу все себе в блокнотик записали:
— Присмотреться к работе индикатора OsMa

:D 
avatar

  40  Bishop Сообщений: 5421 - АЛЬФАХАМЕЦ-Машковод

  • 31 июля 2016, 19:27
+
0
Так это… Там ещё с десяток всяческих участвуют :D .
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 31 июля 2016, 19:34
+
0
Там ещё с десяток всяческих участвуют

"- Продолжать следить"
avatar

  40  Bishop Сообщений: 5421 - АЛЬФАХАМЕЦ-Машковод

  • 31 июля 2016, 19:47
+
0
"- Продолжать следить"
А ежели основа в частном порядке? С подпиской о неразглашении?:D 
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 31 июля 2016, 20:01
+
0
О, Бишоп Всемогущий!
Смени дату публикации с 31го июля на 1ое августа, дабы не плодить дубли и убрать препятствие для Феи Столика Заказов по исполнению заказа.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 1 августа 2016, 07:06
+
0
изменено
avatar

  40  Bishop Сообщений: 5421 - АЛЬФАХАМЕЦ-Машковод

  • 1 августа 2016, 11:09
+
0
Премного благодарен.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 1 августа 2016, 11:56
+
0
Индикатор:
//+------------------------------------------------------------------+
//|                                                Alert_forOsMA.mq4 |
//|                                                              Oxy |
//|                                   http://oxy.opentraders.ru/bio/ |
//+------------------------------------------------------------------+
#property copyright "Oxy"
#property link      "http://oxy.opentraders.ru/bio/"
#property version   "1.00"
#property strict
#property indicator_chart_window
//------- external parameters ---------------------------------------+
input int                 fast_ema_period  = 12;          // Быстрое EMA:
input int                 slow_ema_period  = 26;          // Медленное EMA:
input int                 signal_period    = 9;           // MACD SMA:
input ENUM_APPLIED_PRICE  applied_price    = PRICE_CLOSE; // Применить к:
input double              Level1           = 0.001;       // Уровень 1:
input double              Level2           = -0.001;      // Уровень 2:
//------- global variables ------------------------------------------+
datetime _time=-1;
double   _osma;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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==0) return(rates_total);
   if(prev_calculated==0 && rates_total>0) {
     _osma = iOsMA(NULL, 0, fast_ema_period, slow_ema_period, signal_period, applied_price, 0);
   }
   double _s_osma = iOsMA(NULL, 0, fast_ema_period, slow_ema_period, signal_period, applied_price, 0);
   
   if(Time[0]>_time && ((_s_osma>=Level1 && _osma<Level1) || (_s_osma<=Level1 && _osma>Level1))) {
     Alert(Symbol(),": OsMA уровень 1!");
     _time=Time[0];
   }
   if(Time[0]>_time && ((_s_osma>=Level2 && _osma<Level2) || (_s_osma<=Level2 && _osma>Level2))) {
     Alert(Symbol(),": OsMA уровень 2!");
     _time=Time[0];
   }
   _osma=_s_osma;   
   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

  23  Oxy Сообщений: 3270 - ..ιllιlι.lι.ιllι.ιlι..

  • 1 августа 2016, 15:36
+
0
Рискну навлечь гнев Феи Столика Заказов, памятуя о пунктах 3, 9, 10:
всяческие оповещения
Подразумевались визуал, звук, майл, пуш.
задаю 2 уровня: 0.001 и -0.001. Соответственно нужны алерты каждый раз, когда гистограмма OsMa пересекает данные уровни на нулевой свечке. И туда, и обратно.
Соответственно ожидал 4 сигнала: up 1, down 1, up 2, down 2.Текущая реализация несколько не устраивает. Скрин могу предоставить чуть позже. Для чистоты эксперимента готов принять цены открытия.

P. S. Скрин подоспел:

Редактирован: 1 августа 2016, 17:14
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 1 августа 2016, 17:09
+
0
забыла написать, что не обладаю даром мысли читать :D 
это все правки? скрин вы по какому-то особому поводу приложили?
avatar

  23  Oxy Сообщений: 3270 - ..ιllιlι.lι.ιllι.ιlι..

  • 1 августа 2016, 17:59
+
0
забыла написать, что не обладаю даром мысли читать :D 
Во!!! Постоянно говорю, что с первого захода всё-равно чего-нибудь да забудешь...
это все правки?
Точно так… Ну или так точно!
скрин вы по какому-то особому поводу приложили?
Сила привычки…
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 1 августа 2016, 18:34
+
0
еще раз индикатор:
//+------------------------------------------------------------------+
//|                                                Alert_forOsMA.mq4 |
//|                                                              Oxy |
//|                                   http://oxy.opentraders.ru/bio/ |
//+------------------------------------------------------------------+
#property copyright "Oxy"
#property link      "http://oxy.opentraders.ru/bio/"
#property version   "1.00"
#property strict
#property indicator_chart_window
//------- external parameters ---------------------------------------+
input int                 fast_ema_period  = 12;          // Быстрое EMA:
input int                 slow_ema_period  = 26;          // Медленное EMA:
input int                 signal_period    = 9;           // MACD SMA:
input ENUM_APPLIED_PRICE  applied_price    = PRICE_CLOSE; // Применить к:
input double              Level1           = 0.001;       // Уровень 1:
input double              Level2           = -0.001;      // Уровень 2:
input bool                SetSound         = false;       // звук только
input bool                SetAlert         = true;        // alert (текст и звук)
input bool                SetPush          = false;       // push
input bool                SetMail          = false;       // mail
//------- global variables ------------------------------------------+
datetime _time=-1;
double   _osma;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   string txt="";
   if(rates_total==0) return(rates_total);
   if(prev_calculated==0 && rates_total>0) {
     _osma = iOsMA(NULL, 0, fast_ema_period, slow_ema_period, signal_period, applied_price, 0);
   }
   double _s_osma = iOsMA(NULL, 0, fast_ema_period, slow_ema_period, signal_period, applied_price, 0);
   
   if(Time[0]>_time && ((_s_osma>=Level1 && _osma<Level1) || (_s_osma<=Level1 && _osma>Level1))) {
     if(_s_osma>=Level1 && _osma<Level1) txt="up 1";
     if(_s_osma<=Level1 && _osma>Level1) txt="dn 1";
     Set_notice (txt);
     _time=Time[0];
   }
   if(Time[0]>_time && ((_s_osma>=Level2 && _osma<Level2) || (_s_osma<=Level2 && _osma>Level2))) {
     if(_s_osma>=Level2 && _osma<Level2) txt="up 2";
     if(_s_osma<=Level2 && _osma>Level2) txt="dn 2";
     Set_notice (txt);
     _time=Time[0];
   }
   _osma=_s_osma;   
   return(rates_total);
  }
//+------------------------------------------------------------------+
void Set_notice (string txt) {
  if(SetSound && !SetAlert) PlaySound("alert.wav");
  if(SetAlert) Alert(Symbol()+": OsMA " + txt);
  if(SetPush)  SendNotification(Symbol()+": OsMA " + txt); 
  if(SetMail)  SendMail("indicator: Alert_forOsMA", Symbol()+": OsMA " + txt);
}
//+------------------------------------------------------------------+
avatar

  23  Oxy Сообщений: 3270 - ..ιllιlι.lι.ιllι.ιlι..

  • 1 августа 2016, 22:46
+
0
Спасибо большое.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 2 августа 2016, 07:46

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари