Quant League is evolving into Strategies, our new home for sharing, discovering, and exploring trading strategies, with improved organization and a better overall experience. Q4-2025 will be the final Quant League.
LEAN is the open-source algorithmic trading engine powering QuantConnect.
Founded in 2012 LEAN has been built by a global community of 180+ engineers and powers more than 300+ hedge funds today.
Join Our Discord Channel
Join QuantConnect's Discord server for real-time support, where a vibrant community of traders and developers awaits to help you with any of your QuantConnect needs.
This research is under review. To publish this research attract three community upvotes.
This research is under review. To publish this research attract three community upvotes.
This discussion is a draft. Click here to publish this discusison.
How do we check if an OrderTicket was for: A StopMarket and it was filled, not canceled
def OnOrderEvent(self, orderEvent):
order = self.Transactions.GetOrderById(orderEvent.OrderId)
# Order Type 2: StopMarket
# Order Status 3: Filled
if order.Type is 2 and order.Status is 3:
# This is what I have but it seems these aren't the right numbers?
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
Alexandre Catarino
108.7k
,
Here are the links to the OrderType Enum and OrderStatus Enum. You are using the right numbers, but I would recommend using the Enum:
def OnOrderEvent(self, orderEvent):
order = self.Transactions.GetOrderById(orderEvent.OrderId)
if order.Type == OrderType.StopMarket and order.Status == OrderStatus.Filled:
self.Log(f'{self.Time} :: {orderEvent} :: {order}')
Jordan Bakke
239
,
I have tried that but now it is also printing trades that it should not, it is Logging StopMarket orders that are Canceled or Invalid, how do I just get it to log Filled orders only?
Alexandre Catarino
108.7k
,
I couldn't reproduce the issue. Please share an algorithm (use the attach backtest button below) that shows the issue you are experiencing.
Jordan Bakke
239
,
I tried the next day and it is working now... Not sure why. I have noticed that many times, even after clicking Build and waiting for it to Build, the backtest does not run the updated code. Not sure if this has anything to do with it but that could have been it
Alexandre Catarino
108.7k
,
Right, you could have been backtesting an old script. Glad that issue is solved!
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp. You can
continue your Boot Camp training progress from the terminal. We
hope to see you in the community soon!
Allocate to this Strategy
Institutional clients can contact the author and allocate capital to this strategy.
Alexandre Catarino
Here are the links to the OrderType Enum and OrderStatus Enum.
You are using the right numbers, but I would recommend using the Enum:
def OnOrderEvent(self, orderEvent): order = self.Transactions.GetOrderById(orderEvent.OrderId) if order.Type == OrderType.StopMarket and order.Status == OrderStatus.Filled: self.Log(f'{self.Time} :: {orderEvent} :: {order}')Jordan Bakke
I have tried that but now it is also printing trades that it should not, it is Logging StopMarket orders that are Canceled or Invalid, how do I just get it to log Filled orders only?
Alexandre Catarino
I couldn't reproduce the issue.
Please share an algorithm (use the attach backtest button below) that shows the issue you are experiencing.
Jordan Bakke
I tried the next day and it is working now... Not sure why. I have noticed that many times, even after clicking Build and waiting for it to Build, the backtest does not run the updated code. Not sure if this has anything to do with it but that could have been it
Alexandre Catarino
Right, you could have been backtesting an old script.
Glad that issue is solved!
Jordan Bakke
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!