/// <summary> /// Add Group, Update Group, Add Symbol, Update Symbol /// </summary> internal void UpdateGroupVirtualDealerOnline() { List<IVirtualDealer> iVirtualDealers = new List<Business.IVirtualDealer>(); List<int> itemGroup = TradingServer.Facade.FacadeMakeListIAgentGroupManager(this.GroupCondition); for (int i = 0; i < itemGroup.Count; i++) { IVirtualDealer iVirtualDealer = new IVirtualDealer(); iVirtualDealer.SymbolID = -1; iVirtualDealer.InvestorGroupID = itemGroup[i]; iVirtualDealers.Add(iVirtualDealer); } List<int> itemSymbol = TradingServer.Facade.FacadeMakeListSymbolIDManager(this.SymbolCondition); for (int i = 0; i < itemSymbol.Count; i++) { IVirtualDealer iVirtualDealer = new IVirtualDealer(); iVirtualDealer.SymbolID = itemSymbol[i]; iVirtualDealer.InvestorGroupID = -1; iVirtualDealers.Add(iVirtualDealer); } bool check = false; if (this.IVirtualDealer.Count != iVirtualDealers.Count) { check = true; } else { for (int i = this.IVirtualDealer.Count - 1; i >= 0; i--) { if (iVirtualDealers[i].InvestorGroupID != this.IVirtualDealer[i].InvestorGroupID || iVirtualDealers[i].SymbolID != this.IVirtualDealer[i].SymbolID) { check = true; break; } } } if (check) { this.IVirtualDealer = iVirtualDealers; string result = VirtualDealer.DBWAgentInstance.UpdateVirtualSymbol(this); int id; int.TryParse(result, out id); if (id <= 0) { TradingServer.Facade.FacadeAddNewSystemLog(1, "Robot Dealer update filter Group or Symbol failed", "Error", "123", ""); } } }
/// <summary> /// map virtual dealer object from string /// </summary> /// <param name="para">ID}Name}Description}Delay}BeginVolume}EndVolume}ProfitMaxVolume}ProfitMaxPip}LossMaxVolume}LossMaxPip}groupID]syID1[syID2[syID3|groupID]syID1[syID2[syID3</param> /// <returns></returns> internal string MapDealer(string para) { int numInt; double numDouble; bool checkIs; string[] value = para.Split('}'); if (value.Length != 15) { return "parameter wrong"; } if (!int.TryParse(value[0], out numInt)) { return "ID invalid"; } this.ID = numInt; if (string.IsNullOrEmpty(value[1])) { return "Name invalid"; } this.Name = value[1]; if (!int.TryParse(value[2], out numInt)) { return "Delay value invalid"; } this.Delay = numInt; if (!double.TryParse(value[3], out numDouble)) { return "Begin volume value invalid"; } this.StartVolume = numDouble; if (!double.TryParse(value[4], out numDouble)) { return "End volume value invalid"; } this.EndVolume = numDouble; if (!int.TryParse(value[5], out numInt)) { return "Mode invalid"; } this.Mode = numInt; if (!double.TryParse(value[6], out numDouble)) { return "Profit max pip valud invalid"; } this.ProfitMaxPip = numDouble; if (!double.TryParse(value[7], out numDouble)) { return "Loss max pip invalid"; } this.LossMaxPip = numDouble; if (!double.TryParse(value[8], out numDouble)) { return "Additional pip invalid"; } this.AdditionalPip = numDouble; if (!bool.TryParse(value[9], out checkIs)) { return "IsEnable invalid"; } this.IsEnable = checkIs; if (!bool.TryParse(value[10], out checkIs)) { return "IsStopSlippage invalid"; } this.IsStopSlippage = checkIs; if (!bool.TryParse(value[11], out checkIs)) { return "IsLimitAuto invalid"; } this.IsLimitAuto = checkIs; if (!bool.TryParse(value[12], out checkIs)) { return "IsStopAuto invalid"; } this.IsStopAuto = checkIs; this.GroupCondition = value[13]; List<int> itemGroup = TradingServer.Facade.FacadeMakeListIAgentGroupManager(this.GroupCondition); for (int i = 0; i < itemGroup.Count; i++) { IVirtualDealer iVirtualDealer = new IVirtualDealer(); iVirtualDealer.SymbolID = -1; iVirtualDealer.InvestorGroupID = itemGroup[i]; this.IVirtualDealer.Add(iVirtualDealer); } this.SymbolCondition = value[14]; List<int> itemSymbol = TradingServer.Facade.FacadeMakeListSymbolIDManager(this.SymbolCondition); for (int i = 0; i < itemSymbol.Count; i++) { IVirtualDealer iVirtualDealer = new IVirtualDealer(); iVirtualDealer.SymbolID = itemSymbol[i]; iVirtualDealer.InvestorGroupID = -1; this.IVirtualDealer.Add(iVirtualDealer); } return "1"; }