| 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);
}
}
}