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

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
elktrade
Сообщения: 10
Зарегистрирован: 11 апр 2017, 11:41
Благодарил (а): 1 раз
Поблагодарили: 1 раз

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

Непрочитанное сообщение elktrade » 03 май 2018, 13:48

Добрый день, может кто в курсе.
Захотел записывать время последней сделки, нашел метод 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() чтобы его в дальнейшем использовать. :?

Аватара пользователя
evge
Администратор
Сообщения: 1812
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

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

Непрочитанное сообщение evge » 03 май 2018, 14:24

Приветствую!

Можно:

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

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

   AddGlobalVariable("getTest", Types.DateTime, DateTime.Today);
никогда такого не было и вот опять

svw
Сообщения: 2
Зарегистрирован: 30 июн 2024, 06:41

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

Непрочитанное сообщение svw » 30 июн 2024, 06:45

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

Аватара пользователя
evge
Администратор
Сообщения: 1812
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

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

Непрочитанное сообщение evge » 30 июн 2024, 07:30

добрый день.

храните как 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)
{
   //сохраненное и текущеее равны
}

}
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1812
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

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

Непрочитанное сообщение evge » 30 июн 2024, 08:04

Можно и TotalSeconds вместо TotalMilliseconds, т.к. там хранит только до секунд.
никогда такого не было и вот опять

svw
Сообщения: 2
Зарегистрирован: 30 июн 2024, 06:41

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

Непрочитанное сообщение svw » 30 июн 2024, 08:05

Большое спасибо)

Аватара пользователя
evge
Администратор
Сообщения: 1812
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

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

Непрочитанное сообщение evge » 30 июн 2024, 08:16

Если надо у сохраненного сравнить часы, минуты, секунды с 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
}

}
никогда такого не было и вот опять


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей