private TradeAdvice GetEmaAdvice() { var hourlyCandlesUntilNow = Candles.TakeWhile(t => t.Timestamp <= Ticker.Timestamp).ToList(); if (hourlyCandlesUntilNow.Count < 36) { return(TradeAdvice.Hold); } var emaAdvice = new EmaCross().Forecast(hourlyCandlesUntilNow); return(emaAdvice); }
public async Task <Chart> GetChartAsync(string market) { var traderGrain = _clusterClient.GetGrain <ITraderGrain>(market); var traderState = await traderGrain.GetTraderData(); var chart = new Chart(); var candlesResponse = await _cryptoApi.GetCandlesAsync(market, TickInterval.OneHour); var report = new EmaCross().Prepare(candlesResponse.Content); foreach (var candle in candlesResponse.Content) { candle.EmaAdvice = report[candlesResponse.Content.IndexOf(candle)]; } chart.Candles = candlesResponse.Content; chart.Trades = traderState.Trades; return(chart); }