Безусловно, при написании скриптов будут возникать ошибки. Это 100%! Их не нужно бояться. Нужно их выявлять и исправлять. Давайте сегодня обсудим какие бывают ошибки и как с ними бороться.
Я бы выделил ошибки четырех типов:
- Синтаксические ошибки;
- Логические ошибки;
- Ошибки системы;
- Прочие ошибки.
Давайте их рассмотрим по порядку.
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