Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1270

Добавлено: evge » 21 янв 2022, 08:29

Тема: Re: Проверка даты на соответствие сегодняшнему дню

Текст сообщения:

realuse писал(а):А как сделать, если мне нужно проверить именно значение глобальной переменной на соответствие сегодняшнему дню? Когда текущий бар уже позже нее по времени.


Используйте .TimeOfDay для определения времени из DateTime и BarTime() для определении времени бара графика т.к. они TimeSpan и можно будет их между собой сравнить

Код: Выделить всё

function Initialize()
{
IndicatorName = "DTheck";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("A", DrawAs.Histogram, Color.Green, AxisType.ZeroBased);

// https://docs.microsoft.com/ru-ru/dotnet/api/system.datetime.-ctor?view=netframework-4.8#System_DateTime__ctor_System_Int32_System_Int32_System_Int32_System_Int32_System_Int32_System_Int32_

AddGlobalVariable("DT", Types.DateTime, new DateTime(2022, 1, 20, 15, 0, 0)); //20.01.2022 15:00:00
}

function Evaluate()
{

//дата бара больше даты гл.перем ИЛИ дата бара равна дате гл.перем, но время бара больше
if (BarDate() > DT.Date || (BarDate() == DT.Date && BarTime() > DT.TimeOfDay))
{
   // Условие выполняется
   A = BarTime().Hours;
}

}


DTChek-02.jpg
DTChek-02.jpg (84.01 КБ) 10687 просмотров

DTChek-01.jpg
DTChek-01.jpg (73.09 КБ) 10689 просмотров

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

то заменяем BarDate() в скрипте на DateTime.Now.Date и BarTtime() на DateTime.Now.TimeOfDay

но визуализация результата будет, либо на всех барах условие выполняется либо нет. Т.е. либо задает A либо нет, везде!