Overall Statistics |
Total Trades 59 Average Win 0.03% Average Loss -0.01% Compounding Annual Return 4039.256% Drawdown 6.200% Expectancy 0.321 Net Profit 3.107% Sharpe Ratio 3.658 Loss Rate 55% Win Rate 45% Profit-Loss Ratio 1.95 Alpha -3.325 Beta -7.03 Annual Standard Deviation 0.561 Annual Variance 0.315 Information Ratio 4.622 Tracking Error 0.61 Treynor Ratio -0.292 Total Fees $0.00 |
namespace QuantConnect { public class ChartBug : QCAlgorithm { private List<string> _currencyPairs = new List<string>() { "EURUSD", //"USDJPY", "GBPUSD", //"AUDUSD", //"USDCHF", //"NZDUSD", //"USDCAD" }; private DateTime startDate = new DateTime(2016, 12, 28); //start date private DateTime endDate = new DateTime(2017, 1, 1); //end date private List<Chart> stockPlot = new List<Chart>(); public override void Initialize() { //Setting start and end date SetStartDate(startDate); SetEndDate(endDate); //Setting my cash SetCash(100000); //Adding pairs at base resolution and foreach (var pair in _currencyPairs) { AddForex(pair, Resolution.Hour); stockPlot.Add(new Chart(pair)); } //AddData<DailyFx>("DFX", Resolution.Hour, DateTimeZone.Utc); //Setting up my charts //Series assetOpenPrice = new Series("Open", SeriesType.Scatter, 0); //Series assetClosePrice = new Series("Close", SeriesType.Scatter, 0); Series tradeinPrice = new Series("TradeIN", SeriesType.Scatter, 0); Series tradeoutPrice = new Series("TradeOUT", SeriesType.Scatter, 0); //Series tradeinCTLPrice = new Series("TradeINCTL", SeriesType.Scatter, 0); //Series tradeoutCTLPrice = new Series("TradeOUTCTL", SeriesType.Scatter, 0); Series fastMA = new Series("FastMA", SeriesType.Line, 0); Series slowMA = new Series("SlowMA", SeriesType.Line, 0); foreach (var chart in stockPlot) { // chart.AddSeries(assetOpenPrice); // chart.AddSeries(assetClosePrice); chart.AddSeries(tradeinPrice); chart.AddSeries(tradeoutPrice); // chart.AddSeries(tradeinCTLPrice); // chart.AddSeries(tradeoutCTLPrice); chart.AddSeries(fastMA); chart.AddSeries(slowMA); AddChart(chart); } } public override void OnData(Slice data) { var rnd = new Random(); foreach (var bar in data.QuoteBars) //Iterate on the data { if (bar.Value.Symbol.Value == "EURUSD") { SetHoldings( bar.Value.Symbol.Value, 7); Plot(bar.Value.Symbol.Value, "TradeIN", bar.Value.Ask.Close); //Plot(currency.Key, "TradeINCTL", (decimal)(double)trade.Value["OpenedPrice"]); } else if (bar.Value.Symbol.Value == "GBPUSD") { SetHoldings(bar.Value.Symbol.Value, -7); Plot(bar.Value.Symbol.Value, "TradeIN", bar.Value.Bid.Close); //Plot(currency.Key, "TradeINCTL", (decimal)(double)trade.Value["OpenedPrice"]); } if (rnd.Next(1,3) == 3) { Liquidate(bar.Value.Symbol.Value); Plot(bar.Value.Symbol.Value, "TradeOUT", bar.Value.Bid.Close); // Plot(currency.Key, "TradeOUTCTL", (decimal)(double)trade.Value["ClosedPrice"]); } } } } }