private TradeCases GetBestCase() { if (MarketName == null) { return(TradeCases.empty); } TradeCases BL1B2 = TradeCases.BL1B2; TradeCases BL2B1 = TradeCases.BL2B1; TradeCases LB1L2 = TradeCases.LB1L2; TradeCases LB2L1 = TradeCases.LB2L1; List <CaseInfo> ciList = new List <CaseInfo>(); ciList.Add(new CaseInfo() { Case = BL1B2, TradeRatio = CasesAnalisys[BL1B2].TradeRatio, WaitingRation = CasesAnalisys[BL1B2].WaitingRatio }); ciList.Add(new CaseInfo() { Case = BL2B1, TradeRatio = CasesAnalisys[BL2B1].TradeRatio, WaitingRation = CasesAnalisys[BL2B1].WaitingRatio }); ciList.Add(new CaseInfo() { Case = LB1L2, TradeRatio = CasesAnalisys[LB1L2].TradeRatio, WaitingRation = CasesAnalisys[LB1L2].WaitingRatio }); ciList.Add(new CaseInfo() { Case = LB2L1, TradeRatio = CasesAnalisys[LB2L1].TradeRatio, WaitingRation = CasesAnalisys[LB2L1].WaitingRatio }); TradeCases result = (from c in ciList where c.TradeRatio < 1 & c.WaitingRation < 1 orderby c.WaitingRation select c.Case).FirstOrDefault(); return(result); }
public static TradeCases ToTradeCase(this object o) { string s = o as string; TradeCases result = TradeCases.empty; if (s != null) { switch (s) { case "BL1B2": result = TradeCases.BL1B2; break; case "BL2B1": result = TradeCases.BL2B1; break; case "LB1L2": result = TradeCases.LB1L2; break; case "LB2L1": result = TradeCases.LB2L1; break; case "BL1LB1": result = TradeCases.BL1LB1; break; case "BL2LB2": result = TradeCases.BL2LB2; break; default: break; } } return(result); }
private void UpdateGrid2() { string[] cases = new string[] { "bl1b2", "bl2b1", "lb1l2", "lb2l1" }; for (int i = 0; i < Row; i++) { MarketBookInformation mbi; if (CurrentRecord == -1 || CurrentMarket.Mbi.Count <= CurrentRecord) // второе условие нужно так как оно, хз почему, иногда не выполняется { mbi = CurrentMarket.Mbi.Last(); } else { mbi = CurrentMarket.Mbi[CurrentRecord]; } if (mbi.CasesAnalisys.ContainsKey(arr[i])) { var tr = mbi.CasesAnalisys[arr[i]].TradeRatio; var wr = mbi.CasesAnalisys[arr[i]].WaitingRatio; bool _isGapExist = mbi.CasesAnalisys[arr[i]].Gap > 0; SolidColorBrush fc = GetForegroundColor(tr, _isGapExist); TextBlock blc; //заполняем TR blc = FindName(cases[i] + "_tr") as TextBlock; blc.Foreground = fc; blc.Text = tr.ToString("N4", CultureInfo.CurrentCulture); //заполняем WR blc = FindName(cases[i] + "_wr") as TextBlock; blc.Foreground = fc; blc.Text = wr.ToString("N2", CultureInfo.CurrentCulture); //заполняем ok для BestCase blc = FindName(cases[i] + "_mwr") as TextBlock; blc.Foreground = fc; TradeCases currentCase = cases[i].ToUpper().ToTradeCase(); TradeCases bestCase = mbi.BestCase; if (currentCase == bestCase && currentCase != TradeCases.empty) { blc.Text = "Ок"; } else { blc.Text = ""; } } if (mbi.CasesAnalisys.ContainsKey(arr[i])) { var tr = mbi.CasesAnalisys[arr[i]].TradeRatio; var wr = mbi.CasesAnalisys[arr[i]].WaitingRatio; bool _isGapExist = mbi.CasesAnalisys[arr[i]].Gap > 0; SolidColorBrush fc = GetForegroundColor(tr, _isGapExist); TextBlock blc; //заполняем TR blc = FindName(cases[i] + "_tr") as TextBlock; blc.Foreground = fc; blc.Text = tr.ToString("N4", CultureInfo.CurrentCulture); //заполняем WR blc = FindName(cases[i] + "_wr") as TextBlock; blc.Foreground = fc; blc.Text = wr.ToString("N2", CultureInfo.CurrentCulture); //заполняем ok для BestCase blc = FindName(cases[i] + "_mwr") as TextBlock; blc.Foreground = fc; TradeCases currentCase = cases[i].ToUpper().ToTradeCase(); TradeCases bestCase = mbi.BestCase; if (currentCase == bestCase && currentCase != TradeCases.empty) { blc.Text = "Ок"; } else { blc.Text = ""; } } } }