private static void AddSignal(PlotLine2D line_plot_2d, double[] time, double[] signal, List <IList <int> > selections, Color color) { List <Tuple <double[], double[], Color> > series_list = new List <Tuple <double[], double[], Color> >(); foreach (IList <int> selection in selections) { series_list.Add(new Tuple <double[], double[], Color>( time.Select(selection), signal.Select(selection), color)); } line_plot_2d.AddSeries(series_list); }
public void DoExperiment() { List <PriceCandle> all_data = ToolsPrice.GetPriceCandles(); // new DateTime(2016, 9, 3) PlotLine2D line_plot_2d = new PlotLine2D(); for (int month_index = 1; month_index < 9; month_index++) { DateTimeUTC nfp_date = null;// ToolsTradingCalendarEvent.GetNFPDatetime(2016, month_index); DateTimeUTC nfp_date_begin = nfp_date.AddMinutes(-100); DateTimeUTC nfp_date_end = nfp_date.AddMinutes(100); List <double> nfp_time = new List <double>(); List <double> nfp_bid = new List <double>(); double candle_time = 0; double subtract = 0; foreach (PriceCandle candle in all_data) { if ((nfp_date_begin <= candle.OpenTime) && (candle.OpenTime < nfp_date_end)) { if (candle_time == 0) { subtract = candle.OpenBid; } nfp_time.Add(candle_time); nfp_time.Add(candle_time); nfp_time.Add(candle_time); nfp_time.Add(candle_time); nfp_bid.Add(candle.OpenBid); nfp_bid.Add(candle.LowBid); nfp_bid.Add(candle.HighBid); nfp_bid.Add(candle.CloseBid); candle_time++; } } line_plot_2d.AddSeries(nfp_time, nfp_bid, Color.Black); } ToolsPlotting.WriteToFile(ToolsTradingDataSet.GetPath() + "nfp.png", line_plot_2d, 800, 800); }
public static void AddTrades(PlotLine2D line_plot_2d, MarketResult market_result) { List <Tuple <double[], double[], Color> > series_list = new List <Tuple <double[], double[], Color> >(); for (int orderIndex = 0; orderIndex < market_result.Market.ClosedOrders.Count; orderIndex++) { TradingOrder closed_order = market_result.Market.ClosedOrders[orderIndex]; double[] open_close_time = new double[] { closed_order.OpenDateTime.Ticks, closed_order.CloseDateTime.Ticks }; double[] open_close_price = new double[] { closed_order.OpenPrice, closed_order.ClosePrice }; if (closed_order.OrderType == TradingOrderType.Long) { series_list.Add(new Tuple <double[], double[], Color>(open_close_time, open_close_price, COLOR_LONG)); } else { series_list.Add(new Tuple <double[], double[], Color>(open_close_time, open_close_price, COLOR_SHORT)); } } line_plot_2d.AddSeries(series_list); }
private static void AddSignal(PlotLine2D line_plot_2d, IReadOnlyList <double> time, IReadOnlyList <double> signal, Color color) { line_plot_2d.AddSeries(time, signal, color); }