Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 686

 

Доброго времени суток. Как с помощью индикатора отобразить в окне данных терминала время баров в формате "yyyy.mm.dd" и "hh:mi".

Через индикаторный буфер получается вывести либо время в секундах от 00:00 1 января 1970г., либо после преобразования (TimeToStr)

обрезанную дату или время. Нужен совет, заранее Спасибо!

 

#property strict добавить надо, после этого вывод даты будет в формате "yyyy.mm.dd hh:mm:ss" даже без преобразования.

или TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)

 

 tu evillive

 

 

Похоже не так все просто, либо чего-то не понимаю?

Как версия, собака зарыта в индикаторном буфере, так как это тип double. 

 

//+------------------------------------------------------------------+
//|                                                   WinData_v1.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2

string g_DataTimeValue;

double WinDataBuffer[];
double WinNumberBarBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   IndicatorDigits(0);//(8)

   SetIndexBuffer(0,WinDataBuffer);
   SetIndexStyle(0,DRAW_NONE);

   SetIndexBuffer(1,WinNumberBarBuffer);
   SetIndexStyle(1,DRAW_NONE);

   SetIndexLabel(0,"WinDataTime");
   SetIndexLabel(1,"№ Bara");

//---
   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[])
  {
//---
   for(int i=0; i<100; i++)
     {

      g_DataTimeValue=TimeToString(time[i],TIME_DATE|TIME_SECONDS);

      WinDataBuffer[i]=TimeToString(time[i],TIME_DATE|TIME_SECONDS);
      WinNumberBarBuffer[i]=i;
      // WinDataBuffer[i]=StrToDouble(g_DataTimeValue);

      Print(" WinDataBuffer[i] = ",WinDataBuffer[i],"  WinNumberBarBuffer[i] = ",WinNumberBarBuffer[i],
            "  g_DataTimeValue = ",g_DataTimeValue);

     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
Принт:


2014.08.11 15:39:54.016 WinData_v1 EURUSD,M1:  WinDataBuffer[i] = 2014.08  WinNumberBarBuffer[i] = 99.0  g_DataTimeValue = 2014.08.06 11:41:00



 

Добрый день, товарищи!

Впервые на форуме, поэтому не пинайте, если вопрос бородатый...

Как открывать сделки в цикле через определенный интервал времени (каждую минуту, например) ?

Заранее, спасибо
 
vld:

 tu evillive

 

 

Похоже не так все просто, либо чего-то не понимаю?

Как версия, собака зарыта в индикаторном буфере, так как это тип double. 

 


А зачем Вы строку в индикаторный буфер пихаете?
 
Sanyo:

Добрый день, товарищи!

Впервые на форуме, поэтому не пинайте, если вопрос бородатый...

Как открывать сделки в цикле через определенный интервал времени (каждую минуту, например) ?

Заранее, спасибо

Проверяя открытие нового бара соответствующего ТФ!
 
Sanyo:

Добрый день, товарищи!

Впервые на форуме, поэтому не пинайте, если вопрос бородатый...

Как открывать сделки в цикле через определенный интервал времени (каждую минуту, например) ?

Заранее, спасибо
почитайте про OnTimer()
 

Здравствуйте, у меня такой вопрос:

В МТ4 есть большие возможности для оптимизации экспертов, но есть ли какой-то инструмент для оптимизации индикаторов? Если я хочу оптимизировать параметры индикатора так, чтобы показания были максимально "правильными", то правда ли, что единственный способ это сделать - написать на его основе эrcперта и гонять его по истории?

И ещё хотелось бы узнать, есть ли в МТ-4 пользовательский критерий оптимизации советников, как в МТ5?

 

Ребят я забыл...

Как заполучить массив текущий ордеров и перебрать его через цикл. И цикле получить информацию об ордере.  МТ4,спс...

 
Vinin:

А зачем Вы строку в индикаторный буфер пихаете?

 Понимаю несуразность сего действа, но не понимаю как с помощью индикатора

 отобразить в окне данных терминала время баров в формате "yyyy.mm.dd" и "hh:mi" (как в окне данных терминала первая и вторая строка)

Через индикаторный буфер получается вывести либо время в секундах от 00:00 1 января 1970г. путем присвоения ему значений time[i],

либо после преобразования (TimeToString) обрезанную дату или время.

И если есть возможность отобразить пользовательскими средствами MQL, подскажите как?  Заранее Спасибо!

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