Exemple #1
0
        public static List <Model.Candle> GetCandles(string instrument, DateTime from, string granularity)
        {
            List <Model.Candle> candles = new List <Model.Candle>();
            string responseString       = Data.OANDARestResponse.Get(Constants.url.Candels(instrument, from, granularity));
            var    candlesResponse      = JsonSerializer.Deserialize <CandleResponse>(responseString);

            foreach (var item in candlesResponse.candles)
            {
                Model.Candle _candle = new Model.Candle();
                _candle.Open     = Convert.ToDouble(item.mid.o);
                _candle.Close    = Convert.ToDouble(item.mid.c);
                _candle.Hight    = Convert.ToDouble(item.mid.h);
                _candle.Low      = Convert.ToDouble(item.mid.l);
                _candle.Complete = item.complete;
                _candle.Time     = item.time.AddDays(1);

                if (_candle.Close > _candle.Open)
                {
                    _candle.OriginalColor = Constants.CandelColour.GREEN;
                }
                else if (_candle.Close < _candle.Open)
                {
                    _candle.OriginalColor = Constants.CandelColour.RED;
                }

                candles.Add(_candle);
            }



            return(candles);
        }
Exemple #2
0
        static List <Model.Candle> _H1(Model.Communication.IEXCandleResponse[] candlesResponse)
        {
            int i       = 0;
            int counter = 1;
            List <Model.Candle> candles = new List <Model.Candle>();

            Model.Candle _candle = null;
            foreach (var item in candlesResponse)
            {
                if (i == 0)
                {
                    //double open = item.open;
                    //if (item.open == 0)
                    //{
                    //    open = item.marketOpen;
                    //}
                    _candle = new Model.Candle();
                    //_candle.Open = Convert.ToDouble(item.marketOpen);

                    //    _candle.Hight = Convert.ToDouble(item.marketHigh);
                    //    _candle.Low = Convert.ToDouble(item.marketLow);
                    //string[] hm = item.minute.Split(':');
                    //_candle.Time = new DateTime(item.date.Year, item.date.Month, item.date.Day, Convert.ToInt16(hm[0]), Convert.ToInt16(hm[1]), 0);

                    i += 1;
                }
                else if (i == 59 || counter == candlesResponse.Count())
                {
                    //double close = item.close;
                    //if (item.close == 0)
                    //{
                    //    close = item.marketClose;
                    //}

                    //_candle.Close = Convert.ToDouble(item.marketClose);
                    _candle.Complete = true;
                    if (_candle.Close > _candle.Open)
                    {
                        _candle.OriginalColor = Constants.CandelColour.GREEN;
                    }
                    else if (_candle.Close < _candle.Open)
                    {
                        _candle.OriginalColor = Constants.CandelColour.RED;
                    }
                    candles.Add(_candle);
                    i = 0;
                }
                else if (i < 59)
                {
                    //_candle.Hight = Math.Max(_candle.Hight, Convert.ToDouble(item.marketHigh));
                    //_candle.Low = Math.Min(_candle.Low, Convert.ToDouble(item.marketLow));
                    //i += 1;
                }

                counter += 1;
            }
            return(candles);
        }
Exemple #3
0
        public static bool WhiteSpinningTop(Model.Candle candle)
        {
            double H = candle.High;
            double L = candle.Low;
            double O = candle.Open;
            double C = candle.Close;

            return((C > O && ((H - L) > (3 * (C - O))) && (((H - C) / (0.001 + H - L)) < 0.4) && (((O - L) / (0.001 + H - L)) < 0.4)));
        }
Exemple #4
0
        public static bool BlackSpinningTop(Model.Candle candle)
        {
            double H = candle.High;
            double L = candle.Low;
            double O = candle.Open;
            double C = candle.Close;

            return((O > C) && ((H - L) > (3 * (O - C)) && (((H - O) / (0.001 + H - L)) < 0.4) && (((C - L) / (0.001 + H - L)) < 0.4)));
        }
Exemple #5
0
            public static bool DragonflyDoji(Model.Candle candle)
            {
                double H = candle.High;
                double L = candle.Low;
                double O = candle.Open;
                double C = candle.Close;

                return(((H - L) > 3 * Math.Abs(O - C)) && ((C - L) > 0.8 * (H - L)) && ((O - L) > 0.8 * (H - L)));
            }
Exemple #6
0
            public static bool HangingMan(Model.Candle candle)
            {
                double H = candle.High;
                double L = candle.Low;
                double O = candle.Open;
                double C = candle.Close;

                return(((H - L) > 4 * (O - C)) && ((C - L) / (0.001 + H - L) >= 0.75) && ((O - L) / (0.001 + H - L) >= 0.75));
            }
