Найти тему

Ошибки при написании скриптов на QLUA

Безусловно, при написании скриптов будут возникать ошибки. Это 100%! Их не нужно бояться. Нужно их выявлять и исправлять. Давайте сегодня обсудим какие бывают ошибки и как с ними бороться.

Я бы выделил ошибки четырех типов:

  1. Синтаксические ошибки;
  2. Логические ошибки;
  3. Ошибки системы;
  4. Прочие ошибки.

Давайте их рассмотрим по порядку.

1. Синтаксические ошибки.

Это ошибки, когда в тексте программы неверно написано наименование переменной или функции. Например, вместо «message» написать команду «mesage». В этом случае при запуске скрипта Вам сразу же будет выдана информация о наличии ошибки.

Сообщение о возникновении ошибки в скрипте
Сообщение о возникновении ошибки в скрипте

Система указывает номер строки в которой произошла ошибка и пытается сказать, что ей не нравится. В данном случае указывая «mesage».

Наверное, это самый простой тип ошибок.

2. Логические ошибки.

Это ошибки в логике выполнения программы. К сожалению, система не может понять, что это ошибка. Например, Вы обозначаете уровень цены, подразумевая, что программа возьмет текущие данные из котировочного стакана, сравнит с указанной Вами ценой и выполнит какие-то операции.

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

Пожалуй, это самые сложные ошибки для исправления. В данном случае, Вам поможет отладка программы (ее исполнение с контролем состояния разных переменных) с выводом результатов через команду message. Подробно об этом мощном инструменте я выпущу отдельный выпуск. А пока констатируем, что такие ошибки есть, и нужно быть готовым к их появлению.

3. Ошибки системы.

Надо понимать, что Ваш скрипт работает на Вашем компьютере, но данные запрашивает из торговой системы. И, иногда (а иногда и часто) ошибки выполнения программы могут возникать из-за того, что торговая система выдает не то, что нам надо или вообще не выдает ничего.

Например, вы запрашиваете цену по бумаге, а система выдает, что такой бумаги не существует.

Тут нужно либо подключиться к другому серверу, если Ваш брокер позволяет это сделать или предусмотреть программную защиту.

Например, в одном моем скрипте эта защита была реализована следующим образом: скрипт делал запрос на сервер, ждал 1 секунду и снова делал такой же запрос. Если оба ответа трактовались так, что нужно сделать заявку, то заявка выставлялась. Иначе действие игнорировалось.

4. Прочие ошибки.

К этому типу я бы отнес особый тип ошибок, имеющий место в разных языках программирования, и касается он округления результатов.

Суть такая, что, например, по логике выполнения расчетов Вы должны получить цену 47 рублей. Но, по факту система получает 47,0000000000000001 руб. И если Вы попытаетесь сравнить полученное число с 47, то получите ЛОЖЬ. Для избавления от такой ошибки нужно стараться избегать прямого сравнения. Вместо такого сравнения можно взять модуль разниц двух чисел, и принимать решение, если он меньше, например 0,00000001 руб.

Надо сказать, что это достаточно неприятная ошибка. И без отладки программы с выводом обоих переменных через команду «message» их очень сложно находить.

Повторюсь, что команда «message» будет рассмотрена в отдельном выпуске.

А пока на сегодня все.

Всем удачи – всем пока.

⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

📃 Краткое содержание данного канала.

➖➖➖➖➖➖➖➖➖➖➖➖

⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆

Если Вы хотели бы получить программную реализацию своей торговой идеи, но понимаете, что сами не готовы облачить идею в код, то можете обратиться ко мне. Мой адрес в телеграм: https://t.me/Nikolai_Antonov

Моя электронная почта: nantonov@mail.ru