Общие вопросы по разработке > Имя робота в системе
-
- Сообщения: 77
- Зарегистрирован: 23 мар 2018, 10:54
- Поблагодарили: 2 раза
Имя робота в системе
Нигде не находится в форуме. В мануале тоже нет.
Как роботу узнать свое имя в системе?
Например: Alfa_Moment.1
Или: Alfa_Moment.2
Как роботу узнать свое имя в системе?
Например: Alfa_Moment.1
Или: Alfa_Moment.2
-
- Сообщения: 77
- Зарегистрирован: 23 мар 2018, 10:54
- Поблагодарили: 2 раза
Re: Имя робота в системе
Это название стратегии, т.е. скрипта.
А нужно название робота. Из одной стратегии можно запустить несколько роботов.
А-Д дает им имена, добавляя числовой префикс к названию стратегии.
Вот это и нужно.
Но что-то пока не могу найти.
Спасибо!
RobotName - пишет, что нет такой переменной.
Логично, что нужно запускать несколько роботов сразу на одной стратегии. С вариациями параметров, чтобы далее смотреть, какой лучше.
Но для увязки логов робота с окнами в А-Д нужно знать имя робота, которое в окнах А-Д используется.
Заходить каждый раз в отчет и в переменные - неудобно. Особенно, если роботов много.
Если бы было имя робота доступно, то в принципе бы отпала необходимость создания спец. идентификатора внутри робота для логов, т.к. можно будет использовать в этой роли имя робота (ведь оно уникально). Хотя, может, и не отпала бы, т.к. при удалении робота и запуске нового на одной стратегии, новый получит имя удаленного. Но упрощение получилось бы.
Конечно, еще требуется, чтобы баги в учете роботов были исправлены. Я на предпоследней версии наблюдал несоответствие в отчете робота данных на страницах Операции и Сигналы, и вытекающий из этого ошибочный результат робота в таблице роботов, т.к. ошибки были на странице Операции, откуда и высчитывается результат. И пропуск роботом своих закрывающих сделок, хорошо еще, что работает функционал правки позиции вручную. Поддержка вроде бы обещала, что в текущей версии все или часть этих ошибок убрали - сейчас начал тестировать.
А нужно название робота. Из одной стратегии можно запустить несколько роботов.
А-Д дает им имена, добавляя числовой префикс к названию стратегии.
Вот это и нужно.
Но что-то пока не могу найти.
Спасибо!
RobotName - пишет, что нет такой переменной.
Логично, что нужно запускать несколько роботов сразу на одной стратегии. С вариациями параметров, чтобы далее смотреть, какой лучше.
Но для увязки логов робота с окнами в А-Д нужно знать имя робота, которое в окнах А-Д используется.
Заходить каждый раз в отчет и в переменные - неудобно. Особенно, если роботов много.
Если бы было имя робота доступно, то в принципе бы отпала необходимость создания спец. идентификатора внутри робота для логов, т.к. можно будет использовать в этой роли имя робота (ведь оно уникально). Хотя, может, и не отпала бы, т.к. при удалении робота и запуске нового на одной стратегии, новый получит имя удаленного. Но упрощение получилось бы.
Конечно, еще требуется, чтобы баги в учете роботов были исправлены. Я на предпоследней версии наблюдал несоответствие в отчете робота данных на страницах Операции и Сигналы, и вытекающий из этого ошибочный результат робота в таблице роботов, т.к. ошибки были на странице Операции, откуда и высчитывается результат. И пропуск роботом своих закрывающих сделок, хорошо еще, что работает функционал правки позиции вручную. Поддержка вроде бы обещала, что в текущей версии все или часть этих ошибок убрали - сейчас начал тестировать.
- ip851874
- Сообщения: 42
- Зарегистрирован: 21 ноя 2020, 22:56
- Откуда: Москва
- Благодарил (а): 14 раз
- Контактная информация:
Re: Имя робота в системе
Тоже не получалось переименовать робота в диспетчере, остается название скрипта.
-
- Сообщения: 535
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 92 раза
Re: Имя робота в системе
А вы, собственно, пробовали StrategyName (не в тестировании) ?
Код: Выделить всё
// MTS.MTSWorker
[StrategyEditorMode(0, new object[] { enumStrategyEditorMode.NewActiveMode })]
[Category("Параметры запуска")]
[DisplayName("Наименование")]
public virtual string StrategyName => _strategyName;
// MTS.MTSWorker
protected void SetStrategyName(string value, bool asIs = false)
{
if (asIs && !string.IsNullOrWhiteSpace(value))
{
_strategyName = value;
}
else
{
if (!(_strategyName == "") && !string.IsNullOrWhiteSpace(value))
{
return;
}
if (!IsTest)
{
int num = (from m in MTSManager.Instance.GetMTSList()
where m != this && m.Strategy != null && m.Strategy.GetType().Name == Strategy.GetType().Name
select m.GetIndexOfName() into idx
orderby idx
select idx).LastOrDefault();
_strategyName = string.Concat(str2: Math.Max(num + 1, 1).ToString(), str0: Item.Name, str1: ".");
Вот тут присваивается имя + номер, и, по всей видимости, д.б. в таком виде читаться в OnUpdate (не проверял).
Режим нужен "не тестирование".
}
else
{
_strategyName = Strategy.Name;
}
}
}
Re: Имя робота в системе
High Profit Trader писал(а):Нигде не находится в форуме. В мануале тоже нет.
Как роботу узнать свое имя в системе?
Например: Alfa_Moment.1
Или: Alfa_Moment.2
Worker.StrategyName
Код: Выделить всё
function Initialize()
{
StrategyName = "test_robot_name";
AddInput("Input1", Inputs.Candle, 1, true, "");
LongLimit = 0;
ShortLimit = 0;
}
function OnUpdate()
{
ShowMessage("StrategyName= " + StrategyName);
ShowMessage("RobotName= " + Worker.StrategyName);
}
-
- Сообщения: 535
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 92 раза
Re: Имя робота в системе
Это вряд ли возможно. Например, текущие данные робота хранятся на диске в файле с его именем ...
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и 29 гостей