Exemple #7
0
            public static bool InvertedHammer(Model.Candle candle)
            {
                double H = candle.High;
                double L = candle.Low;
                double O = candle.Open;
                double C = candle.Close;



                return(((H - L) > 3 * (O - C)) && ((H - C) / (.001 + H - L) > 0.6) && ((H - O) / (.001 + H - L) > 0.6));
            }
Exemple #8
0
            public static bool ShootingStar(Model.Candle candle)
            {
                double H = candle.High;
                double L = candle.Low;
                double O = candle.Open;
                double C = candle.Close;



                return(((H - L) > 4 * (O - C)) && ((H - C) / (.001 + H - L) >= 0.75) && ((H - O) / (.001 + H - L) >= 0.75));
            }
Exemple #9
0
        static void DailyCandles(string instrument)
        {
            D = new List <Model.Candle>();
            string responseString  = Data.OANDARestResponse.Get(Constants.url.IEX.DAY_Candels(instrument));
            var    candlesResponse = JsonConvert.DeserializeObject <Model.Communication.IEXCandleResponse[]>(responseString, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });

            //List<Model.Candle> intradaycandles = D1;

            foreach (var item in candlesResponse)
            {
                Model.Candle _candle = new Model.Candle();
                _candle.Open     = Convert.ToDouble(item.uOpen);
                _candle.Close    = Convert.ToDouble(item.uClose);
                _candle.Hight    = Convert.ToDouble(item.uHigh);
                _candle.Low      = Convert.ToDouble(item.uLow);
                _candle.Complete = true;
                _candle.Time     = item.date;
                if (_candle.Close > _candle.Open)
                {
                    _candle.OriginalColor = Constants.CandelColour.GREEN;
                    Console.WriteLine("GREEN" + " " + _candle.Time + " " + _candle.Open + " " + _candle.Close);
                }
                else if (_candle.Close < _candle.Open)
                {
                    _candle.OriginalColor = Constants.CandelColour.RED;
                    Console.WriteLine("RED" + " " + _candle.Time + " " + _candle.Open + " " + _candle.Close);
                }
                D.Add(_candle);
            }
            //foreach (var item in intradaycandles)
            //{

            //    Model.Candle _candle = new Model.Candle();
            //    _candle.Open = Convert.ToDouble(item.Open);
            //    _candle.Close = Convert.ToDouble(item.Close);
            //    _candle.Hight = Convert.ToDouble(item.Hight);
            //    _candle.Low = Convert.ToDouble(item.Low);
            //    _candle.Complete = true;
            //    _candle.Time = item.Time;
            //    if (_candle.Close > _candle.Open)
            //    {
            //        _candle.OriginalColor = Constants.CandelColour.GREEN;
            //    }
            //    else if (_candle.Close < _candle.Open)
            //    {
            //        _candle.OriginalColor = Constants.CandelColour.RED;
            //    }
            //    D.Add(_candle);
            //}
        }
Exemple #10
0
        public static Model.Candle GeneratePrevious(Model.Candle currentCandel)
        {
            Model.Candle HAcandel = new Model.Candle();
            if (currentCandel.Open < currentCandel.Close)
            {
                HAcandel.Low   = currentCandel.Low;
                HAcandel.Hight = currentCandel.Hight;
                HAcandel.Color = Constants.CandelColour.GREEN;
            }
            else
            {
                HAcandel.Low   = currentCandel.Hight;
                HAcandel.Hight = currentCandel.Low;

                HAcandel.Color = Constants.CandelColour.RED;
            }
            HAcandel.OriginalColor = currentCandel.OriginalColor;
            HAcandel.Open          = currentCandel.Open;
            HAcandel.Close         = currentCandel.Close;
            HAcandel.Time          = currentCandel.Time;
            return(HAcandel);
        }
Exemple #11
0
        public static Model.Candle Generate(Model.Candle HApreviousCandel, Model.Candle currentCandel)
        {
            Model.Candle HAcandel = new Model.Candle();
            HAcandel.Time  = currentCandel.Time;
            HAcandel.Open  = HeikinAshi.OpenValue(HApreviousCandel.Open, HApreviousCandel.Close);
            HAcandel.Close = HeikinAshi.CloseValue(currentCandel.Open, currentCandel.Close, currentCandel.Hight, currentCandel.Low);
            double low  = HeikinAshi.MinValue(currentCandel.Low, HAcandel.Open, HAcandel.Close);
            double high = HeikinAshi.MaxValue(currentCandel.Hight, HAcandel.Open, HAcandel.Close);

            HAcandel.OriginalColor = currentCandel.OriginalColor;
            if (HAcandel.Open < HAcandel.Close)
            {
                HAcandel.Low   = low;
                HAcandel.Hight = high;
                HAcandel.Color = Constants.CandelColour.GREEN;
            }
            else
            {
                HAcandel.Low   = high;
                HAcandel.Hight = low;
                HAcandel.Color = Constants.CandelColour.RED;
            }
            return(HAcandel);
        }
