Beispiel #1
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (Connect.HoldingStock.TryGetValue(e.sRealKey, out Holding hs))
            {
                var param = base.OnReceiveRealData(e, fid);

                if (e.sRealKey[1] == '0' &&
                    double.TryParse(param[0].StartsWith("-") ? param[0].Substring(1) : param[0], out double current) &&
                    double.TryParse(param[1].StartsWith("-") ? param[1].Substring(1) : param[1], out double offer) &&
                    double.TryParse(param[2].StartsWith("-") ? param[2].Substring(1) : param[2], out double bid))
                {
                    hs.Current = current;
                    hs.Offer   = offer;
                    hs.Bid     = bid;
                }
                else if (int.TryParse(param[0].StartsWith("-") ? param[0].Substring(1) : param[0], out int price) &&
                         int.TryParse(param[1].StartsWith("-") ? param[1].Substring(1) : param[1], out int sq) &&
                         int.TryParse(param[2].StartsWith("-") ? param[2].Substring(1) : param[2], out int bq))
                {
                    hs.Current = price;
                    hs.Offer   = sq;
                    hs.Bid     = bq;
                }
            }
        }
Beispiel #2
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (Connect.GetInstance().StocksHeld.TryGetValue(e.sRealKey, out Analysis analysis))
            {
                var data = e.sRealData.Split('\t');

                if (int.TryParse(data[0][0] is '-' ? data[0][1..] : data[0], out int current) && int.TryParse(data[3][0] is '-' ? data[3][1..] : data[3], out int offer) && int.TryParse(data[4][0] is '-' ? data[4][1..] : data[4], out int bid))
Beispiel #3
0
        private void API_OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (e.sRealType == "주식체결")
            {
                string stockCode  = e.sRealKey;
                string stockPrice = Int32.Parse(axKHOpenAPI.GetCommRealData(e.sRealType, 10).Trim()).ToString();
                string stock전일대비  = axKHOpenAPI.GetCommRealData(e.sRealType, 11).Trim();
                string stock등락율   = axKHOpenAPI.GetCommRealData(e.sRealType, 12).Trim().ToPersentage();

                if (ConditionResultStockList.Where(x => x.종목코드.Equals(stockCode)).ToList()[0].현재가.Equals(stockPrice))
                {
                    return;
                }

                ConditionResultStockList.Where(x => x.종목코드.Equals(stockCode)).ToList().ForEach(i => { i.현재가 = stockPrice; i.전일대비 = stock전일대비; i.등락율 = stock등락율; });
                this.dataGridViewStockInfo.DataSource = ConditionResultStockList.Select(x => new { x.종목코드, x.종목명, x.현재가, x.전일대비, x.등락율 }).ToList();

                foreach (DataGridViewRow row in this.dataGridViewStockInfo.Rows)
                {
                    if (row.Cells[0].Value.Equals(stockCode))
                    {
                        this.dataGridViewStockInfo.Rows[row.Index].Selected = true;
                        break;
                    }
                }
            }
        }
Beispiel #4
0
        private void OpenApi_ReceivedRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent real)
        {
            DateTime now = DateTime.Now;

            //DateTime time;
            //var strTime = OpenApi.GetRealData(real.sRealKey, 21);
            //if (DateTime.TryParseExact(strTime,
            //    "HHmmss", CultureInfo.CurrentCulture, DateTimeStyles.None, out time))
            //{
            //    now = new DateTime(now.Year, now.Month, now.Day, time.Hour, time.Minute, time.Second);
            //}

            var askingPrice = new AskingPrice(now);

            for (int i = 0; i < OpenApi.RealPriceCount; ++i)
            {
                askingPrice.Sell.Add(new Asking
                {
                    Price    = Math.Abs(OpenApi.GetRealData(real.sRealKey, i + 41).ToInt()),
                    Quantity = OpenApi.GetRealData(real.sRealKey, i + 61).ToInt(),
                });

                askingPrice.Buy.Add(new Asking
                {
                    Price    = Math.Abs(OpenApi.GetRealData(real.sRealKey, i + 51).ToInt()),
                    Quantity = OpenApi.GetRealData(real.sRealKey, i + 71).ToInt(),
                });
            }

            if (_trader != null)
            {
                _trader.SetAskingPrice(real.sRealKey, askingPrice);
            }
        }
