Exemple #1
0
 public UnitOfWork(FxContext context)
 {
     _context = context;
     Price    = new PriceRepository(_context);
     Candle   = new CandleRepository(_context);
     Trade    = new TradeRepository(_context);
 }
Exemple #2
0
        public JsonResult GetData(string security)
        {
            WebApiClient     client = new WebApiClient();
            CandleRepository repo   = new CandleRepository(client);
            var task = repo.GetHistory(security, new DateTime(2018, 1, 30), "1");

            var candles = task.Result;

            long DatetimeMinTimeTicks = (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Ticks;

            var arr = new List <object>();

            foreach (ICandle candle in candles)
            {
                var ticks = candle.begin.ToUniversalTime().Ticks - DatetimeMinTimeTicks;

                long dt = ticks / 10000;



                arr.Add(new object[] { dt, candle.open, candle.high, candle.low, candle.close });
            }

            return(Json(arr));
        }
Exemple #3
0
        public SecurityDetailsViewModel(INavigationService navigationService, CandleRepository candleRepository, IChart chart)
        {
            this._navigationService = navigationService;
            this._candleRepository  = candleRepository;

            Messenger.Default.Register <SecurityLoadedMessage>(this, (msg) =>
            {
                this._security = msg.Security;


                IList <ICandle> candlelist = _candleRepository.GetHistory(_security.Code, new DateTime(2017, 3, 10), "60").Result.ToList();

                chart.ShowCandles(candlelist);

                SimpleMovingAverage sma = new SimpleMovingAverage(candlelist, 26);
                chart.ShowMA(sma, Colors.Yellow);

                SimpleMovingAverage sma2 = new SimpleMovingAverage(candlelist, 12);
                chart.ShowMA(sma2, Colors.LemonChiffon);

                //ExponentialMovingAverage ema = new ExponentialMovingAverage(candlelist, 9);
                //chart.ShowMA(ema, Colors.Blue);

                MACD macd = new MACD(candlelist, 12, 26, 9);

                chart.ShowMACD(macd, Colors.Blue);
            });
        }
Exemple #4
0
 public UnitOfWork(MyDatabase context)
 {
     this.context   = context;
     Cares          = new CareRepository.CareRepository(context);
     FaceCreams     = new FaceCreamRepository(context);
     Hairs          = new HairRepository(context);
     Lotions        = new LotionRepository(context);
     ShaveBeards    = new ShaveBeardRepository(context);
     FoodHerbs      = new FoodHerbRepository(context);
     Salts          = new SaltRepository(context);
     Spices         = new SpiceRepository(context);
     SproutingSeeds = new SproutingSeedRepository(context);
     Teas           = new TeaRepository(context);
     Candles        = new CandleRepository(context);
     EssentialOils  = new EssentialOilRepository(context);
     Homes          = new HomeRepository.HomeRepository(context);
     HomeCleanings  = new HomeCleaningRepository(context);
     Kitchens       = new KitchenRepository(context);
     PowerHealths   = new PowerHealthRepository(context);
     SuperFoods     = new SuperFoodRepository(context);
     Supplements    = new SupplementRepository.SupplementRepository(context);
     Orders         = new OrderRepository(context);
     Products       = new ProductRepository(context);
     Users          = new UserRepository(context);
 }
Exemple #5
0
 public UnitOfWork(ArchimedesContext context)
 {
     _context   = context;
     Price      = new PriceRepository(_context);
     Candle     = new CandleRepository(_context);
     Trade      = new TradeRepository(_context);
     Market     = new MarketRepository(_context);
     PriceLevel = new PriceLevelRepository(_context);
     Strategy   = new StrategyRepository(_context);
 }
Exemple #6
0
        public JsonResult GetDecisions()
        {
            IList <StrategyDecision> decisions = new List <StrategyDecision>();

            IList <string> securityList = new List <string>();

            securityList.Add("GMKN");
            securityList.Add("LKOH");
            securityList.Add("MOEX");

            IDictionary <string, IDictionary <string, IList <ICandle> > > dic = new Dictionary <string, IDictionary <string, IList <ICandle> > >();

            WebApiClient     client = new WebApiClient();
            CandleRepository repo   = new CandleRepository(client);

            AnalystStrategy strategy = new AnalystStrategy();

            foreach (string sec in securityList)
            {
                var task = repo.GetHistory(sec, DateTime.Now.AddDays(-14), "60");

                var candles = task.Result;

                dic.Add(sec, new Dictionary <string, IList <ICandle> >());
                dic[sec].Add("60", candles.ToList());
            }

            foreach (string sec in securityList)
            {
                decisions.Add(strategy.GetDecision(dic[sec], sec, "free", DateTime.Now));
            }

            JsonResult res = Json(decisions);

            return(res);
        }
Exemple #7
0
        public TradeModel(TradeSessionRepository TradeSessionRepository,
                          CandleRepository CandleRepository,
                          OrderRepository OrderRepository,
                          PositionRepository PositionRepository,
                          DealRepository DealRepository,
                          WebApiClient client,
                          ITradeMode mode, Mode modeProperties, object token)
        {
            _token = token;
            _tradeSessionRepository = TradeSessionRepository;
            _candleRepository       = CandleRepository;
            _orderRepository        = OrderRepository;
            _positionRepository     = PositionRepository;
            _dealRepository         = DealRepository;
            _apiClient = client;

            _mode           = mode;
            _modeProperties = modeProperties;

            _candles = new Dictionary <string, IDictionary <string, IList <ICandle> > >();

            Messenger.Default.Register <InitTradeModelMessage>(this, _token, async(msg) =>
            {
                var temp_sessions = await _tradeSessionRepository.GetAll();
                _sessions         = temp_sessions.OrderBy(t => t.Date).ToList();

                _mode.SetAction("init", () =>
                {
                    foreach (string sec in msg.securities)
                    {
                        _candles[sec] = new Dictionary <string, IList <ICandle> >();
                        foreach (string frame in msg.frames)
                        {
                            string res = InitCandles(sec, frame).Result;
                        }
                    }
                });

                _mode.SetAction("initEmpty", () =>
                {
                    foreach (string sec in msg.securities)
                    {
                        _candles[sec] = new Dictionary <string, IList <ICandle> >();
                        foreach (string frame in msg.frames)
                        {
                            _candles[sec][frame] = new List <ICandle>();
                        }
                    }
                });

                _mode.SetAction("update", () =>
                {
                    IEnumerable <Candle> candles = _candleRepository.GetAll().Result;

                    _positionlist = _positionRepository.GetAll().Result;

                    foreach (string sec in msg.securities)
                    {
                        var tempData = candles.Where(c => c.Code == sec).OrderBy(c => c.begin);
                        UpdateCadles(sec, tempData, msg.frames);
                    }

                    this._positions = GetPositions(_positionlist, msg.securities);
                });

                _mode.SetAction("sendToRobo", () =>
                {
                    Messenger.Default.Send <GetCandlesResponseMessage>(new GetCandlesResponseMessage()
                    {
                        DateTime  = mode.GetDate(),
                        Сandles   = _candles,
                        Positions = _positions
                    }, _token);
                });

                _mode.SetAction("showData", () =>
                {
                    _dealRepository.GetAll().ContinueWith(t =>
                    {
                        Messenger.Default.Send <ShowDataMessage>(new ShowDataMessage()
                        {
                            Сandles   = CopyCandles(_candles),
                            Deals     = t.Result,
                            Positions = _positionlist
                        });
                    });
                });

                mode.Start();
            });

            Messenger.Default.Register <CreateOrderMessage>(this, msg =>
            {
                Order order = new Order()
                {
                    Code           = msg.Code,
                    OrderOperation = msg.OrderOperation,
                    Account        = _modeProperties.Account,
                    Price          = msg.Price,
                    Count          = msg.Count,
                    Class          = _modeProperties.Class,
                    Client         = _modeProperties.Client,
                    Comment        = _modeProperties.Client,
                    Profit         = msg.Profit,
                    StopLoss       = msg.StopLoss
                };

                string result = _orderRepository.Create(order).Result;
            });

            //Messenger.Default.Register<GetCandlesMessage>(this, (msg) =>
            //{
            //    Messenger.Default.Send<GetCandlesResponseMessage>(new GetCandlesResponseMessage()
            //    {
            //        Сandles = _candles
            //    });
            //});

            Messenger.Default.Register <ClosePositionMessage>(this, msg =>
            {
                string result = _apiClient.GetData(string.Format("{0}admin/ClosePosition?sec={1}", this.ServerURL, msg.Code)).Result;
            });
        }