Hi everyone,
I'm trying to understand how to define a stopp-loss and limit placing orders.
I'm currently working on if statements that liquidate my positions at pre-defined price levels. This works well for now but I would feel much more comfortable defining stopp-loss and limit together with my market order so that it is stored in the broker's system when the algorithm is trading live. Does anyone have an example on how to use stopp-losses and limits within QuantConnect?
Many thanks!
Kevin Roe
//Place an Order: int Order(string symbol, int quantity, OrderType type = OrderType.Market);
But I don't have experience with using OrderType.Limit, you could perhaps do something like this:if (price <= buylimit) Order(symbol,quantity); if (price >= selllimit) Liquidate(); if (price <= stoploss) Liquidate();
Jared Broad
//Stop Orders Order(string symbol, int quantity, OrderType.StopMarket); //Limit orders for now (we'll make this easier soon) Transactions.AddOrder(new Order(symbol, quantity, OrderType.Limit, Time, price, tag));
Its filled with this model for backtesting: EquityTransactionModelThe 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.
Christofer Olofsson
NicolaGrillo
Mark Wise
Why can't a stoploss be added when the MarketOrder is created? The QCAlgorithm baseclass seems to have the availability itself:
private SubmitOrderRequest CreateSubmitOrderRequest(OrderType orderType, Security security, int quantity, string tag, decimal stopPrice = 0m, decimal limitPrice = 0m)
Why not have a MarketOrder() method orverload with the stopPrice value exposed? For example:public OrderTicket MarketOrder(Symbol symbol, int quantity, decimal stopPrice, bool asynchronous = false, string tag = "")
Alexandre Catarino
Contingent orders is definitely part of our TODO list. Thank you for the suggestion.
At the moment, their management logic is up to the user to implement. Here is a simple example on how it has been done:
Christofer Olofsson
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!