Как узнать время на дневном графике?

[Удален]  

Добрый вечер!

Никак не могу достучаться до времени на дневном графике, точность не выше часа.

Прямое обращение выводит нули, так как график дневной.

Обращение iTime(NULL,PERIOD_H1,0) так же почему-то выводит нули. Объяснить не могу.

iTime("EURUSD",PERIOD_H1,0) с открытым еще одним график с часовым таймфреймом не помогает - выводит нули. Вероятно тестер моделирует только один график.

Comment (TimeToStr(TimeLocal(),TIME_SECONDS)); - так же выводит нули на тестере.

Задача взять время, моделируется дневной график, точность до часа. Чтобы работало на тестере. Есть ли хоть какая-нибудь возможность?

 
Aleks_:

Добрый вечер!

Никак не могу достучаться до времени на дневном графике, точность не выше часа.

Прямое обращение выводит нули, так как график дневной.

Обращение iTime(NULL,PERIOD_H1,0) так же почему-то выводит нули. Объяснить не могу.

iTime("EURUSD",PERIOD_H1,0) с открытым еще одним график с часовым таймфреймом не помогает - выводит нули. Вероятно тестер моделирует только один график.

Comment (TimeToStr(TimeLocal(),TIME_SECONDS)); - так же выводит нули на тестере.

Задача взять время, моделируется дневной график, точность до часа. Чтобы работало на тестере. Есть ли хоть какая-нибудь возможность?


А что дает TimeCurrent()
 

Всё работает

int start()
  {
//----
   datetime t=iTime(NULL,PERIOD_H1,0);
   Alert("Время открытия текущего часового бара ",TimeToStr(t,TIME_DATE|TIME_MINUTES|TIME_SECONDS));
   Alert("Это ",TimeDayOfYear(t),"-ой день года, ",TimeHour(t),"-ый  час суток");
//----
   return(0);
  }

[Удален]  

Спасибо за ответы.

То Vinin.

Эта функция тоже не работает. Выдает нули.

То Sepulca.

http://SSMaker.ru/a71945b9/

http://SSMaker.ru/cd0123a2/

Тоже самое.

Я так понимаю вы запускали на тестере с таймфреймом ниже дневного. Я запускаю на ДНЕВНОМ таймфрейме.

Фокус в том, что раз функция iTime(NULL,PERIOD_H1,0) не выдает нужного времени, то у меня сомнения, что тестер вообще правильно расчитывает все подобные функции.

 
Aleks_:

Спасибо за ответы.

То Vinin.

Эта функция тоже не работает. Выдает нули.

То Sepulca.

http://SSMaker.ru/a71945b9/

http://SSMaker.ru/cd0123a2/

Тоже самое.

Я так понимаю вы запускали на тестере с таймфреймом ниже дневного. Я запускаю на ДНЕВНОМ таймфрейме.

Фокус в том, что раз функция iTime(NULL,PERIOD_H1,0) не выдает нужного времени, то у меня сомнения, что тестер вообще правильно расчитывает все подобные функции.


А с какими параметрами Вы запускаете советника. Если по ценам открытия, то Вы можете получить только время открытия с соответствующего таймфрейма
 
Aleks_:

Я так понимаю вы запускали на тестере с таймфреймом ниже дневного. Я запускаю на ДНЕВНОМ таймфрейме.

Фокус в том, что раз функция iTime(NULL,PERIOD_H1,0) не выдает нужного времени, то у меня сомнения, что тестер вообще правильно расчитывает все подобные функции.

В тестере Alert() выводит в журнал, а не окно на экран.
[Удален]  

Поэкспериментировал с таймфреймами.

Получается так, есть базовый таймфрейм который генерирует тестер(задается в тестере), любое обращение к данным таймфрейма НИЖЕ базового НЕВОЗМОЖНО, тестер выравнивает время под базовое, НИЖЕ базового функция хорошо обрабатывается и отдает корректные данные.

Таким образом, если тестер генерирует таймфрейм например 4 часового графика, то любые обращение функций (типа iTime, iRSI и так далее скорее всего) НИЖЕ данного таймфрейма будут не ниже 4-ех часового. То есть если график дневной, то и ничего ниже дневного не генерируется в графике. Вот такая вот ерунда получается.

[Удален]  
Vinin:

А с какими параметрами Вы запускаете советника. Если по ценам открытия, то Вы можете получить только время открытия с соответствующего таймфрейма


Тестер обрабатывает несколько дней. И за все время теста время не меняется.

artmedia70:
В тестере Alert() выводит в журнал, а не окно на экран.


А какая разница. Я вывел на экран. Не думаю что в журнале обработка происходит как-то иначе.

 
Aleks_:

Поэкспериментировал с таймфреймами.

Получается так, есть базовый таймфрейм который генерирует тестер(задается в тестере), любое обращение к данным таймфрейма НИЖЕ базового НЕВОЗМОЖНО, тестер выравнивает время под базовое, НИЖЕ базового функция хорошо обрабатывается и отдает корректные данные.

Таким образом, если тестер генерирует таймфрейм например 4 часового графика, то любые обращение функций (типа iTime, iRSI и так далее скорее всего) НИЖЕ данного таймфрейма будут не ниже 4-ех часового. То есть если график дневной, то и ничего ниже дневного не генерируется в графике. Вот такая вот ерунда получается.


Не так, запустил в тестере на D1:

int oldbar;
int init()
  {
   oldbar=iBars(Symbol(),PERIOD_H1)-1;
   Print("Запускае на графике ",Period()," минут");
   return(0);
  }
int deinit() {return(0);}
int start()
  {
   if(oldbar!=iBars(Symbol(),PERIOD_H1)){
   datetime t=iTime(NULL,PERIOD_H1,0);
   Print("Номер бара ",iBars(Symbol(),PERIOD_H1)," Время открытия текущего часового бара ",TimeToStr(t,TIME_DATE|TIME_MINUTES|TIME_SECONDS)," Это ",TimeDayOfYear(t),"-ой день года, ",TimeHour(t),"-ый  час суток");
   oldbar=iBars(Symbol(),PERIOD_H1);
   }
   return(0);
  }
[Удален]  

Даа ваша правда!

Похоже этот участок кода у меня не всегда обрабатывается и поэтому ерунда такая пошла. Буду разбираться. Не всегда так легко разобраться в чужом коде.

Мои извинения. Отнял время.

Тему можно закрывать.

 
А не тот ли Вы Алекс?