Tim55667757 / TKSBrokerAPI

TKSBrokerAPI is the trading platform for automation and simplifying the implementation of trading scenarios, as well as working with Tinkoff Invest API server via the REST protocol. The TKSBrokerAPI platform may be used in two ways: from the console, it has a rich keys and commands, or you can use it as Python module.
https://tim55667757.github.io/TKSBrokerAPI/
Apache License 2.0
26 stars 9 forks source link

Implement scenario: simple trailing stop #50

Open Tim55667757 opened 2 years ago

Tim55667757 commented 2 years ago

A trailing stop is a tool that allows you to automatically place an order (limit or SL/TP stop-order) at the required level from the current price, as a percentage or in the currency of the traded instrument. It is perfect to use when the market moves strongly in one direction, and the trader does not have the opportunity to follow the price change.

A trailing stop order is placed for the first time when the price crosses the breakeven level (open price, plus all commissions, plus a small floating step) and goes further than this level by the trailing amount. In the future, the trailing stop moves along with the price when it moves in a favorable direction and remains unchanged during reversals, which guarantees profit maximization. There is no need to manually place any SL/TP orders.

Trailing stop tracking directions can be "short" (for sell positions) and "long" (for buy positions). If the price has changed again and it is required to move the trailing stop order, then the previous one is canceled at the beginning and then a new order with a new level is placed.

In this task, you need to add a new script to the python api examples that implements a "simple" trailing stop. The user is allowed to specify:

Setting trailing stops for the list of specified instruments should be carried out in parallel mode using the multiprocessing library.


Описание задачи по-русски:

Трейлинг-стоп (или "скользящий" стоп) – это инструмент, который позволяет автоматически устанавливать ордер (лимитный или SL/TP стоп-ордер) на необходимом уровне от текущей цены, в процентах или в валюте торгуемого инструмента. Он отлично подойдет, когда рынок сильно движется в одном направлении, а у трейдера нет возможности следить за изменением цены.

Ордер для трейлинг-стопа выставляется в первый раз тогда, когда цена пересекает уровень безубыточности (цена открытия, плюс все комиссии, плюс небольшой плавающий шаг) и становится дальше этого уровня на величину трейлинга. В дальнейшем трейлинг-стоп перемещается вслед за ценой, когда она движется в благоприятном направлении и остаётся неизменным при разворотах, что гарантирует максимизацию прибыли. Устанавливать при этом вручную какие-либо SL/TP-ордера не требуется.

Направления для отслеживания трейлинг-стопа могут быть "short" (для позиций продаж) и "long" (для позиций покупок). Если цена в очередной раз изменилась и требуется передвинуть трейлинг-стоп ордер, то в начале отменяется предыдущий и затем выставляется новый ордер с новым уровнем.

В этой задаче требуется добавить в примеры работы с python api новый сценарий, который реализует "простой" трейлинг-стоп. Пользователю разрешено указать:

Установка трейлинг-стопов по списку указанных инструментов должна осуществляться в параллельном режиме с использованием библиотеки для мультипроцессинга.