예제 #1
0
        public MainWindow()
        {
            InitLog();

            Log.Information("Service starting...");

            CefSharp.CefSettings settings = new CefSharp.CefSettings();
            settings.CachePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\CEF";
            CefSharp.Cef.Initialize(settings);

            InitializeComponent();

            _libLoader = new LibraryLoader();
            _libLoader.Init();

            _mtBus                   = new MTBus();
            _orderCache              = new OrderCacheValidator();
            _orderCache.DetectOrder += OrderCacheOnDetectOrder;

            Browser.FrameLoadEnd += WebBrowserFrameLoadEnded;
            this.Closing         += OnClosing;

            _timeScheduler       = new TimeSchedulerService(TimeSpan.FromMinutes(15));
            _timeScheduler.Work += TimeSchedulerOnWork;
            _timeScheduler.Start();

            Log.Information("Service started");
        }
        public void OrdersCahchIsEmptyTest()
        {
            var pairs = GetPairs();
            var countDetectedOrders = 0;
            var orderCache          = new OrderCacheValidator();

            orderCache.DetectOrder += (sender, backtest) =>
            {
                countDetectedOrders++;
            };

            orderCache.Push(pairs);

            Assert.Equal(countDetectedOrders, 0);
        }
        public void OrdersCacheOnDetectTimeTest()
        {
            var pairs = GetDetectTimePairs();
            var countDetectedOrders = 0;
            var orderCache          = new OrderCacheValidator();

            orderCache.DetectOrder += (sender, backtest) =>
            {
                countDetectedOrders++;
            };

            orderCache.Push(pairs);
            orderCache.Push(pairs);

            var doublePairts = new List <BacktestOrderPair>();
            var now          = DateTime.Now;

            // long => short
            doublePairts.Add(new BacktestOrderPair
            {
                Left = new OrderEventBacktest
                {
                    EventType = OrderEventType.Buy,
                    Price     = 10262.28600000m,
                    DateTime  = new DateTime(now.Year, now.Month, now.Day, now.Hour, 30, 0)
                },
                Right = new OrderEventBacktest
                {
                    EventType = OrderEventType.Sell,
                    Price     = 10271.48700000m,
                    DateTime  = new DateTime(now.Year, now.Month, now.Day, now.Hour, 30, 0)
                }
            });
            orderCache.Push(doublePairts);

            Assert.Equal(countDetectedOrders, 1);
        }