Точное время в коде

 

Привет!

Извините за глупый вопрос,

искал на сайте инфу, но не нашёл. Подскажите пожалуйста,как следует указывать точное время открытия в эксперте в этой строчке:

int TimeBegin = 8.15;

этот вариант для 5 и 15 минуток. Через точку,запятую или двоеточие?

Спасибо

 
datetime TimeBegin = D'08:15';

При чем здесь открытие, если честно, не понял.

 
Если вы хотите указывать только часы, то объявление
int TimeBegin = 8;

будет верным. Далее для открытия можно будет использовать условие:

if(Hour() >= TimeBegin)
 {
  // открываемся
 }
Для указания точного времени нужно использовать объявление такого типа:
datetime TimeBegin = "2008.06.03 08:15"
 
.....
 
if(TimeCurrent() > TimeBegin)
 {
  // работаем
 }
Ведь если вы объявили переменную как целочисленную (int), то глупо присваивать ей значение с плавающей запятой. Для задания времени существует специальный тип datetime.
 

вот понабежали-то... ну до кучи и мой вариант

void start() {
  datetime TimeBegin;
  int h=8, m=15;
  TimeBegin=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+h+":"+m);
  Comment(TimeToStr(TimeBegin, TIME_MINUTES));
}
 
KimIV:

вот понабежали-то... ну до кучи и мой вариант

void start() {
  datetime TimeBegin;
  int h=8, m=15;
  TimeBegin=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+h+":"+m);
  Comment(TimeToStr(TimeBegin, TIME_MINUTES));
}

Спасибо,это наверное, наилучший вариант.

Просто мой советник начинает работу, то есть выставляет отложенные ордера - в 8:15, иногда в 9:46, если это минутки и т.п.

То есть,для каждого случая хотелось бы более гибко изменять точное время начала работы советника.

Теперь буду тестировать, как он срабатывает и срабатывает ли вовремя.

 
Plus:
KimIV:

вот понабежали-то... ну до кучи и мой вариант

void start() {
  datetime TimeBegin;
  int h=8, m=15;
  TimeBegin=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+h+":"+m);
  Comment(TimeToStr(TimeBegin, TIME_MINUTES));
}

Спасибо,это наверное, наилучший вариант.

Просто мой советник начинает работу, то есть выставляет отложенные ордера - в 8:15, иногда в 9:46, если это минутки и т.п.

То есть,для каждого случая хотелось бы более гибко изменять точное время начала работы советника.

Теперь буду тестировать, как он срабатывает и срабатывает ли вовремя.

Игорь поздравляю, еще один твой клевый кирпичик попал в один из экспертов!

ты как Билл Гейтс скоро будешь!

 
Scriptong:
Для указания точного времени нужно использовать объявление такого типа:
datetime TimeBegin = "2008.06.03 08:15" 
..... 
if(TimeCurrent() > TimeBegin)
 {
  // работаем
 }
Ведь если вы объявили переменную как целочисленную (int), то глупо присваивать ей значение с плавающей запятой. Для задания времени существует специальный тип datetime.

Игорь, вы не правы.

Во-первых, datetime TimeBegin = "2008.06.03 08:15"; не компилируется из-за несовместимости типов (incompatible types).
А во-вторых, D'' - это указание не на дабл, а на дату/время - смотрим хелп.

 

Да, верно. Нужно, указать D'2008.06.03 08:15'

Я просто использую такую конструкцию:

string TimeBegin = "2008.06.03 08:15"; 
 
.....
 
if(TimeCurrent() > StrToTime(TimeBegin))
 {
  // работаем
 }
Вот и переписал автоматом не с тем типом...