Beispiel #5
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (Connect.HoldingStock.TryGetValue(e.sRealKey, out Holding hs))
            {
                var param = base.OnReceiveRealData(e, fid);

                if (e.sRealKey[1].Equals('0') && double.TryParse(param[1].StartsWith("-") ? param[1].Substring(1) : param[1], out double offer) && double.TryParse(param[2].StartsWith("-") ? param[2].Substring(1) : param[2], out double bid))
                {
                    hs.Offer = offer;
                    hs.Bid   = bid;
                }
                else if (int.TryParse(param[1].StartsWith("-") ? param[1].Substring(1) : param[1], out int sOffer) && int.TryParse(param[2].StartsWith("-") ? param[2].Substring(1) : param[2], out int sBid))
                {
                    hs.Offer = sOffer;
                    hs.Bid   = sBid;
                }
            }
            if (Connect.Futures != null && Connect.Futures.TryGetValue(e.sRealKey, out Analysis.OpenAPI.Collect collect))
            {
                int i    = 0;
                var time = API.GetCommRealData(e.sRealKey, fid[i]);

                if (string.Compare(time, initiate) > i && string.Compare(time, closing) < i)
                {
                    var sb = new StringBuilder();

                    for (i = 0; i < 0x30; i++)
                    {
                        sb.Append(API.GetCommRealData(e.sRealKey, fid[i + 3])).Append(';');
                    }

                    collect.ToCollect(time, sb.Remove(sb.Length - 1, 1));
                }
            }
        }
