Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }