private void GetOpt10060Caller(Opt10060TransType opt10060TransType, string stockCode, string MaxDate, string MinDate)
        {
            if (_opt10060 != null)
            {
                _opt10060.Dispose();
                _opt10060 = null;
            }
            _opt10060 = new ClsOpt10060();
            TaskCompletionSource <bool> tcs = null;

            tcs = new TaskCompletionSource <bool>();
            if (tcs == null || tcs.Task.IsCompleted)
            {
                return;
            }

            DataTable   dtDate = new DataTable();
            KiwoomQuery kiwoom = new KiwoomQuery();

            _opt10060.SetInit(_FormId);

            switch (opt10060TransType)
            {
            case Opt10060TransType.PriceMaesu:
                WriteTextSafe(stockCode + "(" + ClsAxKH.GetMasterCodeName(stockCode) + ")" + " Price(매수)_" + _StockQueue.Count.ToString());
                ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060PriceMaeSu);
                _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "1", MaeMaeGb: "1", UnitG: "", nPrevNext: 0);
                break;

            case Opt10060TransType.PriceMaedo:
                WaitTime();
                WriteTextSafe(stockCode + " Price(매도)_" + _StockQueue.Count.ToString());
                ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060PriceMaedo);
                _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "1", MaeMaeGb: "2", UnitG: "", nPrevNext: 0);
                break;

            case Opt10060TransType.QtyMaesu:
                WaitTime();
                WriteTextSafe(stockCode + " QTY(매수)_" + _StockQueue.Count.ToString());
                ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060MaeSu);
                _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "2", MaeMaeGb: "1", UnitG: "", nPrevNext: 0);
                break;

            case Opt10060TransType.QtyMaeDo:
                WaitTime();
                WriteTextSafe(stockCode + " QTY(매도)_" + _StockQueue.Count.ToString());
                ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060Maedo);
                _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "2", MaeMaeGb: "2", UnitG: "", nPrevNext: 0);
                break;

            default:
                break;
            }

            tcs.SetResult(true);
        }
        private void ExecPs(string stockCode)
        {
            if (_opt10060Ps != null)
            {
                _opt10060Ps.Dispose();
                _opt10060Ps = null;
            }
            _opt10060Ps = new ClsOpt10060();
            _opt10060Ps.Opt10060_OnReceived += new ClsOpt10060.OnReceivedEventHandler(OnReceiveTrData_Opt10060PriceMaeSu);

            WriteTextSafe(stockCode + " Price 매수 작업 중 ");

            Action StartExecPs = (() =>
            {
                _opt10060Ps.SetInit(_FormId + "01");
                _opt10060Ps.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName:  "", AmountQtyGb:  "1", MaeMaeGb: "1", UnitG: "1", nPrevNext: 0);
            });

            StartExecPs();

            return;
        }
        private void ExecQd(string stockCode)
        {
            if (_opt10060Qd != null)
            {
                _opt10060Qd.Dispose();
                _opt10060Qd = null;
            }

            _opt10060Qd = new ClsOpt10060();
            _opt10060Qd.Opt10060_OnReceived += new ClsOpt10060.OnReceivedEventHandler(OnReceiveTrData_Opt10060QtyMaedo);

            WriteTextSafe(stockCode + " Qty 매도 작업 중 ");

            Task t = new Task(() =>
            {
                _opt10060Qd.SetInit(_FormId + "04");
                _opt10060Qs.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "2", MaeMaeGb: "2", UnitG: "1", nPrevNext: 0);
            });

            t.Start();

            return;
        }