Beispiel #6
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var param     = base.OnReceiveRealData(e, Fid);
            var operation = Enum.ToObject(typeof(Operation), int.TryParse(param[0], out int number) ? number : char.TryParse(param[0], out char initial) ? initial : null);

            switch (operation)
            {
            case Operation.장시작전:
                if (reservation.Equals(param[1]))
                {
                    Delay.Milliseconds = 0xE7;
                }

                break;

            case Operation.장시작:
                Delay.Milliseconds = 0xC9;
                break;

            case Operation.옵_장마감전_동시호가_종료:
                Delay.Milliseconds = 0xE01;
                break;

            case Operation.장마감:
                Delay.Milliseconds = 0xE11;
                break;
            }
            if (string.IsNullOrEmpty(param[2]) is false && string.IsNullOrEmpty(param[1]) is false && string.IsNullOrEmpty(param[0]) is false)
            {
                if (operation is not null)
                {
                    Send?.Invoke(this, new SendSecuritiesAPI((Operation)operation, param[1], param[^ 1]));
Beispiel #7
0
 private static void AxKHOpenAPI1_OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
 {
     if (ReceivedRealData != null)
     {
         ReceivedRealData(e);
     }
 }
Beispiel #8
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var data = e.sRealData.Split('\t');

            if (string.IsNullOrEmpty(data[6]) is false && string.IsNullOrEmpty(data[1]) is false && string.IsNullOrEmpty(data[0]) is false)
            {
                if (Connect.GetInstance().StocksHeld.TryGetValue(e.sRealKey, out Analysis analysis) && int.TryParse(data[4][0] is '-' ? data[4][1..] : data[4], out int offer) && int.TryParse(data[5][0] is '-' ? data[5][1..] : data[5], out int bid))
Beispiel #9
0
        private void OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            sb = new StringBuilder(512);
            int index = Array.FindIndex(Enum.GetNames(typeof(IRealType.RealType)), o => o.Equals(e.sRealType));

            foreach (int fid in type.Catalog[index])
            {
                sb.Append(axAPI.GetCommRealData(e.sRealKey, fid)).Append(';');
            }

            switch (index)
            {
            case 1:
                if (e.sRealKey.Substring(0, 3).Equals("101"))
                {
                    SendDatum?.Invoke(this, new Datum(sb));
                }
                break;

            case 5:
                string[] find = sb.ToString().Split(';');
                OptionsCalling[e.sRealKey] = double.Parse(find[1].Contains("-") ? find[1].Substring(1) : find[1]);
                break;

            case 7:
                if (sb.ToString().Substring(0, 1).Equals("e") && DeadLine == false)
                {
                    DeadLine    = true;
                    Delay.delay = 4150;
                    Request(Code[0].Substring(0, 8));
                }
                break;
            }
        }
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var param = base.OnReceiveRealData(e, Fid);

            if (char.TryParse(param[0], out char operation))
            {
                switch (operation)
                {
                case '0':
                    if (reservation.Equals(param[1]))
                    {
                        Delay.Milliseconds = 0xE7;
                    }

                    break;

                case '3':
                    Delay.Milliseconds = 0xC9;
                    break;

                case 'e':
                    Delay.Milliseconds = 0xE17;
                    break;

                case '8':
                    Delay.Milliseconds = 0xE11;
                    break;
                }
            }
            if (string.IsNullOrEmpty(param[2]) == false && string.IsNullOrEmpty(param[1]) == false && string.IsNullOrEmpty(param[0]) == false)
            {
                Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', param[0], ';', param[1], ';', param[^ 1]));
Beispiel #11
0
 internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
 {
     if (Connect.HoldingStock.TryGetValue(e.sRealKey, out Holding hs))
     {
         var param = base.OnReceiveRealData(e, fid);
         new Task(() => hs.OnReceiveEvent(param)).Start();
     }
 }
Beispiel #12
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            string time = API.GetCommRealData(e.sRealKey, Fid[0]), current = API.GetCommRealData(e.sRealKey, Fid[1]), volume = API.GetCommRealData(e.sRealKey, Fid[6]);

            if (string.IsNullOrEmpty(volume) == false && string.IsNullOrEmpty(current) == false && string.IsNullOrEmpty(time) == false)
            {
                Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', time, ';', current, ';', volume));
            }
        }
Beispiel #13
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            string price = API.GetCommRealData(e.sRealKey, Fid[0]), offer = API.GetCommRealData(e.sRealKey, Fid[3]), bid = API.GetCommRealData(e.sRealKey, Fid[4]);

            if (string.IsNullOrEmpty(price) == false && string.IsNullOrEmpty(offer) == false && string.IsNullOrEmpty(bid) == false)
            {
                Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', price, ';', offer, ';', bid));
            }
        }
Beispiel #14
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var param = base.OnReceiveRealData(e, Fid);

            if (string.IsNullOrEmpty(param[0]) == false && string.IsNullOrEmpty(param[1]) == false)
            {
                Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', param[0], ';', param[1]));
            }
        }
Beispiel #15
0
 public void UpdateRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent realEvent)
 {
     switch (realEvent.sRealType)
     {
     case "주식호가잔량":
         SetRealOrderBookInfo(realEvent.sRealType);
         break;
     }
 }
Beispiel #16
0
        protected internal virtual string[] OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e, int[] fid)
        {
            var param = new string[fid.Length];

            for (int i = 0; i < fid.Length; i++)
            {
                param[i] = API.GetCommRealData(e.sRealKey, fid[i]);
            }

            return(param);
        }
Beispiel #17
0
 public void OnReceiveRealDataEventHandler(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
 {
     if (OnReceiveRealDataUri != null)
     {
         JObject body = new JObject();
         body["sRealKey"]  = e.sRealKey;
         body["sRealType"] = e.sRealType;
         body["sRealData"] = e.sRealData;
         HttpContent content = new StringContent(body.ToString(), Encoding.UTF8, "application/json");
         client.PostAsync(OnReceiveRealDataUri, content);
     }
 }
Beispiel #18
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var data = e.sRealData.Split('\t');

            if (string.IsNullOrEmpty(data[0]) is false && string.IsNullOrEmpty(data[1]) is false && string.IsNullOrEmpty(data[2]) is false)
            {
                if (Lite)
                {
                    Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', data[0], ';', data[1], ';', data[2]));
                }
            }
        }
