Overall Statistics |
Total Trades 82 Average Win 0.66% Average Loss -0.60% Compounding Annual Return 0.562% Drawdown 5.200% Expectancy 0.005 Net Profit 0.563% Sharpe Ratio 0.099 Probabilistic Sharpe Ratio 15.762% Loss Rate 52% Win Rate 48% Profit-Loss Ratio 1.10 Alpha 0.012 Beta -0.02 Annual Standard Deviation 0.071 Annual Variance 0.005 Information Ratio -2 Tracking Error 0.125 Treynor Ratio -0.347 Total Fees $0.00 Estimated Strategy Capacity $660000.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<QuoteBar> _window; private string _symbol = "EURUSD"; /// <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(2013, 1, 1); //Set Start Date SetEndDate(2013, 12, 31); //Set End Date SetCash(100000); //Set Strategy Cash // Find more symbols here: http://quantconnect.com/data AddForex(_symbol, Resolution.Daily); _window = new RollingWindow<QuoteBar>(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); } } } }