Back

Placing Orders with a Stoploss and Limit

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!
Update Backtest








From API:
//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();
1

Correct Kevin - You can use the OrderType.StopMarket, OrderType.Limit in theory :),
//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: EquityTransactionModel
0

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.


Thanks guys! Appreciate your input. Happy programming
0

Sorry guys but I didn't understand the example posted by Jared. In the same order I would like to input the stop-loss and the take-profit. Is it possibile? I think this should be something basic, am I wrong?

Nicola
2

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 = "")

0

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: 

https://www.quantconnect.com/forum/discussion/1072/setting-a-stop-loss-and-take-profit/p1/comment-3313

 

1

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.


Update Backtest





0

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.


Loading...

This discussion is closed