Beispiel #19
0
        private void OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            sb = new StringBuilder(512);

            if (e.sRealType.Equals("선물시세"))
            {
                foreach (int fid in new  물시세())
                {
                    sb.Append(axAPI.GetCommRealData(e.sRealKey, fid)).Append(',');
                }

                Send?.Invoke(this, new Datum(sb));

                return;
            }
            if (e.sRealType.Equals("선물호가잔량"))
            {
                foreach (int fid in new  물호가잔량())
                {
                    sb.Append(axAPI.GetCommRealData(e.sRealKey, fid)).Append(',');
                }

                string[] fg = sb.ToString().Split(',');

                if (int.Parse(fg[0]) > 153459)
                {
                    if (fg[52].Contains("-"))
                    {
                        fg[52] = fg[52].Substring(1);
                    }

                    Send?.Invoke(this, new Datum(false, fg[0], double.Parse(fg[52])));
                }
                return;
            }
            if (e.sRealType.Equals("장시작시간"))
            {
                foreach (int fid in new 장시작시간())
                {
                    sb.Append(axAPI.GetCommRealData(e.sRealKey, fid)).Append(',');
                }

                string[] tg = sb.ToString().Split(',');

                if (tg[0].Equals("e") && DeadLine == false)
                {
                    DeadLine = true;

                    Request();
                }
            }
        }
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (Connect.HoldingStock.TryGetValue(e.sRealKey, out Holding hs))
            {
                var param = base.OnReceiveRealData(e, fid);

                if (int.TryParse(param[0].StartsWith("-") ? param[0].Substring(1) : param[0], out int offer) && int.TryParse(param[1].StartsWith("-") ? param[1].Substring(1) : param[1], out int bid))
                {
                    hs.Offer = offer;
                    hs.Bid   = bid;
                }
            }
        }
Beispiel #21
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (Connect.HoldingStock.TryGetValue(e.sRealKey, out Holding hs))
            {
                var param = base.OnReceiveRealData(e, fid);

                if (double.TryParse(param[1][0] == '-' ? param[1].Substring(1) : param[1], out double offer) &&
                    double.TryParse(param[2][0] == '-' ? param[2].Substring(1) : param[2], out double bid))
                {
                    hs.Offer = offer;
                    hs.Bid   = bid;
                }
            }
        }
Beispiel #22
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            string time = API.GetCommRealData(e.sRealKey, Fid[0]), current = API.GetCommRealData(e.sRealKey, Fid[1]), volume = API.GetCommRealData(e.sRealKey, Fid[6]);

            if (string.IsNullOrEmpty(volume) is false && string.IsNullOrEmpty(current) is false && string.IsNullOrEmpty(time) is false)
            {
                if (Connect.GetInstance().StocksHeld.TryGetValue(e.sRealKey, out Analysis analysis) && analysis.Trend is not null && analysis.Trend.Count > 0)
                {
                    analysis.OnReceiveEvent(time, current, volume);
                }

                Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', time, ';', current, ';', volume));
            }
        }
Beispiel #23
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var index = 0;
            var sb    = new StringBuilder(API.GetCommRealData(e.sRealKey, Fid[index]));

            for (index = 0; index < 0x30; index++)
            {
                sb.Append(';').Append(API.GetCommRealData(e.sRealKey, Fid[index + 3]));
            }

            if (sb.Length > 0x1F)
            {
                Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', sb));
            }
        }
Beispiel #24
0
        private void OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            sb = new StringBuilder(512);

            foreach (int fid in Array.Find(catalog, o => o.ToString().Contains(e.sRealType)))
            {
                sb.Append(axAPI.GetCommRealData(e.sRealKey, fid)).Append(',');
            }

            if (e.sRealType.Equals(sRealType[0]))
            {
                SendTick?.Invoke(this, new TickEvent(sb));
                SendDay?.Invoke(this, new DayEvent(sb));

                return;
            }
            if (e.sRealType.Equals(sRealType[1]) && int.Parse(sb.ToString().Substring(0, 6)) > 153459)
            {
                string[] fg = sb.ToString().Split(',');

                if (fg[52].Contains("-"))
                {
                    fg[52] = fg[52].Substring(1);
                }

                double price = double.Parse(fg[52]);

                SendTick?.Invoke(this, new TickEvent(false, fg[0], price, 0));
                SendDay?.Invoke(this, new DayEvent(false, price));

                return;
            }
            if (e.sRealType.Equals(sRealType[2]))
            {
                string[] tg = sb.ToString().Split(',');

                if (tg[0].Equals("e") && Deadline == false)
                {
                    Deadline = true;

                    Request();

                    SendExit?.Invoke(this, new ForceQuit(0));
                }
                return;
            }
            sb = null;
        }
