индикатор XLO1

 

пишу индикатор для ММВБ, площадка фортс. индикатор простой, но не получается его сделать. и кучу роликов пересмотрела и документацию читала. уже 2 курса по С++ изучаю. но воз и ныне там. а хочется уже проверить торговую идею. чтобы с радости нажраться винца, красного, ну или с горя, тоже нажраться винца. в общем нужен повод, а повод все не наступает.  выручайте DDD.

ИДЕЯ ИНДИКАТОРА: тайм 1м (но впоследствии может и другой будет) рынок ФОРТС открывается в 10:00 по мск. с 10:00 по 10:01 формируется первая свеча нового дня. после того как она сформировалась индикатор должен нарисовать линии хая и лоу этой первой свечи и держать их до конца сессии. 

пыталась сделать через  iBarShift


#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_style1 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

// функция поиск бара по времени
int  iBarShift( 
   const string        symbol,          // символ 
   ENUM_TIMEFRAMES     timeframe,       // период 
   datetime            time,            // время 
   bool                exact=false      // режим 
   );
int OnInit()
  {
//--- indicator buffers mapping

//---
   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[])

{
   datetime time=D'10:00';                 
   string symbol="NULL";           /*здесь пытаюсь прикрутить работу функции iBarShift 
                                       и даже не уверена правильно ли это делаю*
   ENUM_TIMEFRAMES tf=PERIOD_CURRENT; 
   bool exact=false; 
//--- return value of prev_calculated for next call

   return(rates_total);
}
//+------------------------------------------------------------------+
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Статьи по торговле на финансовых рынках Учитесь...
Файлы:
 
sofi563:

пишу индикатор для ММВБ, площадка фортс. индикатор простой, но не получается его сделать. и кучу роликов пересмотрела и документацию читала. уже 2 курса по С++ изучаю. но воз и ныне там. а хочется уже проверить торговую идею. чтобы с радости нажраться винца, красного, ну или с горя, тоже нажраться винца. в общем нужен повод, а повод все не наступает.  выручайте DDD.

ИДЕЯ ИНДИКАТОРА: тайм 1м (но впоследствии может и другой будет) рынок ФОРТС открывается в 10:00 по мск. с 10:00 по 10:01 формируется первая свеча нового дня. после того как она сформировалась индикатор должен нарисовать линии хая и лоу этой первой свечи и держать их до конца сессии. 

пыталась сделать через  iBarShift. 


А без повода никак?

Тогда придётся попробовать подсказать.

1. Надо определить что закрылась первая свеча периода в текущем дне. Соответственно надо определить что наступил новый день.

2. Надо найти high и low этой первой свечи. Наверное лучше воспользоваться

int  CopyRates( 
   string           symbol_name,       // имя символа 
   ENUM_TIMEFRAMES  timeframe,         // период 
   datetime         start_time,        // с какой даты 
   int              count,             // сколько копируем 
   MqlRates         rates_array[]      // массив, куда будут скопированы данные 
   );

в структуре MqlRates есть и high и low

3. И дальше использовать эти значения.

Если линии должны быть графические, то рисоветь трендовую надо от начала дня до начало дня плюс PeriodSeconds() умноженный на количество баров в дне.

Чтобы отобразить линию в виде индикаторного построения придётся рассчитывать какое смещение делать.

 
Alexey Viktorov:

А без повода никак?

Тогда придётся попробовать подсказать.

1. Надо определить что закрылась первая свеча периода в текущем дне. Соответственно надо определить что наступил новый день.

2. Надо найти high и low этой первой свечи. Наверное лучше воспользоваться

в структуре MqlRates есть и high и low

3. И дальше использовать эти значения.

Если линии должны быть графические, то рисоветь трендовую надо от начала дня до начало дня плюс PeriodSeconds() умноженный на количество баров в дне.

Чтобы отобразить линию в виде индикаторного построения придётся рассчитывать какое смещение делать.

спасибо, попробую) так вот смотришь справочник, ага, все понятно. переходишь в editor и всё, куда этот код девать, уже не знаешь DDDD

 

накидал на скорую руку. можно использовать как основу

пример Br-7.19 m10
Файлы:
 
Volokola:

накидал на скорую руку. можно использовать как основу

спасибо))), классно)) ни чего себе код получился длинным. я ожидала что он короче будет, сама бы надолго застряла с этим индикаторам. 

видео смотрела, там индикатор  по хаям свечей был, так там через цикл и готово. для mql4  правда делали.

 

Проверьте пожалуйста эту версию:

MetaTrader Trading Platform Screenshots

RTSSiM9, H1, 2019.06.13

Just2Trade Online Ltd, MetaTrader 5, Real

High Low First Bar

RTSSiM9, H1, 2019.06.13, Just2Trade Online Ltd, MetaTrader 5, Real


Файлы:
 
Vladimir Karputov:

Проверьте пожалуйста эту версию:


проверила, работает. эта версия лучше))) спасибо большое, с меня пивас DDD могу выслать денежку на карту)

 
sofi563:

проверила, работает. эта версия лучше))) спасибо большое, с меня пивас DDD могу выслать денежку на карту)

Сейчас добавлю выбор кода для значков во входные параметры и положу в КодоБазу.

 
Vladimir Karputov:

Сейчас добавлю выбор кода для значков во входные параметры и положу в КодоБазу.

Как и обещал: High Low First Bar - для уровней High и Low можно задать значки во входных параметрах (код значка смотреть в шрифте Wingdings).

 
Vladimir Karputov:

Как и обещал: High Low First Bar - для уровней High и Low можно задать значки во входных параметрах (код значка смотреть в шрифте Wingdings).

классно, я уже сделала линии, в коде в самом. хоть на что то меня хватило)) спасибо за помощь)

 
sofi563:

классно, я уже сделала линии, в коде в самом. хоть на что то меня хватило)) спасибо за помощь)

Линии в смысле графический объект "Горизонтальная линия" или линии в смысле стиль рисования DRAW_LINE?

Причина обращения: