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

Рейтинг 2146



РЕКОМЕНДУЮ



Продолжение заказа

Здравствуйте Андрей, прошу использовать мой заказ на следующим месяц т.к сейчас конец месяца
Недавно вы создали индикатор ТЫК, но хотелось бы немного переделать:
Теперь вывести вверху сбоку:
1) АТР ГОДА
2) АТР прошлого года
3) хай прошлого года
4) лоу прошлого года
Но расчёт взять за 10 прошлых лет (т.е высчитать атр, например, сложив АТР с (2010г +… + 2018г)/10 )
таким же способом прошлый год но только: (2009г +… + 2017г)/10

Спасибо
  • 0
  • Просмотров: 2259
  • 29 апреля 2018, 20:25
  • vebster
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
на 2-е
avatar

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

  • 30 апреля 2018, 11:23
+
0
ура, спасибо, буду ждать))))) Спасибо
avatar

  6  vebster Автор Сообщений: 205

  • 30 апреля 2018, 12:15
+
0
Жду выполнения, сегодня 2-е уиии
Редактирован: 2 мая 2018, 10:26
avatar

  6  vebster Автор Сообщений: 205

  • 2 мая 2018, 07:54
+
0
к вечеру
avatar

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

  • 2 мая 2018, 11:03
+
0
Спасибо)) буду ждать) пожалуйста проверьте правильность выполнения) Спасибо
avatar

  6  vebster Автор Сообщений: 205

  • 2 мая 2018, 11:21
+
0
пожалуйста проверьте правильность выполнения)

сначала делаю набросок
Редактирован: 2 мая 2018, 15:00
avatar

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

  • 2 мая 2018, 12:24
+
0
Но расчёт взять за 10 прошлых лет


у вас все это реализовано было самостоятельно насколько я помню, а сейчас комменты с кодом подчищены.
avatar

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

  • 2 мая 2018, 19:10
+
0
сделал на 10 лет: www.opentraders.ru/downloads/1862/


avatar

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

  • 2 мая 2018, 19:22
+
0
Спасибо, возникло пару замечаний, сейчас выводит как в ТЗ?
Но расчёт взять за 10 прошлых лет!!! (т.е высчитать атр, например, сложив АТР с (2010г +… + 2018г)/10 )
?????2) т.е высчитывается атр года?
Могли бы вы вывести еще:
таким же способом прошлый год но только: (2009г +… + 2017г)/10
как и было написанно в ТЗ
Спасибо
avatar

  6  vebster Автор Сообщений: 205

  • 3 мая 2018, 08:06
+
0
Андрей, пожалуйста не молчите
avatar

  6  vebster Автор Сообщений: 205

  • 4 мая 2018, 07:56
+
0
на скрине покажите что не так.
avatar

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

  • 4 мая 2018, 17:14
+
0
Спасибо что ответили, на скрине не получится, прошу вывести как по ТЗ:
справа сбоку:
1) АТР ГОДА — есть
2) АТР прошлого года — нету
3) хай прошлого года — нету
4) лоу прошлого года — нету
Сейчас выводится атр при чем не правильно, я попросил чтобы расчёт брался за 10 лет тем самым высчитывался атр года, по такой схеме:
ТАк мы высчитает АТР Этого года!
(сложив АТР с (2010г +… + 2018г)/10 )
ТАк мы высчитает АТР ПРОШЛОГО года!
таким же способом прошлый год но только: (2009г +… + 2017г)/10
Андрей пожалуйста будьте добры переделайте. Спасибо
avatar

  6  vebster Автор Сообщений: 205

  • 4 мая 2018, 21:56
+
0
т.к. на скрине не была показана некорректная работа индикатора, продолжение доработки не представляется возможным.
avatar

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

  • 4 мая 2018, 22:58
+
0
Андрей, справа сбоку нету информации об:
2) АТР прошлого года — нету
3) хай прошлого года — нету
4) лоу прошлого года — нету

как я вам это на скрине покажу, чего нету?
и 2-е я спроси об расчёте, правильно ли высчитывается АТР года:
(сложив АТР с (2010г +… + 2018г)/10 ), т.е ((хай 2010-лоу 2010) + (хай 2011-лоу 2012) +… + (хай 2017-лоу 2018)/10) и так далее за 10 лет расчет, это как я мвам могу показать на скрине? такой ли расчёт в индикаторе?
Редактирован: 5 мая 2018, 11:29
avatar

  6  vebster Автор Сообщений: 205

  • 5 мая 2018, 11:29
