Общие вопросы по разработке > Что происходит при остановке робота

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
High Profit Trader
Сообщения: 73
Зарегистрирован: 23 мар 2018, 10:54
Поблагодарили: 1 раз

Что происходит при остановке робота

Непрочитанное сообщение High Profit Trader » 06 авг 2019, 18:45

Нигде не описано, что происходит при остановке робота.

Причем вариантов остановки много:
- вызов Stop() из кода
- кнопочка стоп (квадратик) в терминале
- закрытие терминала обычное
- закрытие терминала аварийное (например, у компа отключилось питание, но чаще А-Д завис)
- возможно что-то еще.

Что тогда происходит:
- Как ведут себя глобальные переменные? Похоже, они сбрасываются :( Но возможно не во всех вариантах останова.
- Как ведут себя заявки на открытие позиции? Тоже сбрасываются - это уже логичнее.
- Как ведут себя заявки на закрытие позиции?
- Другие особенности.

oxi
Сообщения: 160
Зарегистрирован: 20 сен 2016, 23:20
Благодарил (а): 11 раз
Поблагодарили: 65 раз

Re: Что происходит при остановке робота

Непрочитанное сообщение oxi » 07 авг 2019, 12:38

1) Краткая инструкция есть на сайте. Там есть все про остановку и многое другое.
https://www.alfadirect.ru/api/education ... ce/1000007

2) При аварийном закрытии терминала - возможно, что какая-то информация не успеет сохраниться.
Надо проверять. Значения глобальных переменных есть в отчете.

3) Глобальные переменные сохраняются. Значения глобальных переменных есть в отчете на вкладке переменные..

4) При остановке все активные заявки снимаются. При запуске предлагается восстановить стоп заявки робота.

High Profit Trader
Сообщения: 73
Зарегистрирован: 23 мар 2018, 10:54
Поблагодарили: 1 раз

Re: Что происходит при остановке робота

Непрочитанное сообщение High Profit Trader » 07 авг 2019, 12:43

Спасибо!

У меня сбрасывались глобали при остановке по кнопке.
При закрытии терминала (не аварийном) - глобали не сбрасывались.

High Profit Trader
Сообщения: 73
Зарегистрирован: 23 мар 2018, 10:54
Поблагодарили: 1 раз

Re: Что происходит при остановке робота

Непрочитанное сообщение High Profit Trader » 21 авг 2019, 10:49

Заметил интересное поведение Stop();
Робот не сразу останавливается после команды.
Скрипт продолжает чекрыжить какое-то время.
Причем достаточное, чтобы успеть отдать команду на новые заявки!!

Код сокращенно такой:
if (CurrentPosition() != 0) {
dlog("error 844hd83. CurrentPosition()=" + CurrentPosition());
CancelActiveOrders(false);
Stop();
}
if (...) { EnterLongLimit(pr, kol); dlog("EnterLongLimit(pr=" + pr + " , kol=" +kol+")");}

Лог сохранил следующее (новые строки пишутся наверх):
20.08.2019 17:34:33 ind-144: EnterLongLimit(pr=432 , kol=22)
20.08.2019 17:34:33 ind-144: error 844hd83. CurrentPosition()=22

Т.е. скрипт продолжил работать после Stop()


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

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

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