В предыдущей статье «Жесткая информация – подробности и мысли об автоматизированном реальном предложении количественной торговой системы (I. Проблемы и трудности») говорилось о некоторых основных проблемах реальной торговли в валютном кругу. В данной статье рассказывается об основной цели фирменного предложения.

Я думаю, что основных четыре:

1. Реализовать установленную логику стратегии

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

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

Кроме того, если вы используете лимитные ордера, ваш код будет более сложным, поскольку вам придется управлять неисполненными лимитными ордерами, а затем преследовать ордера. А что, если исполнена только часть лимитного ордера? Остальные лимитные ордера всегда висят? Или мне следует пропустить эту часть и выставить еще один рыночный ордер? Такая одноэтапная операция генерирует несколько транзакционных заказов, а последующий просмотр также затруднителен и легко запутаться. Поэтому лучше просто использовать рыночный ордер. Если подача успешна, сделка в основном гарантирована. Если это действительно стратегия, чувствительная к проскальзыванию, то торгуйте только целями с хорошей ликвидностью.

Кроме того, для контрактов кредитное плечо не следует изменять по желанию. Лучше всего использовать идеальное кредитное плечо для тестирования на истории, а затем дисконтировать его на 20%. Не прогнозируйте рынок субъективно и не регулируйте кредитное плечо вручную. Смена позиций также является табу в автоматической торговле.

Лучше всего автоматически выиграть или проиграть и сократить позицию. Когда ретрейсмент достигнет определенного уровня, следует уменьшить кредитное плечо. Не делайте наоборот, думая, что скоро наступит ветер, и увеличивайте кредитное плечо (но можно увеличить). основной долг и уменьшить кредитное плечо). Самое главное — поддерживать свою учетную запись, поэтому в первую очередь будьте непобежденными. Вы можете подождать, пока кривая капитала пройдет период восстановления, прежде чем добавлять обратное кредитное плечо. Однако если используется модель сложных процентов, это уже простой автоматический выигрышный и проигрышный контракт.

2. Минимизируйте проскальзывание

Об этом говорилось в предыдущей статье. Проскальзывание нельзя устранить, его можно только смягчить. Для этого вам необходимо как можно скорее получить информацию о рыночной цене, а также информацию о различных фондах и позициях на биржевом счете, чтобы вы могли быстро отреагировать.

Что касается общей структуры реального предложения, существует множество подстратегий, и это требует своевременного получения различной информации. Поэтому для разделения задач необходим специальный рыночный центр веб-сокетов. Оборудован рыночным центром Restful Plan B для резервного копирования. Таким образом, если вебсокет отключен и не может быть подключен, все равно будет относительно новая цена, по которой можно будет судить о необходимости ухода с рынка. Бегая, нужно быть быстрым. Лучше бежать не в том направлении, чем застрять в пробке и не знать, что ждет нас в будущем.

3. Долгосрочная эксплуатация

Об этом говорилось в предыдущей статье. Валютный круг работает 7*24, и ваш код невозможно отключить. Для этого необходимо, чтобы код не прерывался из-за различных исключений и чтобы существовал код для обработки различных непредвиденных ситуаций. Также не должно быть никаких ошибок типа утечек памяти, иначе со временем программа выйдет из строя, а то и весь сервер выйдет из строя. К счастью, Python не склонен к таким проблемам. Он имеет механизм автоматической переработки памяти. Если это не сработает, вы можете вручную перезапускать торговую программу каждый день или несколько дней. В любом случае это средне- и низкочастотная торговля. Это основные требования к разработке внутреннего кода, и их легко достичь.

Обычно в количественной торговле используется Python. Основной особенностью Python, языка сценариев, является динамическая компиляция, эффективность работы которой несколько ниже, поскольку ее нелегко отлаживать, поскольку она компилируется и выполняется одновременно (но она не влияет на средне- и низкочастотные транзакции при все). Если в логике кода есть проблема, обнаружить ее может быть нелегко. Например, если имеется 100 строк кода и есть проблема в строке 99, но каждый раз она доходит только до строки 95, то проблема не будет обнаружена, поскольку ошибку необходимо найти после перехода к строке 99 и запуска соответствующий код. Но это может быть слишком поздно, и программа выйдет из строя, если вы не попытаетесь перехватить исключение.

Еще одна особенность фактически включена в упомянутую выше проблему. Поскольку Python строго типизирован, неявные преобразования редки. Если вы слишком доверяете типу данных, отправляемым сервером, особенно числам, вы, скорее всего, понесете убытки, поскольку иногда числа превращаются в строки. Разные валюты на бирже, разные версии API и одни и те же возвращаемые данные от вебсокета и остальных могут быть разных типов. Поэтому, в принципе, нужно каждый раз принудительно выполнять трансформацию или сначала определять, нужно ли трансформировать.

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

Словом, все для долгосрочной полностью автоматизированной и бесперебойной работы реальной сделки.

Однако, если стратегия слишком сложна, добиться полного отсутствия вмешательства может оказаться непросто. Упрощение стратегии также является отправной точкой, не усложняйте ее слишком сильно. Например, такие сигналы, как OBV, следует использовать с осторожностью, поскольку OBV необходимо отслеживать долгосрочную информацию о ценах и объемах, а в реальной торговле необходимо хранить слишком много данных. Каждое прерывание и перезапуск являются хлопотными. В крайнем случае, избегайте подобных факторов.

4. Контроль рисков

Это высший приоритет требований к предложению фирмы.

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

Поэтому необходимо обеспечить, чтобы механизм выхода вступил в силу. Если вы упустите возможность открыть позицию, по крайней мере, это не будет фатально. Если вы упустите возможность, максимум будет жаль, но если вы упустите возможность закрыть позицию, это вызовет большие проблемы.

Вот вкратце два решения, и я расскажу о них подробно позже, когда у меня будет время.

Первый момент заключается в том, что лучше всего иметь жесткий стоп-лосс, который аналогичен стоп-лоссу с фиксированным коэффициентом убытков. Например, если крупная валюта потеряет более 10%, а маленькая – 15%, позиция будет немедленно закрыта и убежит.

Для метода жесткого стоп-лосса цена стоп-лосса должна быть установлена ​​в момент открытия позиции. Таким образом, алгоритмические стоп-лосс ордера (некоторые также называются условными ордерами) должны быть отправлены как можно скорее после открытия позиции, и нет необходимости менять цену в середине пути. Таким образом, биржа поможет вам отслеживать цену в режиме реального времени, а затем поможет вам подать рыночный ордер на выход из рынка после его срабатывания. Проскальзываний на этом пути может быть много, но он, скорее, будет более стабильным и надежным, чем стоп-лосс, который вы сами себе установили. И даже если что-то пойдет не так и он не сработает, вы все равно можете пойти на биржу. требовать права (поэтому надо идти на верхнюю биржу).

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

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

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

Также, что более эффективно, можно заранее ограничить максимальное кредитное плечо биржи. Это можно отрегулировать самостоятельно. По умолчанию на Binance установлено значение 20 раз, но вы можете изменить его на 3 раза или даже 2 раза (конечно, для этого необходимо, чтобы сама ваша стратегия не использовала высокое кредитное плечо, иначе вы не сможете открыть высокое кредитное плечо, когда это необходимо). Поэтому каким бы сумасшедшим ни был код, невозможно создать большую разоблачение, пока вы спите. Это безопаснее.

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