Как ссылаться на определенное время - страница 3

 
datetime ejfel = StrToTime("00:00");
int shift=iBarShift(NULL,PERIOD_M15,ejfel,true);
nyitohigh=iHigh(NULL,PERIOD_M15,shift);
nyitolow=iLow(NULL,PERIOD_M15,shift);
  1. Если вы используете High[nyitohigh], то ваш код ломается на любом графике не M15.
  2. Вы можете использовать StrtoTime, или как я показывал ранее
 
RaptorUK:

Нет, потому что Time[x] возвращает время даты... но вы можете сделать...

прочитать о TimeHour


Привет, народ!
Надоедливый бизнес отнял все мое время на некоторое время, но теперь я вернулся к кодингу.

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

Я рассматривал возможность использования такого кода для этого диапазона времени торговли, но теперь я вижу, что есть много разных способов сделать это.
if(Hour() >= 2 && Hour()<17)

Еще раз спасибо
 
Последний вопрос о константах Datetime и формате времени, используемом для iBarsShift

Я вижу документы здесь об этом:
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


Я пытаюсь выбрать свечу, подобную этой, возможно.

if(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low");

Я знаю, что 7:15 не является правильным методом определения времени; и все же именно здесь у меня возникают проблемы при сравнении ежедневного повторяющегося времени.

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

Я предполагаю, что мне нужно использовать IBarsShift, чтобы узнать сдвиг для поиска времени этого конкретного бара, и он возвращает сдвиг для этого бара, тогда я могу использовать сдвиг, чтобы выбрать эту свечу и использовать ее данные.
По крайней мере, так я это вижу.


Я, вероятно, смогу разобраться с тем, что я пытаюсь сделать, если пойму, как выбрать ежедневное повторяющееся время, а не конкретное время в течение одной конкретной даты.
И тот, который имеет тот же формат Time[] или TimeToStr(Time[]) или какой-то подобный метод, чтобы я мог сделать сравнение и использовать данные для этой свечи.

Я не совсем уверен, что хочу использовать IBarsShift, потому что я не хочу искать бар по времени открытия.

Я хочу знать, когда Time[1] или даже Close[1] == a_particular_time

Пожалуйста, посоветуйте
Спасибо




 
Agent86:
Последний вопрос о константах Datetime и формате времени, используемом для iBarsShift

Я видел документы об этом здесь:
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


Я пытаюсь выбрать свечу примерно так.

if(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low");

Я знаю, что 7:15 не является правильным методом определения времени; и все же именно здесь у меня возникают проблемы при сравнении ежедневно повторяющегося времени.

Почему бы просто не вычислить значение времени для 7:15? Как?

Вычислить время для полуночи ... прибавить ( (7 * PERIOD_H1) + 15) * 60

дататайм для полуночи

 
RaptorUK:
Почему бы просто не вычислить значение времени для 7:15? Как?
Вычислите время для полуночи ... прибавьте ( (7 * PERIOD_H1) + 15) * 60

Как я уже писал ранее в этой теме.

Agent86: Если вы не собираетесь утруждать себя чтением того, что мы разместили и обучением, мы тратим наше время на вас.

 
WHRoeder:

Как я уже писал ранее в этой теме.

Да, но это было в прошлом году... с тех пор все спали ;-)
 
RaptorUK:

Почему бы просто не вычислить значение времени для 7:15? Как ?

Вычислите время для полуночи ... прибавьте ( (7 * PERIOD_H1) + 15) * 60

время для полуночи

Спасибо

Итак, я могу написать что-то вроде:

datetime time_select = ( (7 * PERIOD_H1) + 15) * 60
if(Time[1] == time_select)
Print(Time[1], '' и", Low[1]);

Но что такое значение PERIOD_H1, если оно не используется как значение перечисления таймфреймов для индикатора. Я не вижу ничего в документации об использовании этого значения другим способом.

Но это похоже на то, что мне нужно для выбора конкретного времени, чтобы сравнить его со временем конкретной свечи.
Спасибо
 
WHRoeder:

Как я уже писал ранее в этой теме.

Агент86: Если вы не собираетесь потрудиться прочитать то, что мы разместили и научиться, мы тратим наше время на вас.

Здравствуйте
Спасибо за ответ

Я действительно прочитал ваше сообщение, которое касалось временного диапазона или диапазона / фильтра, и я понял вывод, но не полностью уравнения.

По вашему ответу я должен предположить, что я не понимаю, как создать выражение, которое бы сравнивало что-то вроде if(Time[1] == 7:15) в правильной форме, потому что я не понимаю уравнений, которые вы опубликовали.

 
datetime now = Time[0],
         bod = now - now % 86400,
         HR1800 = bod + 18*3600,
         HR2100 = bod + 21*3600;
if (Time[1] >= HR1800 && Time[1] < HR2100) ...

Пожалуйста, подтвердите.

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

Спасибо


 
RaptorUK:
Да, но это было в прошлом году... с тех пор все спали ;-)
LOL

Без сомнения.
Я действительно хотел быстро выучить mql и уделять ему гораздо больше времени.
К сожалению, мой бизнес - это сплошная неприятность, которая отняла слишком много времени в прошлом году.
Я внес некоторые коррективы, так что надеюсь, что смогу снова работать последовательно.

Спасибо всем за ответы
 
Agent86:
Спасибо

Поэтому я могу написать что-то вроде:

datetime time_select = ( (7 * PERIOD_H1) + 15) * 60
if(Time[1] == time_select)
Print(Time[1], '' и", Low[1]);

Но что такое значение PERIOD_H1, если оно не используется как значение перечисления таймфреймов для индикатора. Я не вижу ничего в документации об использовании этого значения другим способом.

Вам действительно нужно начать изучать документацию...

Перейдите к любой функции, которая использует TimeFrame, и вы увидите перечисление таймфреймов ... и это ссылка сюда: Timeframe enumeration и это скажет вам, что Period_H1 имеет значение 60 ... другими словами 60 минут . . . 60 минут * 60 = секунды ... время дат в секундах.


То, что вы закодировали, не будет работать... ваш time_select НЕ является datetime... вспомните, что такое datetime? из документации... "тип datetime (целое число, представляющее количество секунд, прошедших с полуночи 1 января 1970 года)." если вы хотите получить datetime, который означает 7:15 утра, то это должно быть количество секунд, прошедших с 1 января 1970 года до 7:15 утра сегодня....

То, что вы вычислили, это количество секунд от полуночи до 7:15 утра сегодня утром, а это не время даты.

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