Ejemplo n.º 1
0
        //private static Timer _timer2 =
        //    new Timer(CheckSubs, null, 1000, 1000);

        //private static void CheckSubs(object state)
        //{
        //    var brokenSubs = Level2List.Where(x => x.Level2Data.Count == 0).ToList();
        //    foreach (var sub in brokenSubs)
        //    {
        //        TXmlConnector.ConnectorSendCommand(
        //            ConnectorCommands.SubUnsubCommand("subscribe", "quotes", sub.Board, sub.Seccode));
        //    }
        //}
        private static void ClearSubs(object state)
        {
            var            windows = _dispatcher.Invoke(() => Application.Current.Windows);
            List <IAnchor> list    = new List <IAnchor>();

            foreach (Window window in windows)
            {
                var context = _dispatcher.Invoke(() => window.DataContext);
                if (context is IAnchor)
                {
                    list.Add((IAnchor)context);
                }
            }

            Level2Subscription[] arr = new Level2Subscription[Level2List.Count];
            Level2List.CopyTo(arr, 0);
            foreach (var level2Subscription in arr)
            {
                var sub = list.Count(c => c.Board == level2Subscription.Board &&
                                     c.Seccode == level2Subscription.Seccode);
                if (sub == 0)
                {
                    TXmlConnector.ConnectorSendCommand(
                        ConnectorCommands.SubUnsubCommand("unsubscribe", "quotes", level2Subscription.Board, level2Subscription.Seccode));
                    var subscription = level2Subscription;
                    Level2List.TryTake(out subscription);
                }
            }
        }
