Overall Statistics
Total Trades
12
Average Win
1.60%
Average Loss
-3.01%
Compounding Annual Return
-9.772%
Drawdown
17.500%
Expectancy
-0.387
Net Profit
-9.772%
Sharpe Ratio
-0.551
Probabilistic Sharpe Ratio
4.042%
Loss Rate
60%
Win Rate
40%
Profit-Loss Ratio
0.53
Alpha
-0.074
Beta
0.027
Annual Standard Deviation
0.133
Annual Variance
0.018
Information Ratio
-0.492
Tracking Error
0.19
Treynor Ratio
-2.71
Total Fees
$38.89
Estimated Strategy Capacity
$730000000.00
using System;
using System.Linq;
using QuantConnect;
using QuantConnect.Algorithm;
using QuantConnect.Brokerages;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators.CandlestickPatterns;
using QuantConnect.Orders;
using QuantConnect.Parameters;


namespace cristian
{   
    /// <summary>
    /// Basic template algorithm simply initializes the date range and cash
    /// </summary>
    public class TestCandlestickAlgorithm : QCAlgorithm
    {
    	private RollingWindow<TradeBar> _window;
        private string _symbol = "SPY";

        /// <summary>
        /// Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.
        /// </summary>
        public override void Initialize()
        {
            SetStartDate(2015, 1, 1);  //Set Start Date
            SetEndDate(2015, 12, 31);    //Set End Date
            SetCash(100000);             //Set Strategy Cash
            // Find more symbols here: http://quantconnect.com/data
            AddEquity(_symbol, Resolution.Daily);
             _window = new RollingWindow<TradeBar>(2); 
        }

        /// <summary>
        /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
        /// </summary>
        /// <param name="data">Slice object keyed by symbol containing the stock data</param>
        public override void OnData(Slice data)
        {
        	if(data.ContainsKey(_symbol)) 
        	{
        	_window.Add(data[_symbol]);
        	
			}
        	
        	if (!_window.IsReady)
        	{
        		return;
        	}
        		var currBar = _window[0];
            	var pastBar = _window[1];
            	int _pattern;
            	
        		if ((pastBar.Open > pastBar.Close && currBar.Close > currBar.Open) 
	        		&& (pastBar.Open - pastBar.Close < currBar.Close - currBar.Open) 
	        		&& (pastBar.Open <= currBar.Close && pastBar.Close >= currBar.Open))
	        		{
	        		// Bullish Engulfing, go long
	        			_pattern = 1;
	        			SetHoldings(_symbol, 1);
                		Log(_pattern);
	        			
	        		}
	        	if ((pastBar.Open < pastBar.Close && currBar.Close < currBar.Open) 
	        		&& (pastBar.Close - pastBar.Open < currBar.Open - currBar.Close) 
	        		&& (pastBar.Open >= currBar.Close && pastBar.Close <= currBar.Open))
	        		{
	        		// Bearish Engulfing, go short
	        			_pattern = -1;
	        			SetHoldings(_symbol, -1);
                		Log(_pattern);
	        			
	        		}	
        	}
    }
}