/// <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); } }
/// <summary> /// сделать новый адаптер для подключения данных /// </summary> public void CreateNewSecurityConnector() { ConnectorCandles connector = new ConnectorCandles(TabName + Tabs.Count, _startProgram); Tabs.Add(connector); Tabs[Tabs.Count - 1].NewCandlesChangeEvent += BotTabIndex_NewCandlesChangeEvent; }
/// <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 } }
/// <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(); }
/// <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); } }
/// <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(); }; }
/// <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; }
/// <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(); }