Beispiel #25
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (Connect.HoldingStock.TryGetValue(e.sRealKey, out Holding hs))
            {
                var param = base.OnReceiveRealData(e, fid);

                if (int.TryParse(param[3][0] == '-' ? param[3].Substring(1) : param[3], out int offer) &&
                    int.TryParse(param[4][0] == '-' ? param[4].Substring(1) : param[4], out int bid) &&
                    int.TryParse(param[0][0] == '-' ? param[0].Substring(1) : param[0], out int current))
                {
                    hs.Current = current;
                    hs.Offer   = offer;
                    hs.Bid     = bid;
                }
            }
        }
Beispiel #26
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var param = base.OnReceiveRealData(e, fid);
            int arg   = int.MinValue;

            if (int.TryParse(param[1].Substring(0, 2), out int conclusion))
            {
                switch (param[0])
                {
                case "0":
                    if (param[1].Equals(reservation))
                    {
                        arg = (int)Operation.장시작전;
                        Delay.Milliseconds = 0xE7;
                    }
                    break;

                case "3":
                    foreach (var holding in Connect.HoldingStock)
                    {
                        holding.Value.WaitOrder = true;
                    }

                    arg                = (int)Operation.장시작;
                    DeadLine           = true;
                    Delay.Milliseconds = 0xC9;
                    break;

                case "e" when DeadLine:
                    arg                = (int)Operation.옵_장마감전_동시호가_종료;
                    DeadLine           = false;
                    Delay.Milliseconds = 0xE11;
                    break;

                case "8":
                    arg                = (int)Operation.장마감;
                    DeadLine           = false;
                    Delay.Milliseconds = 0xE12;
                    break;
                }
                if (arg > int.MinValue)
                {
                    Send?.Invoke(this, new SendSecuritiesAPI(arg, conclusion));
                }
            }
            SendMessage(string.Concat(DeadLine, '_', param[0], '_', param[1], '_', param[2]));
        }
Beispiel #27
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            if (Connect.HoldingStock.TryGetValue(e.sRealKey, out Holding hs))
            {
                var param = base.OnReceiveRealData(e, fid);
                new Task(() => hs.OnReceiveEvent(param)).Start();
            }
            if (Connect.Futures != null && Connect.Futures.TryGetValue(e.sRealKey, out Analysis.OpenAPI.Collect collect))
            {
                string temp = API.GetCommRealData(e.sRealKey, fid[6]), time = API.GetCommRealData(e.sRealKey, fid[0]);

                if (string.Compare(time, initiate) > 0 && string.Compare(time, closing) < 0 && int.TryParse(temp, out int volume) && volume != 0)
                {
                    collect.ToCollect(time, new StringBuilder(API.GetCommRealData(e.sRealKey, fid[1])).Append(';').Append(temp));
                }
            }
        }
