示例#1
0
        /// <summary>
        /// purge everything
        /// удалить всё
        /// </summary>
        public void DeleteAll()
        {
            try
            {
                if (File.Exists(@"Engine\" + _name + "AlertKeeper.txt"))
                {
                    File.Delete(@"Engine\" + _name + "AlertKeeper.txt");
                }

                if (_alertArray == null || _alertArray.Count == 0)
                {
                    return;
                }

                for (int i = 0; _alertArray != null &&
                     i < _alertArray.Count; i++)
                {
                    _alertArray[i].Delete();
                }
                _alertArray = new List <IIAlert>();

                _connector   = null;
                _chartMaster = null;
            }
            catch (Exception error)
            {
                SendNewMessage(error.ToString(), LogMessageType.Error);
            }
        }
示例#2
0
        /// <summary>
        /// сделать новый адаптер для подключения данных
        /// </summary>
        public void CreateNewSecurityConnector()
        {
            ConnectorCandles connector = new ConnectorCandles(TabName + Tabs.Count, _startProgram);

            Tabs.Add(connector);
            Tabs[Tabs.Count - 1].NewCandlesChangeEvent += BotTabIndex_NewCandlesChangeEvent;
        }
示例#3
0
        /// <summary>
        /// load /
        /// загрузить настройки из файла
        /// </summary>
        public void Load()
        {
            if (!File.Exists(@"Engine\" + TabName + @"SpreadSet.txt"))
            {
                return;
            }
            try
            {
                using (StreamReader reader = new StreamReader(@"Engine\" + TabName + @"SpreadSet.txt"))
                {
                    string[] save2 = reader.ReadLine().Split('#');
                    for (int i = 0; i < save2.Length - 1; i++)
                    {
                        ConnectorCandles newConnector = new ConnectorCandles(save2[i], _startProgram);
                        newConnector.SaveTradesInCandles = false;

                        Tabs.Add(newConnector);
                        Tabs[Tabs.Count - 1].NewCandlesChangeEvent += BotTabIndex_NewCandlesChangeEvent;
                    }
                    UserFormula = reader.ReadLine();

                    reader.Close();
                }
            }
            catch (Exception)
            {
                // ignore
            }
        }
示例#4
0
 /// <summary>
 /// constructor
 /// конструктор
 /// </summary>
 /// <param name="name">name of owner of alerts repository/имя владельца хранилища алертов</param>
 /// <param name="connector">connector/коннектор</param>
 /// <param name="chartMaster">chart/чарт</param>
 public AlertMaster(string name, ConnectorCandles connector, ChartCandleMaster chartMaster)
 {
     _name        = name;
     _connector   = connector;
     _chartMaster = chartMaster;
     chartMaster.ChartClickEvent += ChartMaster_ChartClickEvent;
     Load();
 }
示例#5
0
        /// <summary>
        /// constructor /
        /// конструктор
        /// </summary>
        public AutoFollowing(string name, StartProgram startProgram)
        {
            TabName      = name;
            StartProgram = startProgram;

            try
            {
                _connector = new ConnectorCandles(TabName, startProgram);
                _connector.OrderChangeEvent               += _connector_OrderChangeEvent;
                _connector.MyTradeEvent                   += _connector_MyTradeEvent;
                _connector.BestBidAskChangeEvent          += _connector_BestBidAskChangeEvent;
                _connector.GlassChangeEvent               += _connector_GlassChangeEvent;
                _connector.TimeChangeEvent                += StrategOneSecurity_TimeServerChangeEvent;
                _connector.NewCandlesChangeEvent          += LogicToEndCandle;
                _connector.LastCandlesChangeEvent         += LogicToUpdateLastCandle;
                _connector.TickChangeEvent                += _connector_TickChangeEvent;
                _connector.LogMessageEvent                += SetNewLogMessage;
                _connector.ConnectorStartedReconnectEvent += _connector_ConnectorStartedReconnectEvent;

                _connector.NewCandlesChangeEvent += _connector_NewCandlesChangeEvent;

                _marketDepthPainter = new MarketDepthPainter(TabName);
                _marketDepthPainter.LogMessageEvent += SetNewLogMessage;

                _journal = new Journal.Journal(TabName, startProgram);

                _journal.PositionStateChangeEvent     += _journal_PositionStateChangeEvent;
                _journal.PositionNetVolumeChangeEvent += _journal_PositionNetVolumeChangeEvent;
                _journal.UserSelectActionEvent        += _journal_UserSelectActionEvent;
                _journal.LogMessageEvent += SetNewLogMessage;


                _chartMaster = new ChartCandleMaster(TabName, StartProgram);
                _chartMaster.LogMessageEvent += SetNewLogMessage;
                _chartMaster.SetNewSecurity(_connector.NamePaper, _connector.TimeFrameBuilder, _connector.PortfolioName, _connector.ServerType);
                _chartMaster.SetPosition(_journal.AllPosition);

                _alerts = new AlertMaster(TabName, _connector, _chartMaster);
                _alerts.LogMessageEvent += SetNewLogMessage;
                _dealCreator             = new PositionCreator();


                _lastTickIndex = 0;
            }
            catch (Exception error)
            {
                SetNewLogMessage(error.ToString(), LogMessageType.Error);
            }
        }
示例#6
0
        /// <summary>
        /// constructor
        /// конструктор
        /// </summary>
        /// <param name="name">name of owner of alerts repository/имя владельца хранилища алертов</param>
        /// <param name="connector">connector/коннектор</param>
        /// <param name="chartMaster">chart/чарт</param>
        public AlertMaster(string name, ConnectorCandles connector, ChartCandleMaster chartMaster)
        {
            _name        = name;
            _connector   = connector;
            _chartMaster = chartMaster;
            chartMaster.ChartClickEvent += ChartMaster_ChartClickEvent;
            Load();

            CreateGrid();
            PaintGridBox();

            OsLocalization.LocalizationTypeChangeEvent += delegate
            {
                CreateGrid();
                PaintGridBox();
            };
        }
示例#7
0
        /// <summary>
        /// constructor /
        /// конструктор
        /// </summary>
        /// <param name="name">bot name / имя робота</param>
        /// <param name="startProgram">class creating program / программа создающая класс</param>
        public BotTabCluster(string name, StartProgram startProgram)
        {
            TabName       = name;
            _startProgram = startProgram;

            CandleConnector = new ConnectorCandles(name, _startProgram);
            CandleConnector.LastCandlesChangeEvent += Tab_LastCandlesChangeEvent;
            CandleConnector.SecuritySubscribeEvent += CandleConnector_SecuritySubscribeEvent;
            CandleConnector.LogMessageEvent        += SendNewLogMessage;

            _horizontalVolume = new HorizontalVolume(name);

            _horizontalVolume.MaxSummClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MaxSummClusterChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MaxBuyClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MaxBuyClusterChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MaxSellClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MaxSellClusterChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MaxDeltaClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MaxDeltaClusterChangeEvent?.Invoke(line);
            };

            _horizontalVolume.MinSummClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MinSummClusterChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MinBuyClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MinBuyClusterChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MinSellClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MinSellClusterChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MinDeltaClusterChangeEvent += delegate(HorizontalVolumeCluster line)
            {
                MinDeltaClusterChangeEvent?.Invoke(line);
            };


            _horizontalVolume.MaxSummLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MaxSummLineChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MaxBuyLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MaxBuyLineChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MaxSellLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MaxSellLineChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MaxDeltaLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MaxDeltaLineChangeEvent?.Invoke(line);
            };

            _horizontalVolume.MinSummLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MinSummLineChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MinBuyLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MinBuyLineChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MinSellLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MinSellLineChangeEvent?.Invoke(line);
            };
            _horizontalVolume.MinDeltaLineChangeEvent += delegate(HorizontalVolumeLine line)
            {
                MinDeltaLineChangeEvent?.Invoke(line);
            };

            _chartMaster = new ChartClusterMaster(name, startProgram, _horizontalVolume);
            _chartMaster.LogMessageEvent += SendNewLogMessage;
        }
示例#8
0
        /// <summary>
        /// конструктор
        /// </summary>
        /// <param name="name">имя владельца хранилища алертов</param>
        /// <param name="connector">коннектор</param>
        /// <param name="chartMaster">чарт</param>
        public AlertMaster(string name, ConnectorCandles connector, ChartMaster chartMaster)
        {
            _name        = name;
            _connector   = connector;
            _chartMaster = chartMaster;
            chartMaster.GetChart().Click += AlertMaster_Click;


            Load();

            GridViewBox = new DataGridView();

            GridViewBox.AllowUserToOrderColumns = true;
            GridViewBox.AllowUserToResizeRows   = true;
            GridViewBox.AutoSizeRowsMode        = DataGridViewAutoSizeRowsMode.AllCells;
            GridViewBox.AllowUserToDeleteRows   = false;
            GridViewBox.AllowUserToAddRows      = false;
            GridViewBox.RowHeadersVisible       = false;
            GridViewBox.SelectionMode           = DataGridViewSelectionMode.FullRowSelect;
            GridViewBox.MultiSelect             = false;

            DataGridViewCellStyle style = new DataGridViewCellStyle();

            style.Alignment = DataGridViewContentAlignment.TopLeft;
            style.WrapMode  = DataGridViewTriState.True;
            GridViewBox.DefaultCellStyle = style;

            DataGridViewTextBoxCell cell0 = new DataGridViewTextBoxCell();

            cell0.Style = style;

            DataGridViewColumn column0 = new DataGridViewColumn();

            column0.CellTemplate = cell0;
            column0.HeaderText   = @"Номер";
            column0.ReadOnly     = true;
            column0.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            //column0.Width = 150;

            GridViewBox.Columns.Add(column0);

            DataGridViewColumn column = new DataGridViewColumn();

            column.CellTemplate = cell0;
            column.HeaderText   = @"Тип";
            column.ReadOnly     = true;
            column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            // column.Width = 150;
            GridViewBox.Columns.Add(column);

            DataGridViewColumn column1 = new DataGridViewColumn();

            column1.CellTemplate = cell0;
            column1.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            column1.ReadOnly     = true;
            // column1.Width = 150;
            column1.HeaderText = @"Статус";
            GridViewBox.Columns.Add(column1);

            GridViewBox.Rows.Add(null, null);
            GridViewBox.Click       += GridViewBox_Click;
            GridViewBox.DoubleClick += GridViewBox_DoubleClick;
            PaintGridBox();
        }