← К каталогу
Исходный код · ID 4531

#2 hotkeys change timeframe.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Этот пользовательский индикатор для MetaTrader 5 добавляет управление графиком с помощью клавиатуры. Он не выполняет расчёт значений и не рисует линии или буферы: функция OnCalculate лишь возвращает rates_total, а основная работа сосредоточена в обработчике событий графика.

Индикатор реагирует на нажатия клавиш. Стрелки вверх и вниз переключают таймфрейм текущего графика по фиксированному набору периодов. Стрелки влево и вправо переключают символ графика по списку символов, отображаемых в окне «Обзор рынка».

Список символов формируется динамически при каждом переключении, поэтому изменения в обзоре рынка учитываются. Переключение выполняется штатными средствами смены символа и периода графика. Индикатор не совершает торговых операций и не использует торговые функции.

Получить полный код

Поиск по коду файла

#property strict
#property description "Hotkeys left,right To Cycle Through Market Watch Symbols."
#property description "Hotkeys up, down To Switch Timeframes."
#property indicator_chart_window
int NumSymbols=0;
string StringSymbolList[];

int OnInit()
  {
      // код доступен только после оплаты
   }

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[])
  {
      // код доступен только после оплаты
   }

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

  string Up_Key_Value;
   string Down_Key_Value;
   int enum_timeframes[]={0,1,5,15,30,60,240,1440};
   int p = Period();
   int i = ArrayBsearch(enum_timeframes,p);

   StringToUpper(Up_Key_Value);
   StringToUpper(Down_Key_Value);

   switch(id) 
     {
      case CHARTEVENT_KEYDOWN:
         if(38==lparam)
           {
            if(i<5)
              {
               ChartSetSymbolPeriod(0,NULL,enum_timeframes[++i]);
              }
           }
         if(40==lparam)
           {
            if(i>1)
              {
               ChartSetSymbolPeriod(0,NULL,enum_timeframes[--i]);
              }
 

Показано первые 50% кода (символов: 1983)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
198,30₽ ≈ $2.42