Что автоматической программе на графике разрешено делать
Программа может работать и всё равно не мочь отправить ордер, а отказ виден только в одном месте. Разрешение как цепочка, время жизни как настоящее различие и чего не выдержит поле комментария.
Работает и имеет разрешение — это разные состояния
Программа, прикреплённая к графику, может быть полностью загружена и при этом совершенно не способна торговать. Она читает приходящие цены, обновляет собственное состояние, приходит к собственным выводам, а затем получает отказ по каждому ордеру, который пытается отправить, ещё до того, как ордер покинет машину. Пока это происходит, на графике ничто не выглядит неправильно.
Разрыв между «работает» и «разрешено» — самое полезное, что стоит понимать об автоматизации на розничной платформе, потому что большинство историй, начинающихся с того, что стратегия за ночь ничего не сделала, живёт именно в нём. Программа не сломалась, и рынок не был тихим. Ей просто не было позволено действовать.
Разрешение — это цепочка, а не переключатель
Может ли прикреплённая программа отправить ордер, обычно решает не одна настройка. Есть общий переключатель терминала, есть настройка самой программы, а на некоторых счетах есть ещё и разрешение со стороны брокера. Ордер проходит только тогда, когда его пропускают все, и это делает разрешение цепочкой: одно закрытое звено останавливает всё, и внешне все они выглядят одинаково.
Поэтому фраза «автоматическая торговля включена» неполна — она называет одно звено. Убедиться, что программа может действовать, значит убедиться, что все они говорят «да» в один и тот же момент, а звено на уровне счёта из терминала вообще не видно. Это факт о счёте, и отвечает на него брокер, а не программа.
Отказ происходит беззвучно ровно там, куда вы смотрите
Когда разрешения нет, ордер отклоняется терминалом до того, как дойдёт до сервера, и потому не становится ничем, что счёт мог бы вам показать. В истории нет отклонённого ордера, потому что ордера не было. График продолжает рисоваться, программа продолжает работать, и единственная запись о случившемся находится в собственном журнале платформы.
Именно поэтому разрешение стоит считать состоянием, которое проверяют, а не настройкой, которую задают один раз. Его может изменить обновление, перезапуск, открытие сохранённого расположения окон или изменение на счёте, и ни одно из этих событий о себе не объявляет. Журнал — единственная поверхность, на которой вообще видно различие между «решила не действовать» и «не имела права действовать».
Программа, которая выполняется один раз, и программа, которая остаётся
Платформы обычно различают два вида прикреплённых программ, и различие здесь во времени жизни, а не в языке. Обе пишутся одинаково и обе разговаривают с терминалом через один и тот же интерфейс. Одну вызывают, она делает свою работу по состоянию счёта на этот момент и останавливается. Другая остаётся загруженной и вызывается заново на каждой приходящей цене.
Почти все практические следствия вытекают отсюда. Программа однократного запуска годится для задачи, определённой текущим моментом, — закрыть всё, выставить подготовленный набор ордеров, записать содержимое графика в файл, — потому что ей не нужно знать, что будет дальше. Она же не может управлять тем, что выставила, потому что к тому времени её уже нет. Всё, что должно реагировать на последующие цены, обязано быть из тех, что остаются, и неверный выбор даёт программу, которая безупречно отрабатывает и больше ничего не делает: это читается как сбой, а сбоем не является.
Её молчание — это не отчёт
Прикреплённая программа действует по ценам, которые ей передаёт терминал. Пока связи нет, цены не приходят, а значит, ничего не вычисляется и ничего не отправляется — и снаружи это неотличимо от программы, которая получила всё и заключила, что делать нечего.
Эти два случая различны во всём, что имеет значение, и одинаковы на экране. Развести их можно только по записям: что журнал говорит о действиях программы и показывает ли счёт что-нибудь с другой стороны. Ни график, ни собственная отрисовка программы на графике вопроса не решают, потому что и то и другое строится из того, что есть у терминала, а именно это и находится под вопросом.
Подпись на ордере — это не идентификатор
Большинство платформ позволяет приложить к ордеру короткий свободный текст: комментарий, который уходит вместе с ордером на сервер и обычно виден у получившейся позиции и в отчётах по счёту. Для этого он действительно полезен — читая отчёт потом, можно увидеть, какое правило или какая программа что-то выставила.
Чем он не является, так это полем, на которое может опираться программа. Текст короткий, и слишком длинный обрезается. Брокеры и серверы могут дописать к нему своё или заменить его. А позиция, закрытая стопом или автоматическим процессом, часто несёт комментарий, написанный сервером, а не тот, с которым открывалась, — то есть подпись на выходе не обязательно та, что была на входе. Всё, что должно надёжно читаться обратно, место в поле, предназначенном для опознания, а комментарий пусть остаётся тем, что он есть: пометкой для человека, который потом читает отчёт.
Чего не хватает в описании автоматического прогона
Любое утверждение о том, что программа делала за период, — это утверждение о конкретной сборке терминала, конкретном сервере, конкретном наборе разрешений и конкретном графике, и воспроизводимо оно ровно настолько, насколько воспроизводимы они. Описание, которое их опускает, не сказало достаточно, чтобы кто-нибудь мог его проверить, включая того, кто его написал.
Одно проверить можно и без всего этого — внутреннюю согласованность. Журнал платформы и отчёт по счёту пишутся разными системами и фиксируют одни и те же события с разных сторон. Там, где они сходятся, что-то произошло так, как описано. Там, где они расходятся, или где в журнале есть отказы, следов которых нет в отчёте, ответ лежит в зазоре между ними. Это сравнение невзрачно, и это единственная часть картины, которая не требует верить описанию на слово.
Капитал подвержен риску. Торговля на рынке форекс и CFD сопряжена с высоким уровнем риска и может не подходить всем инвесторам — большинство розничных счетов CFD теряют деньги. Никогда не торгуйте на деньги, потерю которых вы не можете себе позволить. Читать полное предупреждение о рисках