Beispiel #28
0
        private void API_OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            sw.Reset();
            sw.Start();

            //e.sReadlData 는 참고용이므로 이걸 가지고 데이터를 만들면 안됨, GetCommRealData를 반드시 사용해야 함
            var  type             = e.sRealType; //TypeName(ex,주식체결)
            var  code             = e.sRealKey;  //종목코드
            long Codeticks        = sw.ElapsedTicks;
            long BeforeRealeticks = 0;
            long AfterRealeticks  = 0;

            var Check  = _instanceCollection.ContainsKey(type);
            var Check1 = _instanceCollection.ContainsKey(code);

            if (_instanceCollection.ContainsKey(type) && _instanceCollection[type].ContainsKey(code))
            {
                var instance = _instanceCollection[type][code].Item1;
                var invoker  = _instanceCollection[type][code].Item2;
                //GetRealData의 return은 Real_주식체결 Entity이다

                // 이거 어케 동작하는지 해석 해야 함
                // GetRealData함수 안에서 GetCommRealData호출하여 각종 FID정보 얻어내고 이걸 instance에 전부 매핑함
                BeforeRealeticks = sw.ElapsedTicks;
                invoker?.Invoke(APIContext.API.GetRealData(instance));
                AfterRealeticks = sw.ElapsedTicks;
            }
            long Instanceticks = sw.ElapsedTicks;

            //Debug.WriteLine($"[{type}({code})] : {e.sRealData}");
            Console.WriteLine($"[{type}({code})] :: {e.sRealData}"); // sRealData는 참고용,정확도 떨어지므로 GetCommRealData로 가지고 와야 함
            OnUpdateRealDataInfo(sender, null);

            sw.Stop();
            long   Resultticks = sw.ElapsedTicks;
            double us_Code     = 1000000.0 * (double)Codeticks / Stopwatch.Frequency;
            double us_Before   = 1000000.0 * (double)BeforeRealeticks / Stopwatch.Frequency;
            double us_After    = 1000000.0 * (double)AfterRealeticks / Stopwatch.Frequency;
            double us_Instance = 1000000.0 * (double)Instanceticks / Stopwatch.Frequency;
            double us_Result   = 1000000.0 * (double)Resultticks / Stopwatch.Frequency;

            Console.WriteLine($"Elapsed Time :: Code {us_Code}, BeforeGetRealData {us_Before}, AfterGetRealData {us_After} us_Instance {us_Instance}, Result {us_Result} us");
            Console.WriteLine("");

            //Console.WriteLine("End Time :: " + sw..ElapsedMilliseconds.ToString() + "msec");
        }
Beispiel #29
0
        private void OnReceiveRealData(object sender, _DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            sb = new StringBuilder(512);
            int index = Array.FindIndex(Enum.GetNames(typeof(IRealType.RealType)), o => o.Equals(e.sRealType));

            foreach (int fid in type.Catalog[index])
            {
                sb.Append(axAPI.GetCommRealData(e.sRealKey, fid)).Append(';');
            }

            switch (index)
            {
            case 1:
                if (e.sRealKey.Substring(0, 3).Equals("101"))
                {
                    SendDatum?.Invoke(this, new Datum(sb));
                }
                break;

            case 5:
                string[] find = sb.ToString().Split(';');
                OptionsCalling[e.sRealKey] = double.Parse(find[1].Contains("-") ? find[1].Substring(1) : find[1]);
                break;

            case 7:
                if (sb.ToString().Substring(0, 1).Equals("e") && DeadLine == false)
                {
                    DeadLine    = true;
                    Delay.delay = 4150;

                    if (RemainingDate.Equals(DateTime.Now.ToString("yyyyMMdd")))
                    {
                        Squence = 0;
                        axAPI.SetRealRemove("ALL", axAPI.GetFutureCodeByIndex(1));
                        RemainingDay(axAPI.GetFutureCodeByIndex(0));
                        TimerBox.Show("Futures Options Expiration Date.\n\nThe Data can be Mixed.", "Caution", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, 7651);
                    }
                    Request(Code[0].Substring(0, 8));
                    new TheOld().ForsakeOld(Path.Combine(Application.StartupPath, @"..\Log\"));
                }
                break;
            }
        }
Beispiel #30
0
        internal override void OnReceiveRealData(_DKHOpenAPIEvents_OnReceiveRealDataEvent e)
        {
            var data  = e.sRealData.Split('\t');
            var index = 0;

            if (Lite)
            {
                var sb = new StringBuilder(data[index]);

                for (index = 0; index < 0x30; index++)
                {
                    sb.Append(';').Append(data[index + 3]);
                }

                if (sb.Length > 0x1F)
                {
                    Server.WriteLine(string.Concat(e.sRealType, '|', e.sRealKey, '|', sb));
                }
            }
        }