void OnReceiveRealConditions(object sender, _DKHOpenAPIEvents_OnReceiveRealConditionEvent e) { if (e.strType.Equals("I") && Pick.Contains(e.sTrCode) && Ban.Contains(e.sTrCode) == false && Strategics.Any(o => o.Code.Equals(e.sTrCode)) == false && Connect.HoldingStock.ContainsKey(e.sTrCode) == false && int.TryParse(axAPI.GetMasterLastPrice(e.sTrCode), out int price)) { new Task(() => { var sc = new SatisfyConditionsAccordingToTrends { Code = e.sTrCode, Short = AccordingToTrends.Short, Long = AccordingToTrends.Long, Trend = AccordingToTrends.Trend, ReservationSellUnit = AccordingToTrends.ReservationSellUnit, ReservationSellQuantity = AccordingToTrends.ReservationSellQuantity, ReservationSellRate = AccordingToTrends.ReservationSellRate, ReservationBuyUnit = AccordingToTrends.ReservationBuyUnit, ReservationBuyQuantity = AccordingToTrends.ReservationBuyQuantity, ReservationBuyRate = AccordingToTrends.ReservationBuyRate, TradingSellInterval = price / AccordingToTrends.TradingSellInterval, TradingSellQuantity = AccordingToTrends.TradingSellQuantity, TradingSellRate = AccordingToTrends.TradingSellRate, TradingBuyInterval = price / AccordingToTrends.TradingBuyInterval, TradingBuyQuantity = AccordingToTrends.TradingBuyQuantity, TradingBuyRate = AccordingToTrends.TradingBuyRate }; if (Strategics.Add(sc) && Ban.Add(e.sTrCode)) { var count = SetStrategics(sc); SendMessage(string.Concat(e.strConditionName, '_', count), e.sTrCode); SendConditions?.Invoke(this, new SendSecuritiesAPI(SetSatisfyConditions(sc), sc)); } }).Start(); } }
protected bool GetDuplicateResults(Strategics game, string date) { try { using (var db = new GoblinBatDbContext(key)) return(db.Material.Where(o => o.Assets == game.Assets && o.Code.Equals(game.Code) && o.Commission == game.Commission && o.MarginRate == game.MarginRate && o.Strategy.Equals(game.Strategy) && o.RollOver.Equals(game.RollOver) && o.BaseTime == game.BaseTime && o.BaseShort == game.BaseShort && o.BaseLong == game.BaseLong && o.NonaTime == game.NonaTime && o.NonaShort == game.NonaShort && o.NonaLong == game.NonaLong && o.OctaTime == game.OctaTime && o.OctaShort == game.OctaShort && o.OctaLong == game.OctaLong && o.HeptaTime == game.HeptaTime && o.HeptaShort == game.HeptaShort && o.HeptaLong == game.HeptaLong && o.HexaTime == game.HexaTime && o.HexaShort == game.HexaShort && o.HexaLong == game.HexaLong && o.PentaTime == game.PentaTime && o.PentaShort == game.PentaShort && o.PentaLong == game.PentaLong && o.QuadTime == game.QuadTime && o.QuadShort == game.QuadShort && o.QuadLong == game.QuadLong && o.TriTime == game.TriTime && o.TriShort == game.TriShort && o.TriLong == game.TriLong && o.DuoTime == game.DuoTime && o.DuoShort == game.DuoShort && o.DuoLong == game.DuoLong && o.MonoTime == game.MonoTime && o.MonoShort == game.MonoShort && o.MonoLong == game.MonoLong).AsNoTracking().Any(o => o.Date.Equals(date))); } catch (Exception ex) { new ExceptionMessage(ex.TargetSite.Name, game.Strategy); } return(false); }
public ExceptionMessage(Strategics games) => Record(new StringBuilder(where).Append(games.Assets).Append(nCode).Append(games.Code).Append(commission).Append(games.Commission).Append(rate).Append(games.MarginRate).Append(strategy).Append(games.Strategy).Append(over).Append(games.RollOver ? 1 : 0).Append(bs).Append(games.BaseShort).Append(bl).Append(games.BaseLong).Append(nt).Append(games.NonaTime).Append(ns).Append(games.NonaShort).Append(nl).Append(games.NonaLong).Append(ot).Append(games.OctaTime).Append(os).Append(games.OctaShort).Append(ol).Append(games.OctaLong).Append(ht).Append(games.HeptaTime).Append(hs).Append(games.HeptaShort).Append(hl).Append(games.HeptaLong).Append(xt).Append(games.HexaTime).Append(xs).Append(games.HexaShort).Append(xl).Append(games.HexaLong).Append(pt).Append(games.PentaTime).Append(ps).Append(games.PentaShort).Append(pl).Append(games.PentaLong).Append(qt).Append(games.QuadTime).Append(qs).Append(games.QuadShort).Append(ql).Append(games.QuadLong).Append(tt).Append(games.TriTime).Append(ts).Append(games.TriShort).Append(tl).Append(games.TriLong).Append(dt).Append(games.DuoTime).Append(ds).Append(games.DuoShort).Append(dl).Append(games.DuoLong).Append(mt).Append(games.MonoTime).Append(ms).Append(games.MonoShort).Append(ml).Append(games.MonoLong).Append(date).ToString());