Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 1.809% Drawdown 6.500% Expectancy 0 Net Profit 0% Sharpe Ratio 0.254 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.014 Beta -0.001 Annual Standard Deviation 0.055 Annual Variance 0.003 Information Ratio -1.283 Tracking Error 0.107 Treynor Ratio -24.255 Total Fees $2.00 |
namespace QuantConnect { /* * QuantConnect University: Bollinger Bands Example: */ public class IndicatorSuiteAlgorithm : QCAlgorithm { string _symbol = "EURUSD"; BollingerBands _bb; RelativeStrengthIndex _rsi; AverageTrueRange _atr; ExponentialMovingAverage _ema; SimpleMovingAverage _sma; MovingAverageConvergenceDivergence _macd; AroonOscillator _aroon; Momentum _mom; StandardDeviation _std; //RSI Custom Data: RelativeStrengthIndex _rsiCustom; decimal _price; //Initialize the data and resolution you require for your strategy: public override void Initialize() { //Initialize SetStartDate(2013, 1, 1); SetEndDate(2014, 6, 30); SetCash(25000); //Add as many securities as you like. All the data will be passed into the event handler: AddSecurity(SecurityType.Forex, _symbol, Resolution.Minute); SetBrokerageModel(BrokerageName.OandaBrokerage); //Set up Indicators: _bb = BB(_symbol, 20, 1, MovingAverageType.Simple, Resolution.Daily); _rsi = RSI(_symbol, 14, MovingAverageType.Simple, Resolution.Daily); _atr = ATR(_symbol, 14, MovingAverageType.Simple, Resolution.Daily); _ema = EMA(_symbol, 14, Resolution.Daily); _sma = SMA(_symbol, 14, Resolution.Daily); _macd = MACD(_symbol, 12, 26, 9, MovingAverageType.Simple, Resolution.Daily); _aroon = AROON(_symbol, 20, Resolution.Daily); _mom = MOM(_symbol, 20, Resolution.Daily); _std = STD(_symbol, 20, Resolution.Daily); } public void OnData(TradeBars data) { if (!_bb.IsReady || !_rsi.IsReady) return; _price = data["EURUSD"].Close; if (!Portfolio.HoldStock) { int quantity = (int)Math.Floor(Portfolio.Cash / data[_symbol].Close); //Order function places trades: enter the string symbol and the quantity you want: Order(_symbol, (quantity * 1000) / 1000); //Debug sends messages to the user console: "Time" is the algorithm time keeper object Debug("Purchased EURUSD on " + Time.ToShortDateString()); } } // Fire plotting events once per day: public override void OnEndOfDay() { Plot("test", _sma, _rsi); //if (symbol != "SPY") return; if (!_bb.IsReady) return; Debug("PLOTTING"); Plot("BB", "Price", _price); Plot("BB", _bb.UpperBand, _bb.MiddleBand, _bb.LowerBand); Plot("RSI", _rsi); Plot("ATR", _atr); //Plot("STD", _std); Plot("AROON", _aroon.AroonUp, _aroon.AroonDown); // Plot("MOM", _mom); // Plot("MACD", "Price", _price); // Plot("MACD", _macd.Fast, _macd.Slow); // Plot("Averages", _ema, _sma); } } }