Самое важное в алгоритмической торговле: процедуры избежания ошибок

Глава 4 книги Виктора Нидерхоффера (Victor Niederhoffer) «Университеты биржевого спекулянта» (Education Of A Speculator) начинается так:

Существует очень много способов потерять деньги, и очень мало получить их. Возможно, наилучшим способом достижения победы является постичь все пути, способные привести к катастрофе, а затем сосредоточиться на том, как их избежать.

Некоторое время назад я писал о своем торговом дне и о своих процедурах. Для меня очень важно делать все в правильном порядке/согласно алгоритму. Это сделано для того, чтобы избежать ошибок.

В основном я занимаюсь автоматизированной торговлей. Это дает мне возможность торговать и диверсифицировать в большей степени. Но с автоматизацией приходит и риск, если что-то пойдет не так. Вы помните компанию Knight? Они усовершенствовали своих роботов и забыли их проверить. Это очень плохо на них отразилось – программа сошла с ума и послала много ошибочных заявок на продажу. Цены резко упали, и их так и не удалось остановить, пока компания не потеряла около 500 млн. долларов США. Большая часть этой суммы ушла отдельным внутридневным трейдерам, таким как я. Это был очень хороший день. Если, конечно, вы не были со стороны пострадавших.

При автоматизации чрезвычайно важно действовать в правильном порядке, и перед открытием убедиться, что все программы правильно установлены. Чтобы избежать ошибок, я должен следовать своим процедурам, как пилот самолета следует своим. Существует причина, по которой пилоты должны следовать каждой процедуре: одна ошибка может привести к аварии. То же самое с автоматизацией. Одна ошибка, и вы потеряете все средства со своего ​​счета. Я никогда не тороплюсь при подготовке к торговому дню. У меня есть знакомые трейдеры, которые потеряли 100 тыс. за секунды лишь из-за неверных щелчков мыши или опечаток. Я пытаюсь использовать разнообразные проверки, чтобы быть уверенным, что все правильно.

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

Приведу несколько примеров.

Перед Рождеством у меня были проблемы с обновлением котировок сразу после открытия. Мне пришлось перезагрузить лист Excel, но в спешке я забыл исключить акции, реагирующие на новости (я не торгую такими акциями). Это стоило мне тысячу долларов. Не большая сумма, но этих потерь могло и не быть. Это произошло потому, что мои процедуры были нарушены, и я спешил.

Позвольте мне рассказать, что случилось с моим коллегой. Он пока новичок в торговле и не имеет большого опыта. В январе он начал торговать посредством новой полностью автоматизированной стратегии. Стратегия требует много вычислений, и он не смог вручную перепроверить расчеты в своем коде. Результат: цены лимитных ордеров стали неадекватными, что, конечно, привело к убыткам. Это была серьезная ошибка, но ему повезло, и он потерял всего 500 долларов. Такая ошибка могла стоить ему десятки тысяч долларов.

Эта ошибка его чему-нибудь научила? К сожалению, нет. Три недели спустя это случилось снова. На этот раз он внес некоторые изменения в уже существующую стратегию. В коде в одном месте он ввел «2» вместо «1». Результат: сотни заявок были отправлены в шорт вместо лонг. Опять ему чрезвычайно повезло, и он потерял лишь 700 долларов. Потери могли составить 50 тыс. Вот почему так важно проверять весь код после любых изменений и тестировать его на небольшой выборке, прежде чем использовать при торговле всеми акциями.

Всего через 4 дня после этого новая ошибка. Закрывая торговый день примерно за 30 минут до закрытия биржи, он не знал, что много заявок все еще находится на рынке. Конечно, некоторые из них исполнились и он потерял 300 долларов. И в очередной раз ему чрезвычайно повезло, что он не потерял больше. Урок: всегда выходите из системы и входите в нее, дважды убедившись, что все в порядке. Все, что касается торговли необходимо проверять дважды. Ненужные ошибки являются реальным сдерживающим фактором для результатов. За год все эти ошибки накапливаются. А некоторая действительно серьезная ошибка может заставить вас вообще прекратить торговать.

Мораль: все, что может пойти не так, необходимо проверять дважды. И желательно заранее учиться на ошибках… И всегда тестировать сначала на небольших выборках.

Однако ошибки все равно будут, и вам необходимо минимизировать их на столько, на сколько можно. При моей дневной торговле (EOD, End Of Day) я также сделал несколько ошибок. В течение двух недель я торговал с ошибкой, случайно сделанной в вычислениях на моих листах Excel. Конечно, я потерял деньги, прежде чем понял, что был неправ. Я переносил много заявок через день, и использовал макрос Excel, чтобы закрывать их. Даже после двойной проверки вручную я не нашел эту ошибку.

Автор: Oddmund Grotte

Источник: The Most Important Thing In Automated Trading? Probably Procedures To Avoid Mistakes

Комментарии:

Andrew Kartashov: Все, что может пойти не так робот должен отрабатывать. И в крайнем случае просто останавливаться. Обо всем опять же сразу извещать по смс, например, как у меня.
Так же нужна сторонняя проверка с другого компьютера робота, что он вообще живой, что интернет есть и т.п. — а то остаться в рынке с крутой неконтролируемой позой тоже не айс.
И не надо ничего по утрам будет делать, можно спокойно отдыхать пока он работает.

Я тоже попадал и на сильно бОльшие суммы, теперь в коде бОльшая часть это именно проверки и защиты от срывов. Пока гром не грянет …

Intro: Андрей, это не всегда поможет. Такие процедуры работают только постфактум. У меня как-то трейдер перепутал тикеры на слаболиквидном рынке, когда защиты остановили алго после первых же трейдов — уже висели минус бакс, к счастью контрагент вернул сделки.

mehanizator: Еще одна причина почему я не люблю алготрейдинг 🙂

Intro: Приехали, механизатор против алготрейдинга


Подпишитесь на уведомления о новых постах

И получите доступ к специальным материалам сайта