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-01.jpg (73.09 КБ) 8436 просмотров
- DTChek-02.jpg (84.01 КБ) 8434 просмотра
если же задача не бар на графике проверять с гл.перем, а именно проверить текущий день и время с датой и временем из гл.перем,
то заменяем BarDate() в скрипте на DateTime.Now.Date и BarTtime() на DateTime.Now.TimeOfDay
но визуализация результата будет, либо на всех барах условие выполняется либо нет. Т.е. либо задает A либо нет, везде!