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(); } }
public void OnReceiveRealConditionEventHandler(object sender, _DKHOpenAPIEvents_OnReceiveRealConditionEvent e) { if (OnReceiveRealConditionUri != null) { JObject body = new JObject(); body["sTrCode"] = e.sTrCode; body["strType"] = e.strType; body["strConditionName"] = e.strConditionName; body["strConditionIndex"] = e.strConditionIndex; HttpContent content = new StringContent(body.ToString(), Encoding.UTF8, "application/json"); client.PostAsync(OnReceiveRealConditionUri, content); } }
private void API_OnReceiveRealCondition(object sender, _DKHOpenAPIEvents_OnReceiveRealConditionEvent e) { string type = e.strType.Equals("I") ? "종목편입" : "종목이탈"; Logger(Log.일반, e.strConditionName + ";" + type + ";" + e.sTrCode); if (type.Equals("종목편입")) { OPT10001_주식기본정보 data = new OPT10001_주식기본정보(); data.종목코드 = e.sTrCode; //this.ConditionResultStockList.Add() } else { var found = ConditionResultStockList.Find(x => x.종목코드.Equals(e.sTrCode)); if (found != null) { ConditionResultStockList.Remove(found); } } }
private void API_OnReceiveRealCondition(object sender, _DKHOpenAPIEvents_OnReceiveRealConditionEvent e) { string type = e.strType.Equals("I") ? "종목편입" : "종목이탈"; Logger(Log.일반, e.strConditionName + ";" + type + ";" + e.sTrCode); }