Ejemplo n.º 2
0
        public async void CloseBalanceMethod()
        {
            MessageDialogResult result = await _dialogCoordinator.ShowMessageAsync(this,
                                                                                   "Are you sure?", "Are you sure you want to close all positions?",
                                                                                   MessageDialogStyle.AffirmativeAndNegative);

            if (result == MessageDialogResult.Affirmative)
            {
                foreach (var row in UnitedPortfolioSecurityDataGridRowses)
                {
                    string res;
                    var    security = MainWindowViewModel.SecVm.SecList
                                      .First(x => x.Secid == row.Secid);
                    var client = ClientSelector.GetClient(security.Board);
                    if (row.Balance > 0)
                    {
                        res = ConnectorCommands.PlaceMktOrder(security.Board, security.Seccode, client[0], client[1],
                                                              row.Balance / security.Lotsize, "S", false);
                    }
                    if (row.Balance < 0)
                    {
                        res = ConnectorCommands.PlaceMktOrder(security.Board, security.Seccode, client[0], client[1],
                                                              Math.Abs(row.Balance / security.Lotsize), "B", false);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void ChartWindow_OnClosing(object sender, CancelEventArgs e)
        {
            var cmd = ConnectorCommands.SubUnbubTics("unsubscribe_ticks", _board, _seccode, "1", "true");

            TXmlConnector.ConnectorSendCommand(cmd);
            TXmlConnector.SendNewTicks -= TicksToCandles;
        }
Ejemplo n.º 4
0
        public void OnWindowClosing(object sender, CancelEventArgs e)
        {
            var vm = ((VisiFireChart)sender).DataContext as VisiFireChartViewModel;

            _subscriptions.RemoveAll(item => item.Board == vm._board && item.Seccode == vm._seccode);
            TXmlConnector.ConnectorSendCommand(ConnectorCommands.SubscribeTicks(SecurityForTicks.ReturnSecuritiesXml(_subscriptions)));
            TXmlConnector.SendNewTicks -= vm.TicksToCandles;
        }
Ejemplo n.º 5
0
 public static void UnsubAll()
 {
     foreach (var subscription in Level2List)
     {
         TXmlConnector.ConnectorSendCommand(
             ConnectorCommands.SubUnsubCommand("unsubscribe", "quotes", subscription.Board, subscription.Seccode));
         var level2Subscription = subscription;
         Level2List.TryTake(out level2Subscription);
     }
 }
Ejemplo n.º 6
0
        public static void EditStoporder(string id, double price)
        {
            var editedStoporder = _stoporders.First(s => s.Transactionid == id);

            TXmlConnector.ConnectorSendCommand(
                $"<command id=\"cancelstoporder\"><transactionid>{editedStoporder.Transactionid}</transactionid></command>");
            var res = TXmlConnector.ConnectorSendCommand(ConnectorCommands.NewStopLoss(editedStoporder.Board,
                                                                                       editedStoporder.Seccode, editedStoporder.Client,
                                                                                       ClientSelector.GetClient(editedStoporder.Board)[1], editedStoporder.Buysell,
                                                                                       price.ToString(), editedStoporder.Stoploss[0].Orderprice ?? "",
                                                                                       editedStoporder.Stoploss[0].Quantity, editedStoporder.Stoploss[0].IsByMarket,
                                                                                       editedStoporder.Stoploss[0].Usecredit != "no"));
        }
Ejemplo n.º 7
0
        private Candle[] _candleArray;                                  // это массив свечек
        public ChartWindow(string board, string seccode, int timeframe) //окно загружается.
        {
            _board     = board;
            _seccode   = seccode;
            _timeframe = timeframe;
            TXmlConnector.SendNewTicks += TicksToCandles;
            var cmd = ConnectorCommands.SubUnbubTics("subscribe_ticks", board, seccode, "1", "true");

            TXmlConnector.ConnectorSendCommand(cmd);
            InitializeComponent();
            // вызываем метод для создания чарта
            CreateChart();
        }
Ejemplo n.º 8
0
        public static ObservableCollection <Level2Item> AddLevel2Subscribtion(string board, string seccode)
        {
            var subscription = Level2List.FirstOrDefault(x => x.Board == board && x.Seccode == seccode);

            if (subscription == null)
            {
                subscription = new Level2Subscription
                {
                    Board   = board,
                    Seccode = seccode
                };
                Level2List.Add(subscription);
                TXmlConnector.ConnectorSendCommand(
                    ConnectorCommands.SubUnsubCommand("subscribe", "quotes", subscription.Board, subscription.Seccode));
            }
            return(subscription.Level2Data);
        }
Ejemplo n.º 9
0
        public VisiFireChartViewModel(string board, string seccode)
        {
            _board   = board;
            _seccode = seccode;
            TXmlConnector.SendNewTicks += TicksToCandles;
            var sub = new SecurityForTicks {
                Board = board, Seccode = seccode, Tradeno = "1"
            };

            _subscriptions.Add(new SecurityForTicks {
                Board = board, Seccode = seccode, Tradeno = "1"
            });
            var cmd = ConnectorCommands.SubscribeTicks(SecurityForTicks.ReturnSecuritiesXml(_subscriptions));

            TXmlConnector.ConnectorSendCommand(cmd);
            _subscriptions.Last().Tradeno = "0";
        }
Ejemplo n.º 10
0
        private void Closing()
        {
            TXmlConnector.SendNewQuotes    -= XmlConnector_OnSendNewQuotes;
            TXmlConnector.SendNewAllTrades -= XmlConnector_OnSendNewTrades;
            var atsub = new Security {
                Board = Board, Seccode = Seccode
            };

            AllTradesSubs.Remove(atsub);
            if (!AllTradesSubs.Contains(atsub))
            {
                ConnectorCommands.SubUnsubCommand("unsubscribe", "alltrades", Board, Seccode);
            }
            UnsubscribeFromWindowEvents();
            CloseWindow();
            GC.Collect();
        }
Ejemplo n.º 11
0
        public LogBookViewModel(string board, string seccode, Window window, int id = 0)
        {
            Window         = window;
            ClosingCommand = new Command(arg => Closing());
            ResetCommand   = new Command(arg => Reset());
            Board          = board;
            Seccode        = seccode;
            _level2Items   = Level2DataHandler.AddLevel2Subscribtion(Board, Seccode);
            TXmlConnector.SendNewQuotes += XmlConnector_OnSendNewQuotes;
            Level2Subs.Add(new Security {
                Board = Board, Seccode = Seccode
            });
            TXmlConnector.ConnectorSendCommand(
                ConnectorCommands.SubUnsubCommand("subscribe", "alltrades", Board, Seccode));
            TXmlConnector.SendNewAllTrades += XmlConnector_OnSendNewTrades;
            AllTradesSubs.Add(new Security {
                Board = Board, Seccode = Seccode
            });
            Id = id;
            if (Id == 0)
            {
                SaveWindow();
            }
            SubscribeToWindowEvents();
            var args = GetWindowArgs() as LogBookArgs;

            if (args == null)
            {
                UpdateWindowArgs(new LogBookArgs {
                    Alert = false, Ratio = 2, Size = 1, TriggerDelta = 0.5
                });
                return;
            }
            Coef         = args.Ratio;
            Size         = args.Size;
            IsAlerting   = args.Alert;
            TriggerDelta = args.TriggerDelta;
        }