public static double CalcTrueRange(XCandle prevDay, XCandle currentDay) { var d = new double[3]; d[0] = (double)(prevDay.HighPrice - prevDay.ClosePrice); d[1] = Math.Abs((double)(prevDay.ClosePrice - currentDay.HighPrice)); d[2] = Math.Abs((double)(prevDay.ClosePrice - currentDay.LowPrice)); return(d.Max()); }
public void Add(XCandle candle, T res) { /*if (m_results.ContainsKey(candle)) * { * var x = m_results[candle]; * Console.WriteLine(candle.Timestamp); * return; * }*/ m_results[candle] = res; //m_results.Add(candle, res); }
public int Compare(XCandle x, XCandle y) { if (x.Timestamp < y.Timestamp) { return(-1); } else if (x.Timestamp > y.Timestamp) { return(+1); } else { return(0); } }
public List <XCandle> ReadCandles(string exchange, string symbol, int minutes) { var result = new List <XCandle>(); string filename = string.Format("candles_{0}_{1}_{2}", exchange, symbol, GetBarPeriod(minutes * 60)); var fin = new InputFile <XCandle>(filename, Folder.crypto_folder, false); string line; while ((line = fin.ReadLine()) != null) { var candle = new XCandle(); Reflection.SetPropertyValues <XCandle>(candle, line); result.Add(candle); //Console.WriteLine(candle); } fin.Close(); return(result); }
public BacktestTrade(OrderSide side, decimal price, XCandle candle) { Side = side; Price = price; Candle = candle; }