Backtrader - стоп-ордера и ордера на получение прибыли не исполняются, если ордер на покупку передается в качестве родитPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Backtrader - стоп-ордера и ордера на получение прибыли не исполняются, если ордер на покупку передается в качестве родит

Сообщение Anonymous »

Я размещаю ордер на покупку в своем методе стратегии next() и в порядке уведомления после проверки его завершения я размещаю два ордера (прибыль и убыток)

Код: Выделить всё

    def notify_order(self, order):
""" This method is used to monitor the status of an order. """
if order.status in [order.Submitted, order.Accepted]:
# Order is in progress
#logging.info(f"order is submitted {order.status} for {order.ref} with {order.created.price}")
return

if order.status in [order.Completed]:
instrument_name = order.data._name
if order.isbuy():
logging.info(f"BUY EXECUTED at price: {order.executed.price} for {instrument_name} with size {order.executed.size} ")
# calculating profit and loss values
tpslData = self.calculateTpSl(self.tpsl['long_pos'], order.executed.price, order.executed.size,
True)
self.profit_order[instrument_name] = self.sell(size=order.executed.size, exectype=bt.Order.Limit, data = order.data, price=tpslData[1], parent = self.order)
self.loss_order[instrument_name] = self.sell(size=order.executed.size, price=tpslData[0], data = order.data, exectype=bt.Order.Stop, parent = self.order)
elif order.issell():
logging.info(f"SELL EXECUTED at price: {order.executed.price} for {instrument_name} with size {order.executed.size}")
if order != self.loss_order[instrument_name]:
self.cancel(self.loss_order[instrument_name])
if order != self.profit_order[instrument_name]:
self.cancel(self.profit_order[instrument_name])
else:
logging.error(f"Not a expected order type {order.executed.value}")
elif order.status in [order.Canceled, order.Margin, order.Rejected]:
logging.info(f"order status is {order.status} at price:  {order.executed.price}")
но после ордера на покупку он не размещает ордер на продажу и завершается без каких-либо ошибок после перебора всех свечей в стратегии.
if i удалите родительский атрибут из ордеров на продажу, тогда он работает нормально, проблема возникает только тогда, когда и целевая прибыль, и стоп-лосс возникают в одной и той же свече, тогда размещаются два ордера на продажу.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -as-parent
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как установить стоп-лосс для стоп-ордера во фьючерсах KuCoin?
    Anonymous » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Ордер TakeProfit в качестве лимитного ордера для позиции Bitget Futures
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Добавить текст и стоп-ордер в Spinning Wheel
    Anonymous » » в форуме CSS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Добавить стоп-ордер в прялке [закрыто]
    Anonymous » » в форуме CSS
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как правильно разместить стоп-лимитный ордер с помощью MEXC API
    Anonymous » » в форуме Python
    0 Ответы
    333 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»