Overall Statistics |
Total Trades 20 Average Win 0.00% Average Loss -0.01% Compounding Annual Return -0.799% Drawdown 0.100% Expectancy -0.931 Net Profit -0.132% Sharpe Ratio -8.763 Loss Rate 95% Win Rate 5% Profit-Loss Ratio 0.30 Alpha -0.005 Beta 0 Annual Standard Deviation 0.001 Annual Variance 0 Information Ratio -1.022 Tracking Error 0.112 Treynor Ratio -12 Total Fees $40.00 |
namespace QuantConnect { /* * QuantConnect University: Full Basic Template: * * The underlying QCAlgorithm class is full of helper methods which enable you to use QuantConnect. * We have explained some of these here, but the full algorithm can be found at: * https://github.com/QuantConnect/QCAlgorithm/blob/master/QuantConnect.Algorithm/QCAlgorithm.cs */ public class FXTestAlgorithm : QCAlgorithm, IAlgorithm { string symbol = "EURUSD"; // SimpleMovingAverage smaShort; // SimpleMovingAverage smaLong; ExponentialMovingAverage smaShort; ExponentialMovingAverage smaLong; DateTime Today = DateTime.Now; decimal valueFX; public override void Initialize() { //Start and End Date range for the backtest: SetStartDate(2015, 1, 1); SetEndDate(2015, 3, 1); //Cash allocation SetCash(30000); //Add as many securities as you like. All the data will be passed into the event handler: AddSecurity(SecurityType.Forex, symbol, Resolution.Minute); // SetRunMode(RunMode.Series); // smaShort = SMA(symbol, 10, Resolution.Minute); // smaLong = SMA(symbol, 50, Resolution.Minute); smaShort = EMA(symbol, 10, Resolution.Minute); smaLong = EMA(symbol, 50, Resolution.Minute); } public void OnData(TradeBars data) { if(!smaShort.IsReady || !smaLong.IsReady) return; if(Today.Date == data[symbol].Time.Date) return; Today = data[symbol].Time.Date; valueFX = data[symbol].Close; int holdings = Portfolio[symbol].Quantity; if(holdings == 0 || holdings < 0){ if(smaShort > smaLong){ MarketOrder("EURUSD", (Math.Abs(holdings) + 100)); Debug("Purchased EURUSD on " + Time.ToShortDateString()); } } else if(holdings == 0 || holdings > 0){ if(smaLong > smaShort){ MarketOrder("EURUSD", -(100 + holdings)); Debug("Sold EURUSD on " + Time.ToShortDateString()); } } } } }