+
0
скрины с пояснениями прошу для наглядности в задании. это должно быть здесь, это считается так, вот отсюда и сюда рисуется и др.
avatar

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

  • 5 мая 2018, 12:32
+
0
2) АТР прошлого года — нету
3) хай прошлого года — нету
4) лоу прошлого года — нету

как я вам это на скрине покажу, чего нету?


вот так:



и 2-е я спроси об расчёте, правильно ли высчитывается АТР года:
(сложив АТР с (2010г +… + 2018г)/10 ), т.е ((хай 2010-лоу 2010) + (хай 2011-лоу 2012) +… + (хай 2017-лоу 2018)/10) и так далее за 10 лет расчет, это как я мвам могу показать на скрине? такой ли расчёт в индикаторе?




и в коде:
в формуле такой то неверно то то
avatar

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

  • 5 мая 2018, 13:22
+
0
Андрей, пожалуйста найдите время, переделайте хотя бы код, чтобы высчитывалось по формулам выше, остальное можете не делать, сделайте самое основное, пожалуйста
avatar

  6  vebster Автор Сообщений: 205

  • 5 мая 2018, 17:34
+
0
я так и не дождался ни одного скрина. больше этот заказ я не дорабатываю.
avatar

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

  • 5 мая 2018, 20:21
+
0
так и на ваших скринах нету формулы, и зачем туда формулу и куда вставлять если тут написано подробно и понятно, это глупо, вы сейчас находите причину чтобы отшить меня, согласитесь, куда мне там формулу вставлять…
Редактирован: 6 мая 2018, 10:26
avatar

  6  vebster Автор Сообщений: 205

  • 6 мая 2018, 10:19
+
0
Сейчас в таком виде: www.opentraders.ru/downloads/1862/



То что понял сделал.
avatar

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

  • 6 мая 2018, 10:42
+
0
Спасибо спасибо спасибо и еще раз Спасибо. Андрей!!! Благодарю!!!
avatar

  6  vebster Автор Сообщений: 205

  • 6 мая 2018, 12:00
+
0
Андрей Посмотрите пожалуйста не знаю правильно или нет, прочтите что ниже
<code>//+------------------------------------------------------------------+
//|                                                       ATRGod.mq4 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int years=10;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string nm,string text,int x,int y)
  {
   ObjectDelete(0,nm);
//--- создадим текстовую метку
   ObjectCreate(0,nm,OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,nm,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,nm,OBJPROP_CORNER,1);
//--- установим текст
   ObjectSetString(0,nm,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,nm,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,nm,OBJPROP_FONTSIZE,12);
//--- установим цвет
   ObjectSetInteger(0,nm,OBJPROP_COLOR,Red);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double atr(int year)
  {
   int at=0;
   int shift=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-1))));

   for(int i=shift;i<12;i++)
     {
      at+=(int)((iHigh(NULL,PERIOD_MN1,i)-iLow(NULL,PERIOD_MN1,i))/_Point);
     }
   return(at/12*year);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   int shift1=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-1))));
   int shift2=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-2))));
   int shift3=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-3))));
   int shift4=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-4))));
   int shift5=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-5))));
   int shift6=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-6))));
   int shift7=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-7))));
   int shift8=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-8))));
   int shift9=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-9))));
   int shift10=iBarShift(NULL,PERIOD_MN1,StringToTime("31"+".12."+(string(Year()-10))));
   
   double lo1=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift1));
   double lo2=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift2));
   double lo3=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift3));
   double lo4=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift4));
   double lo5=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift5));
   double lo6=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift6));
   double lo7=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift7));
   double lo8=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift8));
   double lo9=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift9));
   double lo10=iLow(NULL,PERIOD_MN1,iLowest(NULL,PERIOD_MN1,MODE_LOW,12,shift10));

   double hi1=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift1));
   double hi2=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift2));
   double hi3=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift3));
   double hi4=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift4));
   double hi5=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift5));
   double hi6=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift6));
   double hi7=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift7));
   double hi8=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift8));
   double hi9=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift9));
   double hi10=iHigh(NULL,PERIOD_MN1,iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,shift10));
   