Exemple #12
0
        public static Result GetResult_HA_EMAs1(Instrument instrument, List <Candle> haDailys, CandleColor H4_HA_Color, CandleColor H1_HA_Color, CandleColor M15_HA_Color, MyTrade.Core.Model.InstrumentDetails instrumentDetails)
        {
            Result result     = null;
            string ppPosition = "";

            Core.Model.Indicators.PivotPoint pps = instrumentDetails.W_PivotPoints;
            if (instrumentDetails.TimeFrame == TimeFrame.MONTHLY)
            {
                pps        = instrumentDetails.M_PivotPoints;
                ppPosition = pps.Position;
            }
            else
            {
                ppPosition = pps.Position;
            }



            CandleColor D_RealColor = CandleColor.GREEN;
            CandleColor D_HA_Color  = CandleColor.GREEN;

            D_RealColor = haDailys[haDailys.Count() - 1].OriginalColor;

            var ema50 = from x in instrumentDetails.EMAs
                        where x.Period == 50
                        select x;
            var ema9 = from x in instrumentDetails.EMAs
                       where x.Period == 9
                       select x;



            List <Model.Candle> last_ha_candles = haDailys.Reverse <Model.Candle>().Take(5).Reverse().ToList <Model.Candle>();
            int i = last_ha_candles.Count() - 1;

            while (i > 0)
            {
                Model.Candle current  = last_ha_candles[i];
                Model.Candle previous = null;

                previous = last_ha_candles[i - 1];
                if ((current.HaColor == CandleColor.GREEN && previous.HaColor == CandleColor.RED))
                {
                    if (D_RealColor == CandleColor.GREEN)
                    {
                        if (current.Close > ema50.FirstOrDefault().Value&& current.Close > ema9.FirstOrDefault().Value)
                        {
                            result            = new Result();
                            D_HA_Color        = current.HaColor;
                            result.Instrument = instrument;

                            result.NumberHaCandles     = last_ha_candles.Count - i;
                            result.D_HA_Color          = D_HA_Color;
                            result.D_RealColor         = D_RealColor;
                            result.H4_HA_Color         = H4_HA_Color;
                            result.H1_HA_Color         = H1_HA_Color;
                            result.M15_HA_Color        = M15_HA_Color;
                            result.InstrumentDetails   = instrumentDetails;
                            result.PivotPointsPosition = ppPosition;
                            if (D_RealColor == D_HA_Color && H1_HA_Color == D_HA_Color && H4_HA_Color == D_HA_Color && M15_HA_Color == D_HA_Color)
                            {
                                result.Action = Core.Constants.Action.BUY;
                            }
                            else if (D_RealColor == D_HA_Color && D_RealColor == M15_HA_Color)
                            {
                                result.Action = Core.Constants.Action.BUY;
                            }
                            else
                            {
                                result.Action = Core.Constants.Action.WAIT;
                            }
                            break;
                        }
                        else
                        {
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
                else if (current.HaColor == CandleColor.RED && previous.HaColor == CandleColor.GREEN)

                {
                    if (D_RealColor == CandleColor.RED)
                    {
                        if (current.Close < ema50.FirstOrDefault().Value&& current.Close < ema9.FirstOrDefault().Value)
                        {
                            D_HA_Color = current.HaColor;
                            result     = new Result();

                            result.Instrument = instrument;

                            result.NumberHaCandles     = last_ha_candles.Count - i;
                            result.D_HA_Color          = D_HA_Color;
                            result.D_RealColor         = D_RealColor;
                            result.H4_HA_Color         = H4_HA_Color;
                            result.H1_HA_Color         = H1_HA_Color;
                            result.M15_HA_Color        = M15_HA_Color;
                            result.InstrumentDetails   = instrumentDetails;
                            result.PivotPointsPosition = ppPosition;

                            if (D_RealColor == D_HA_Color && H1_HA_Color == D_HA_Color && H4_HA_Color == D_HA_Color && M15_HA_Color == D_HA_Color)
                            {
                                result.Action = Core.Constants.Action.SELL;
                            }
                            else if (D_RealColor == D_HA_Color && D_RealColor == M15_HA_Color)
                            {
                                result.Action = Core.Constants.Action.SELL;
                            }
                            else
                            {
                                result.Action = Core.Constants.Action.WAIT;
                            }
                            break;
                        }
                        else
                        {
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                i -= 1;
            }


            if (result == null)
            {
                result            = new Result();
                result.Instrument = instrument;

                result.NumberHaCandles     = 0;
                result.D_HA_Color          = D_HA_Color;
                result.D_RealColor         = D_RealColor;
                result.H4_HA_Color         = H4_HA_Color;
                result.H1_HA_Color         = H1_HA_Color;
                result.M15_HA_Color        = M15_HA_Color;
                result.Action              = Core.Constants.Action.WAIT;
                result.PivotPointsPosition = ppPosition;
            }
            return(result);
        }