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

Рейтинг 2156



РЕКОМЕНДУЮ



переделка индикатора с mt4 на mt5

Доброго времени суток! Можете переделать индикатор для работы в mt5? line_pr3.1.mq4 (4 Kb)
Days — количество дней истории для отображения
Col -цвет уровня
Style — вид линии
Lev…- значение уровня в % ( пример 0,3 — уровень 0,3% от цены открытия в обе стороны)
Индикатор дает возможность задавать несколько уровней
Все расчеты идут от цены открытия дня по инструменту.
Заранее большое спасибо!!!
  • 0
  • Просмотров: 3540
  • 23 марта 2018, 12:19
  • 222333
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

Брокер для ваших роботов, 15 лет на рынке

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

0
посмотрю сегодня
avatar

  35  AM2 Сообщений: 16530 - Андрей

  • 23 марта 2018, 18:01
0
avatar

  35  AM2 Сообщений: 16530 - Андрей

  • 23 марта 2018, 20:06
0
Огромное спасибо!!!
avatar

  13  222333 Автор Сообщений: 74

  • 23 марта 2018, 21:04
+
0
можете немного подправить индикатор? не совсем корректно показывает в MT5 на акциях.

Редактирован: 23 марта 2018, 21:29
avatar

  13  222333 Автор Сообщений: 74

  • 23 марта 2018, 21:29
0
у меня нет акций в терминале
avatar

  35  AM2 Сообщений: 16530 - Андрей

  • 23 марта 2018, 21:35
0
Подправил. Заработал на фунтене.




//+------------------------------------------------------------------+
//|                                                       Levels.mq5 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property indicator_chart_window

input
int count=5;
input
double lev1=0.2;
input
double lev2=0.4;
input
double lev3=0.6;
input color clr1
=Blue;
input color clr2
=Lime;
input color clr3
=Yellow;

double op[];
datetime tm
[],t[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
 
{
//--- indicator buffers mapping
   
Comment("");
   
ObjectsDeleteAll(0,0,OBJ_TREND);
   
ArrayResize(tm,count);
   
ArrayResize(op,count);
//---
   
return(INIT_SUCCEEDED);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,double price,datetime time2,color clr)
 
{
   
ObjectDelete(0,name);
   
ObjectCreate(0,name,OBJ_TREND,0,time1,price,time2,price);
//--- установим цвет линии
   
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
   
ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- установим стиль отображения линии
   
ObjectSetInteger(0,name,OBJPROP_STYLE,1);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   
ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ND(double price)
 
{
   
return(NormalizeDouble(price,_Digits));
 
}
//+------------------------------------------------------------------+
//| 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[])
 
{
//---
   
CopyOpen(_Symbol,PERIOD_D1,0,count,op);
   
CopyTime(_Symbol,PERIOD_D1,0,count,tm);
   
CopyTime(_Symbol,PERIOD_CURRENT,0,1,t);
   
ArraySetAsSeries(op,true);
   
ArraySetAsSeries(tm,true);
   
ArraySetAsSeries(t,true);

/**/
   
for(int i=0;i<count;i++)
     
{
     
if(i==0)
       
{
         
PutTrendLine("op",tm[0],ND(op[0]),t[0],Red);

         
PutTrendLine("up",tm[0],ND(op[0]*(1+lev1/100)),t[0],clr1);
         
PutTrendLine("dn",tm[0],ND(op[0]*(1-lev1/100)),t[0],clr1);

         
PutTrendLine("1up",tm[0],ND(op[0]*(1+lev2/100)),t[0],clr2);
         
PutTrendLine("1dn",tm[0],ND(op[0]*(1-lev2/100)),t[0],clr2);

         
PutTrendLine("2up",tm[0],ND(op[0]*(1+lev3/100)),t[0],clr3);
         
PutTrendLine("2dn",tm[0],ND(op[0]*(1-lev3/100)),t[0],clr3);
       
}

     
if(i>0)
       
{
         
PutTrendLine("op"+(string)i,tm[i-1],ND(op[i]),tm[i],Red);

         
PutTrendLine("1up"+(string)i,tm[i-1],ND(op[i]*(1+lev1/100)),tm[i],clr1);
         
PutTrendLine("1dn"+(string)i,tm[i-1],ND(op[i]*(1-lev1/100)),tm[i],clr1);

         
PutTrendLine("2up"+(string)i,tm[i-1],ND(op[i]*(1+lev2/100)),tm[i],clr2);
         
PutTrendLine("2dn"+(string)i,tm[i-1],ND(op[i]*(1-lev2/100)),tm[i],clr2);

         
PutTrendLine("3up"+(string)i,tm[i-1],ND(op[i]*(1+lev3/100)),tm[i],clr3);
         
PutTrendLine("3dn"+(string)i,tm[i-1],ND(op[i]*(1-lev3/100)),tm[i],clr3);
       
}
     
}
//--- return value of prev_calculated for next call
   
return(rates_total);
 
}
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16530 - Андрей

  • 24 марта 2018, 08:09
+1
avatar

  35  AM2 Сообщений: 16530 - Андрей

  • 24 марта 2018, 08:23
0
спасибо!!!
avatar

  13  222333 Автор Сообщений: 74

  • 24 марта 2018, 19:15

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