Пауза в команде
7.15.4
Введение
Запись паузы. Следующая запись приостановит выполнение команды на 1000 миллисекунд
Основная цель пауз - совершать действия с измененным балансом. Зачастую паузы применяются в сцепках команд. Рассмотрим следующий код:
Заявленная сцепка покажет актуальный баланс спот-кошелька и вернет цену ETH к USDT. Выполнение займет достаточно короткое время - примерно 5-15 миллисекунд. Выставление паузы в данной сцепке не имеет смысла, так как последующая команда никак не зависит от предыдущей.\
Рассмотрим традиционную задачу торговли - переворот позиции. Дано - длинная позиция (BUY) которую необходимо закрыть и открыть такую же короткую позицию (SELL) Команда закрытия длинной позиции
Команда открытия короткой позиции
Объединяем их при помощи символа сцепки - ::
Пытаемся выполнить. И получаем ошибку - недостаточно баланса для открытия позиции. При этом длинная позиция успешно закрыта, короткой позиции нет, а баланса достаточно для открытия. Это связано с тем что Antares должен отдать команду на биржу. Биржа обрабатывает команду, освобождает занятый маржой баланс и высылает уведомление клиенту. На это требуется время. Это время складывается из географического положения сервера относительно биржевых, а так же пинга до биржи. Можно с уверенностью говорить что время реакции составляет не менее 150 миллисекунд. Таким образом - для того что бы переворот состоялся - необходимо подождать не менее 150 миллисекунд перед выполнением второй команды.
Практическое минимальное время паузы можно подобрать экспериментально. Рекомендуемое время - не менее 500 миллисекунд
Команда с выставленной паузой будет выглядеть следующим образом
Параметры
Пауза может применяться как отдельная команда между сцепками
Так и внутри команды
Когда пауза применяется внутри команды, она может быть выставлена в любом месте и остановит выполнение текущей команды на обозначенное время
Last updated