Esempio n. 1
0
 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();
     }
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        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);
                }
            }
        }
Esempio n. 4
0
        private void API_OnReceiveRealCondition(object sender, _DKHOpenAPIEvents_OnReceiveRealConditionEvent e)
        {
            string type = e.strType.Equals("I") ? "종목편입" : "종목이탈";

            Logger(Log.일반, e.strConditionName + ";" + type + ";" + e.sTrCode);
        }