/// <summary> /// Initializes a new instance of the <see cref="Connector"/>. /// </summary> /// <param name="initAdapter">Initialize basket adapter.</param> /// <param name="initChannels">Initialize channels.</param> /// <param name="storageRegistry">The storage of market data.</param> /// <param name="snapshotRegistry">Snapshot storage registry.</param> /// <param name="initManagers">Initialize managers.</param> protected Connector(bool initAdapter, bool initChannels = true, IStorageRegistry storageRegistry = null, SnapshotRegistry snapshotRegistry = null, bool initManagers = true) { _entityCache = new EntityCache(this) { ExchangeInfoProvider = new InMemoryExchangeInfoProvider() }; _subscriptionManager = new SubscriptionManager(this); UpdateSecurityLastQuotes = UpdateSecurityByLevel1 = UpdateSecurityByDefinition = true; SupportLevel1DepthBuilder = true; SupportFilteredMarketDepth = true; if (initManagers) { //PnLManager = new PnLManager(); RiskManager = new RiskManager(); } _connectorStat.Add(this); if (initChannels) { InMessageChannel = new InMemoryMessageChannel($"Connector In ({Name})", RaiseError); OutMessageChannel = new InMemoryMessageChannel($"Connector Out ({Name})", RaiseError); } if (initAdapter) { InitAdapter(storageRegistry, snapshotRegistry); } }
private void ProcessRisk(Message message) { foreach (var rule in RiskManager.ProcessRules(message)) { _innerAdapter.AddWarningLog(LocalizedStrings.Str855Params, rule.GetType().GetDisplayName(), rule.Title, rule.Action); switch (rule.Action) { case RiskActions.ClosePositions: { break; } case RiskActions.StopTrading: _innerAdapter.SendInMessage(new DisconnectMessage()); break; case RiskActions.CancelOrders: _innerAdapter.SendInMessage(new OrderGroupCancelMessage { TransactionId = _innerAdapter.TransactionIdGenerator.GetNextId() }); break; default: throw new ArgumentOutOfRangeException(); } } }
private void CalculateRisk_Click(object sender, EventArgs e) { try { if (listView.CheckedItems.Count > 0) { SetTradeVolumeToDefault(); var checkedSynths = new List <FinancialPair>(); foreach (var code in listView.CheckedItems.OfType <ListViewItem>().Select(i => i.Name).ToArray()) { checkedSynths.Add(pairs.First(i => i.Name.ToString() == code)); } var rc = new RiskManager(checkedSynths.ToArray(), balance.Value.ToDouble()); rc.Calculate(); listView_Click(this, null); } else { MessageBox.Show("Pairs are not selected."); } } catch (Exception ex) { MessageBox.Show("CalculateRisk => " + ex.Message); } }
private void Start() { turnText = GameObject.Find("Turn").GetComponent <Text>(); score = GameObject.Find("Score").GetComponent <ScoreMain>(); manager = GameObject.FindGameObjectsWithTag("RiskManager")[0].GetComponent <RiskManager>(); deliverys = GameObject.Find("Deliverys").GetComponent <Deliverys>(); storeController = GameObject.Find("StoreController").GetComponent <StoreController>(); teamController = GameObject.Find("TeamController").GetComponent <TeamController>(); teamControllerStore = GameObject.Find("TeamControllerStore").GetComponent <TeamControllerStore>(); buildController = GameObject.Find("BuildController").GetComponent <BuildController>(); wether = GameObject.Find("Wether").GetComponent <Image>(); score.ChangeScore(-10000000); mounths = new string[12]; mounths[0] = "Июнь"; mounths[1] = "Июль"; mounths[2] = "Август"; mounths[3] = "Сентябрь"; mounths[4] = "Октябрь"; mounths[5] = "Ноябрь"; mounths[6] = "Декабрь"; mounths[7] = "Янаврь"; mounths[8] = "Февраль"; mounths[9] = "Март"; mounths[10] = "Апрель"; mounths[11] = "Май"; }
public void CloseMesseageAndEventRisk() { GameObject panelMesseage = GameObject.FindWithTag("Window"); Destroy(panelMesseage); RiskManager riskManager = GameObject.Find("RiskManager").GetComponent <RiskManager>(); riskManager.RiskCheckEvent(); SetIsAllopenWindow(); }
public void TestRiskManager() { var riskManager = new RiskManager(); //test bad phones Assert.IsTrue(riskManager.CheckForBadPhones("+380111111111")); //test good phones Assert.IsFalse(riskManager.CheckForBadPhones("+380111111005")); }
void Update() { time -= Time.deltaTime; if (time <= 0) { RiskManager riskManager = GameObject.Find("RiskManager").GetComponent <RiskManager>(); riskManager.ShowRisk(); time = 1200f; } ShowTime(); }
public void CloseMesseageAndDeleteResponse() { GameObject panelMesseage = GameObject.FindWithTag("Window");; Destroy(panelMesseage); RiskManager riskManager = GameObject.Find("RiskManager").GetComponent <RiskManager>(); ResponseManager responseManager = GameObject.Find("InventoryData").GetComponent <ResponseManager>(); if (responseManager.responses[riskManager.response] != null) { responseManager.DeleteResponse(riskManager.response); } SetIsAllopenWindow(); }
/// <summary> /// Создать <see cref="ManagedMessageAdapter"/>. /// </summary> /// <param name="innerAdapter">Адаптер, в который будут перенаправляться сообщения.</param> public ManagedMessageAdapter(IMessageAdapter innerAdapter) { if (innerAdapter == null) { throw new ArgumentNullException("innerAdapter"); } _innerAdapter = innerAdapter; _innerAdapter.NewOutMessage += ProcessOutMessage; CommissionManager = new CommissionManager(); LatencyManager = new LatencyManager(); RiskManager = new RiskManager(); }
public void CalculateTest() { Stock[] stocks = CsvUtils.ReadAllDataFrom("csv-samples/", 4, false); List <FinancialPair> pairs = FinancialPair.CreateMany(stocks); RiskManager rm = new RiskManager(pairs.ToArray(), 100000.00); rm.Calculate(); pairs.ForEach(i => { Assert.AreNotEqual(0, i.TradeVolume); }); Assert.AreEqual(100000.00, pairs.Select(i => i.TradeVolume).Sum()); Assert.AreEqual(1, pairs.Select(i => i.Weight).Sum()); }
static void Main(string[] args) { var marketData = CsvUtils.ReadAllDataFrom(MarketDataDirectory, 4, false); var selectedShares = marketData.ToList().FindAll(i => Symbols.Contains(i.Name)); var financialPairs = FinancialPair.CreateMany(selectedShares); var riskManager = new RiskManager(financialPairs, Balance); riskManager.Calculate(); DisplayResults(financialPairs); Console.WriteLine("PRESS 'ENTER' TO EXIT."); Console.ReadLine(); }
void IMessageChannel.SendInMessage(Message message) { if (message.LocalTime.IsDefault()) { message.LocalTime = _innerAdapter.CurrentTime.LocalDateTime; } if (message.Type == MessageTypes.Connect) { LatencyManager.Reset(); CommissionManager.Reset(); RiskManager.Reset(); } else { LatencyManager.ProcessMessage(message); ProcessRisk(message); } _innerAdapter.SendInMessage(message); }
private void Calculate_Click(object sender, RoutedEventArgs e) { try { var checkedPairs = new List <FinancialPair>(); foreach (var item in pairsInfo) { if (item.Selected) { var pair = pairs.Find(i => i.Name == item.Name); if (pair != null) { checkedPairs.Add(pair); } } } if (checkedPairs.Count > 0) { SetTradeVolumeToDefault(); var rc = new RiskManager(checkedPairs.ToArray(), balance.GetDouble()); rc.Calculate(); ShowValuesForPairInfo(); } else { this.Display("Pairs are not selected."); } } catch (Exception ex) { this.Display("CalculateRisk => " + ex.Message); } }