Overall Statistics |
Total Trades 157 Average Win 5.71% Average Loss -2.14% Compounding Annual Return 11.774% Drawdown 19.900% Expectancy 0.413 Net Profit 99.933% Sharpe Ratio 0.775 Loss Rate 62% Win Rate 38% Profit-Loss Ratio 2.67 Alpha 0.128 Beta -0.041 Annual Standard Deviation 0.159 Annual Variance 0.025 Information Ratio -0.013 Tracking Error 0.229 Treynor Ratio -3.032 Total Fees $153.44 |
namespace QuantConnect { public class StopLossExample : QCAlgorithm { const decimal StopLossPercent = 0.02m; const string Symbol = "SPY"; private decimal highestPrice = 0.0m; private OrderTicket CurrentOrder; private OrderTicket StopLoss; public override void Initialize() { SetStartDate(2010, 1, 1); SetEndDate(DateTime.Now.Date.AddDays(-1)); SetCash(25000); AddSecurity(SecurityType.Equity, Symbol, Resolution.Minute); } public void OnData(TradeBars data) { var currentPrice = data[Symbol].Close; // If no stock, enter position & set StopLoss if (!Portfolio.HoldStock) { var quantity = (int)Math.Floor(Portfolio.Cash / currentPrice); CurrentOrder = Order(Symbol, quantity); StopLoss = StopMarketOrder(Symbol, -quantity, currentPrice * (1m - StopLossPercent)); } // If has stock, update StopLoss if necessary else if (currentPrice > highestPrice) { highestPrice = currentPrice; StopLoss.Update(new UpdateOrderFields{ StopPrice = currentPrice * (1m - StopLossPercent) }); } } } }