private static List <decimal> MacdHesapla(List <IOhlcv> tradyCandles) { if (tradyCandles.Count > 360) { var mcdList = new MovingAverageConvergenceDivergenceHistogram(tradyCandles, 12, 26, 9); var hesapla = mcdList.Compute(); var sonuc = hesapla.Select(x => Convert.ToDecimal(x.Tick)).ToList(); sonuc.RemoveRange(0, 140); return(sonuc); } return(null); }
public bool BullishScan(Symbol symbol, IEnumerable <Candle> candles) { var fiveEma = candles.Ema(5)[candles.Count() - 1]; var twentyEma = candles.Ema(20)[candles.Count() - 1]; var twentySma = candles.Sma(20)[candles.Count() - 1]; var macdHist = candles.MacdHist(12, 26, 9)[candles.Count() - 1]; var indexedCandle = new IndexedCandle(candles, candles.Count() - 8); var macdBullOsc = indexedCandle.IsMacdOscBullish(12, 26, 9); var macdHist1 = new MovingAverageConvergenceDivergenceHistogram(candles, 12, 26, 9); var diff = macdHist1.ComputeNeighbourDiff(candles.Count() - 1); var diffPc = macdHist1.ComputeNeighbourPcDiff(candles.Count() - 1); var abcd = macdHist1.ComputeDiff(candles.Count() - 4, candles.Count() - 1); if (fiveEma.Tick.Value > twentyEma.Tick.Value && fiveEma.Tick.Value > twentySma.Tick.Value && (macdHist.Tick.Value >= _MinPositiveMacdHist && macdHist.Tick.Value <= _MaxPositiveMacdHist) && macdBullOsc) { var currentCandle = candles.LastOrDefault(); // //EMA Satisfied //_zeropdhaService.PlaceOrder(new BrokerOrderModel() //{ // JobId = _jobId, // SymbolId = symbol.Id, // Exchange = symbol.Exchange, // TradingSymbol = symbol.TradingSymbol, // InstrumentToken = symbol.InstrumentToken, // TransactionType = Constants.TRANSACTION_TYPE_BUY, // Quantity = _MinQuantity, // OrderType = Constants.ORDER_TYPE_MARKET, // Product = Constants.PRODUCT_MIS, // Variety = Constants.VARIETY_CO, // Validity = Constants.VALIDITY_DAY, // TriggerPrice = Convert.ToInt32(((currentCandle.Close - (currentCandle.Close * Convert.ToDecimal(_RiskPercentage))) / symbol.TickSize)) * symbol.TickSize //}); return(true); } return(false); }