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

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

Добавлено: 06 авг 2019, 18:45
High Profit Trader
Нигде не описано, что происходит при остановке робота.

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

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

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

Добавлено: 07 авг 2019, 12:38
oxi
1) Краткая инструкция есть на сайте. Там есть все про остановку и многое другое.
https://www.alfadirect.ru/api/education ... ce/1000007

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

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

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

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

Добавлено: 07 авг 2019, 12:43
High Profit Trader
Спасибо!

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

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

Добавлено: 21 авг 2019, 10:49
High Profit Trader
Заметил интересное поведение 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()