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

Рейтинг 2146



РЕКОМЕНДУЮ



Написать индикатор сравнения

написать индикатор отслеживания одинаковых свечей, в зависимости от тф. (Бычья\медвежья)

Настройки:
Дата начала анализа: 01.04.2020
Дата конца анализа: 30.04.2020

Таймфрейм который стоит на паре (работа с нестандартными Таймфреймами)
Пример:
в настройках указываем диапозон анализа с 01.04.2020 по 30.04.2020
(пример 01.04.2020 23:54:00, 02.04.2020 23:54:00, 03.04.2020 23:54:00… 30.04.2020 23:54:00 и так сравнение каждой свечи)
кадый день в 23:54:00 свечи закрываются медвежьей\бычьей (то есть в это время, каждый день свеча закрываеть зеленой)

При находении такой ситуации, выводится уведомление на экран, что в 23:54:00 — 30 одинаковых свечей.

если таких комбинаций нет то выводит:
совпадений нет.
если имеется несколько совпадений:
анализ 30 дней (диапозон ставим настройках)

1. бычья свеча 21:32:00 — 30 свечей
2. медвежья свеча 06:38:00 — 30 свечей
3. бычья свеча 13:14:00 — 30 свечей

Важно что бы свеча закрывалась к примеру каждый день в определенное время зелёной (размер и тени не важны). Пример условный тф м1 пара eur/usd с 01.03.2020 по 30.03.2020 каждый день в 12:45:00 свеча закрывается зелёной. На график пишется текст что:
12:45:00 — 30 свечей (одного цвета)





нужно сравнение свечи к примеру каждый день в (с выбранного периода) 23:00 свеча на паре EUR\USD закрывается зеленой, на графике пишет, что в 23:00 — 22 свечи зеленых
8 дней в месяц рынок не работает (+возможны праздники по выбранной паре)
  • 0
  • Просмотров: 1872
  • 16 мая 2020, 20:57
  • maksGruv
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Продолжение темы zakaz.opentraders.ru/54335.html
avatar

  9  maksGruv Автор Сообщений: 340

  • 16 мая 2020, 21:02
+
0
на 26-е
avatar

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

  • 17 мая 2020, 12:51
+
0
Андрей, сейчас ТЗ понятно описал?)
avatar

  9  maksGruv Автор Сообщений: 340

  • 17 мая 2020, 17:10
+
0
сам или помогли? ;) 
avatar

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

  • 17 мая 2020, 18:37
+
0
Сам) читал твои вопросы и по ним анализировал ошибки написания ТЗ)
avatar

  9  maksGruv Автор Сообщений: 340

  • 18 мая 2020, 11:08
+
0
Набросал примерный алгоритм

1. Есть временной промежуток: 1.04.20-30.04.20
2. Вычисляем сколько свечей в этом интервале. (на Н1-30)
3. Считаем число свечей за сутки на данном ТФ. (на Н1-23)
4. Берем первую свечу, на внутридневном промежутке (0:00)
5. Запоминаем ее направление и время (допустим булл)
6. Пробегаем по всем дням
7. Если не набралось 30 ничего не выводим
8. Если набралось 30 выводим число свечей, направление и время
9. Если нет совпадений по всем временным промежуткам, то пишем совпадений нет.

Правильно?
avatar

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

  • 23 мая 2020, 09:26
+
0
Правильно)
Но тут есть небольшое дополнение.
За месяц у нас всего 21-22 дня рабочих.
Может в начале указать блок по подсчёту свечей в 00:00, что бы ориентироваться на количество торговых дней.
avatar

  9  maksGruv Автор Сообщений: 340

  • 24 мая 2020, 13:11
+
0
Андрей, главное что бы завязки к одному ТФ не было, т.к. ТФ будут использоваться не стандартный.
avatar

  9  maksGruv Автор Сообщений: 340

  • 24 мая 2020, 13:13
+
0
я реализовал часть функций, часть написал, но не отладил. неизвестно сколько еще времени займет. конца не видно. дальше не ко мне.

то что реализовал скидываю:


//+------------------------------------------------------------------+
//|                                                       Candle.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input datetime Start = D'30.04.2020';
input datetime Stop = D'1.04.2020';

input int iHour = 23;
input int iMinute = 30;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//| 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 all=0;
   int days=0;
   int day_all=0;
   datetime tm=0;
   int bulls=0,bears=0;

   string s="";

   int end=iBarShift("",0,Stop);
   int begin=iBarShift("",0,Start);

   datetime day1=iTime(NULL,PERIOD_D1,1);
   datetime day2=iTime(NULL,PERIOD_D1,2);

// считаем общее число свечей на промежутке

   for(int i=begin; i<end; i++)
     {
      all++;
     }

// считаем общее число свечей внутри дня

   for(int i=iBarShift(NULL,0,day1); i<iBarShift(NULL,0,day2); i++)
     {
      day_all++;
     }

// считаем общее число дней на заданном промежутке

   days=(int)(all/day_all);

// цикл по свечам внутри дня

   for(int i=0; i<day_all; i++)
     {
      if(close[i]>open[i])
        {
         bulls++;
         tm=time[i];

         for(int k=0; k<all; k++)
           {
            if(close[k]>open[k] && tm==time[k])
               bulls++;
           }
         if(bulls==days-1)
           {
            s+="\n"+(string)bulls+" Bulls "+(string)tm;
            bulls=0;
           }
        }

      if(close[i]<open[i])
        {
         bears++;
         tm=time[i];

         for(int k=0; k<all; k++)
           {
            if(close[k]<open[k] && tm==time[k])
               bears++;
           }
         if(bears==days-1)
           {
            s+="\n"+(string)bulls+" Bears "+(string)tm;
            bears=0;
           }
        }
     }

   Comment("\n Days: ",days,
           "\n All Candles: ",all,
           "\n Day Candles: ",day_all,
           "\n Bulls Candles: ",bulls,
           "\n Bears Candles: ",bears,
           "\n ",s);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+


avatar

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

  • 25 мая 2020, 21:23
+
0
Хорошо) спасибо Андрей)
Пойду искать платно кто сделает)
avatar

  9  maksGruv Автор Сообщений: 340

  • 26 мая 2020, 12:28

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