Страница 1 из 1

Можно ли значение BarDate() присвоить переменной, какой?

Добавлено: 03 май 2018, 13:48
elktrade
Добрый день, может кто в курсе.
Захотел записывать время последней сделки, нашел метод BarDate(), а вот какую переменную сохранить продукт его жизнедеятельности не нашел. Предположил, что в Types.DateTime , но при попытке компилировать, пишет что переменная отсутствует в текущем контексте и указывает на строку, где я в переменную сохраняю результат BarDate().

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

function Initialize()
{
   StrategyName = "!_ShowMessage(text)";
   AddInput("Input1", Inputs.Candle, 1, true, "");
   
   AddGlobalVariable("getTest", Types.DateTime, null);   
}

function OnUpdate()
{
   getTest = BarDate();
}


=========================================
[Error] Имя "getTest" отсутствует в текущем контексте at 11.


В какую переменную можно записать значение BarDate() чтобы его в дальнейшем использовать. :?

Re: Можно ли значение BarDate() присвоить переменной, какой?

Добавлено: 03 май 2018, 14:24
evge
Приветствую!

Можно:

исправляем на это

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

   AddGlobalVariable("getTest", Types.DateTime, DateTime.Today);

Re: Можно ли значение BarDate() присвоить переменной, какой?

Добавлено: 30 июн 2024, 06:45
svw
Доброго дня. В продолжение вопроса, только по BarTime(). Как значение BarTime() присвоить переменной. На форуме не нашел. Спасибо.

Re: Можно ли значение BarDate() присвоить переменной, какой?

Добавлено: 30 июн 2024, 07:30
evge
добрый день.

храните как Double

получив TotalMilliseconds из BarTime

BarTime-01.jpg


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

/**

**/

function Initialize()
{
   StrategyName = "MyMTS65";
   AddParameter("P1", 0, "", 1);
   AddInput("Input1", Inputs.Candle, 1, true, "");
   LongLimit = 1;
   ShortLimit = -1;

   AddGlobalVariable("t1", Types.Double);
}

function OnUpdate()
{

//запись в глоб. переменную
t1 = BarTime().TotalMilliseconds;

//сравнение с глоб переменной
if (BarTime().TotalMilliseconds == t1)
{
   //сохраненное и текущеее равны
}

}

Re: Можно ли значение BarDate() присвоить переменной, какой?

Добавлено: 30 июн 2024, 08:04
evge
Можно и TotalSeconds вместо TotalMilliseconds, т.к. там хранит только до секунд.

Re: Можно ли значение BarDate() присвоить переменной, какой?

Добавлено: 30 июн 2024, 08:05
svw
Большое спасибо)

Re: Можно ли значение BarDate() присвоить переменной, какой?

Добавлено: 30 июн 2024, 08:16
evge
Если надо у сохраненного сравнить часы, минуты, секунды с BarTime().Hours, BarTime().Minutes, BarTime().Seconds.

Это так же легко сделать:

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

/**

**/

function Initialize()
{
   StrategyName = "MyMTS65";
   AddParameter("P1", 0, "", 1);
   AddInput("Input1", Inputs.Candle, 1, true, "");
   LongLimit = 1;
   ShortLimit = -1;

   AddGlobalVariable("t1", Types.Double);
}

function OnUpdate()
{

//запись в глоб. переменную
t1 = BarTime().TotalSeconds;

//сравнение с глоб переменной

//Вариант 1
if (BarTime().TotalSeconds == t1)
{
   //сохраненное и текущеее равны
}

//Вариант 2
if (BarTime() == TimeSpan.FromSeconds(t1))
{
   //сохраненное и текущеее равны
}


if (BarTime().Hours == TimeSpan.FromSeconds(t1).Hours)
{
   //сохраненное ЧАС и текущеее ЧАС равны, 00..23
}

if (BarTime().Minutes == TimeSpan.FromSeconds(t1).Minutes)
{
   //сохраненное Минуты и текущеее Минуты равны, 00..59
}

if (BarTime().Seconds == TimeSpan.FromSeconds(t1).Seconds)
{
   //сохраненное Секунды и текущеее Секунды равны, 00..59
}

}