//Это не нужно просто вывел чтобы посмотреть точные ли данные, Андрей удалите
   PutLabel("L31","LOW LAST YEAR: "+(string)(lo1),450,50);
   PutLabel("L32","LOW LAST YEAR: "+(string)(lo2),450,70);
   PutLabel("L33","LOW LAST YEAR: "+(string)(lo3),450,90);
   PutLabel("L34","LOW LAST YEAR: "+(string)(lo4),450,110);
   PutLabel("L35","LOW LAST YEAR: "+(string)(lo5),450,130);
   PutLabel("L36","LOW LAST YEAR: "+(string)(lo6),450,150);
   PutLabel("L37","LOW LAST YEAR: "+(string)(lo7),450,170);
   PutLabel("L38","LOW LAST YEAR: "+(string)(lo8),450,190);
   PutLabel("L39","LOW LAST YEAR: "+(string)(lo9),450,210);
   PutLabel("L30","LOW LAST YEAR: "+(string)(lo10),450,230);

   PutLabel("L41","HIGH LAST YEAR: "+(string)(hi1),200,70);
   PutLabel("L42","HIGH LAST YEAR: "+(string)(hi2),200,90);
   PutLabel("L43","HIGH LAST YEAR: "+(string)(hi3),200,110);
   PutLabel("L44","HIGH LAST YEAR: "+(string)(hi4),200,130);
   PutLabel("L45","HIGH LAST YEAR: "+(string)(hi5),200,150);
   PutLabel("L46","HIGH LAST YEAR: "+(string)(hi6),200,170);
   PutLabel("L47","HIGH LAST YEAR: "+(string)(hi7),200,190);
   PutLabel("L48","HIGH LAST YEAR: "+(string)(hi8),200,210);
   PutLabel("L49","HIGH LAST YEAR: "+(string)(hi9),200,230);
   PutLabel("L40","HIGH LAST YEAR: "+(string)(hi10),200,250);
//Это не нужно просто вывел чтобы посмотреть точные ли данные, Андрей удалите
   
//PutLabel("ATR YEAR to 10YEARS:","ATR YEAR"+(string)(((hi1-lo1)+(hi2-lo2)+(hi3-lo3)+(hi4-lo4)+(hi5-lo5)+(hi6-lo6)+(hi7-lo7)+(hi8-lo8)+(hi9-lo9)+(hi10-lo10)/10)),650,250);
   double ATR_YEARSS=(((hi1-lo1)+(hi2-lo2)+(hi3-lo3)+(hi4-lo4)+(hi5-lo5)+(hi6-lo6)+(hi7-lo7)+(hi8-lo8)+(hi9-lo9)+(hi10-lo10)/10));

   //Тут не умноженное число
   //PutLabel("ATR YEAR to 10YEARS1:","ATR YEAR "+(string)ATR_YEARSS,750,200);
   
//не знаю как написать правильно, хочу получить не 1.8.... а чтобы было без точки целое число, но мне кажется это глупо так умножать...
PutLabel("ATR YEAR to 10YEARS:","ATR YEAR "+(string)(ATR_YEARSS*100000),650,250);
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
</code>

Редактирован: 6 мая 2018, 13:26
avatar

  6  vebster Автор Сообщений: 205

  • 6 мая 2018, 13:23
+
0

Андрей маленькое уточнение, в вашем индикаторе я вывел хай и лоу за последние 10 лет, отняв HIGH от LOW у меня вышло числа, которые в записаны в блокноте, потом я их сложил и поделил на 10, у меня получилось число АТР равное среднему АТР за последние 10 лет. У вас почему то число в 10-тки раз больше + вы вывели атр прошлого года, но оно слишком маленькое т.к даже атр месяца в 2 раза больше

Пожалуйста допилите или подскажите как допилить хотя бы чтобы получилось нужное кол-во атр за год, самое важное
avatar

  6  vebster Автор Сообщений: 205

  • 6 мая 2018, 12:42
+
0

в 1-й колонке у вас выведено атр за 10 лет, но оно не правильное, так как если сложить числа которые я посчитал, там выходит 23860 по фунт доллару

P.S в ручную столько вышло, в коде выше, другое, не знаю где верно
Редактирован: 6 мая 2018, 13:24
avatar

  6  vebster Автор Сообщений: 205

  • 6 мая 2018, 12:46
+
0
Андрей, я попробую высчитать в индикаторе самостоятельно, но хотел бы попросить чобы вы сократили код, так как он у меня будет большое, я не умею делать:
for(int i=shift;i<12*year;i++)
     {
     }

avatar

  6  vebster Автор Сообщений: 205

  • 6 мая 2018, 12:55
+
+1
я сегодня отдыхаю а дальше уже другие заказы надо делать. у меня нет возможности делать один заказ неделями. делаю только то что можно быстро сделать.
avatar

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

  • 6 мая 2018, 14:13

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