Beispiel #1
0
        private void btnLoadData_Click(object sender, EventArgs e)
        {
            //string itemCode = ItemCodeSet.GetItemCode(ItemCode.선물_해외_WTI);
            string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200);
            var    list     = PPContext.Instance.ClientContext.GetSourceData(
                itemCode
                , Lib.Base.Enums.TimeIntervalEnum.Day
                , null
                , tbDT_E.Text
                , 120);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);
            List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>();

            foreach (var m in list)
            {
                S_CandleItemData sourceData = new S_CandleItemData(itemCode
                                                                   , (Single)Math.Round(m.OpenVal, round)
                                                                   , (Single)Math.Round(m.HighVal, round)
                                                                   , (Single)Math.Round(m.LowVal, round)
                                                                   , (Single)Math.Round(m.CloseVal, round)
                                                                   , m.Volume
                                                                   , m.DT
                                                                   );
                sourceDatas.Add(sourceData);
            }

            chartCS1.LoadData(itemCode, sourceDatas);
        }
Beispiel #2
0
 private void timer_TickKr(object state)
 {
     if (!isLogoned)
     {
         return;
     }
     if (isRuning)
     {
         return;
     }
     isRuning = true;
     Task.Factory.StartNew(() => {
         if (isAutoKospi)
         {
             queryUpjong(ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoKosdaq)
         {
             queryUpjong(ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스닥));
             System.Threading.Thread.Sleep(3000 * 6);
         }
     });
     if (!isAutoKospi && !isAutoKosdaq)
     {
         isRuning = false;
     }
 }
Beispiel #3
0
        private void btnRealKr_Click(object sender, EventArgs e)
        {
            if (!isLogoned)
            {
                return;
            }

            btnRealKr.Enabled = false;

            bool isRealKospi    = true;
            bool isRealKospi200 = true;
            bool isRealKosdaq   = true;

            Task.Factory.StartNew(() => {
                if (isRealKospi)
                {
                    Api.Api_IndexReal real = new Api_IndexReal();
                    real.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.지수_국내_코스피));
                    System.Threading.Thread.Sleep(5000);
                }

                if (isRealKospi200)
                {
                    Api.Api_IndexReal real = new Api_IndexReal();
                    real.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.지수_국내_코스피200));
                    System.Threading.Thread.Sleep(5000);
                }

                if (isRealKosdaq)
                {
                    Api.Api_IndexReal real = new Api_IndexReal();
                    real.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.지수_국내_코스닥));
                }
            });
        }
Beispiel #4
0
 private void btnKospi200F_Click(object sender, EventArgs e)
 {
     if (!isLogoned)
     {
         return;
     }
     queryKoreaIndexF(ItemCodeSet.GetItemCode(ItemCode.물_국내_코스피200));
 }
Beispiel #5
0
        private void btnLoadData_Click(object sender, EventArgs e)
        {
            string itemCode = ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI);

            var list = PPContext.Instance.ClientContext.GetSourceData(
                itemCode
                , Lib.Base.Enums.TimeIntervalEnum.Day
                , null
                , tbDT_E.Text
                , 120);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            List <S_CandleItemData> sourceDatas      = new List <S_CandleItemData>();
            List <S_CandleItemData> sourceDatas2     = new List <S_CandleItemData>();
            List <T_MirrorItemData> transformedDatas = new List <T_MirrorItemData>();

            foreach (var m in list)
            {
                S_CandleItemData sourceData = new S_CandleItemData(
                    itemCode
                    , (Single)Math.Round(m.OpenVal, round)
                    , (Single)Math.Round(m.HighVal, round)
                    , (Single)Math.Round(m.LowVal, round)
                    , (Single)Math.Round(m.CloseVal, round)
                    , m.Volume
                    , m.DT
                    );

                sourceDatas.Add(sourceData);
            }
            chartCS1.LoadData(itemCode, sourceDatas);

            foreach (var m in sourceDatas)
            {
                T_MirrorItemData tData = new T_MirrorItemData(m, sourceDatas);
                tData.Transform();
                transformedDatas.Add(tData);
            }

            foreach (var m in transformedDatas)
            {
                S_CandleItemData sourceData = new S_CandleItemData(
                    itemCode
                    , m.T_OpenPrice
                    , m.T_HighPrice
                    , m.T_LowPrice
                    , m.T_ClosePrice
                    , m.Volume
                    , m.DTime
                    );

                sourceDatas2.Add(sourceData);
            }
            chartCS2.LoadData(itemCode, sourceDatas2);
        }
Beispiel #6
0
        private void timer_Tick(object state)
        {
            if (isRuning)
            {
                return;
            }

            isRuning = true;
            if (isAutoKoreaIndex)
            {
                queryKoreaIndexR(ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200));
                System.Threading.Thread.Sleep(3000);
            }
            if (isAutoKoreaFuture)
            {
                queryKoreaIndexFR(ItemCodeSet.GetItemCode(ItemCode.물_국내_코스피200));
                System.Threading.Thread.Sleep(3000);
            }

            if (isAutoFFGC)
            {
                queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_GOLD));
                System.Threading.Thread.Sleep(3000);
            }
            if (isAutoFFNG)
            {
                queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_NG));
                System.Threading.Thread.Sleep(3000);
            }
            if (isAutoFFSI)
            {
                queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_SILVER));
                System.Threading.Thread.Sleep(3000);
            }
            if (isAutoFFCL)
            {
                queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI));
                System.Threading.Thread.Sleep(3000);
            }
            if (isAutoFFNQ)
            {
                queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_나스닥));
                System.Threading.Thread.Sleep(3000);
            }
            if (isAutoFFHSI)
            {
                queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_항셍));
                System.Threading.Thread.Sleep(3000);
            }
            if (isAutoFFURO)
            {
                queryFFR(ItemCodeSet.GetItemCode(ItemCode.물_해외_유로FX));
                System.Threading.Thread.Sleep(3000);
            }
            isRuning = false;
        }
Beispiel #7
0
        private void Run(object o)
        {
            string itemCode = (string)o;

            string lastPrice = "";

            LimitedList <double> ll3 = new LimitedList <double>(3);
            LimitedList <double> ll5 = new LimitedList <double>(5);
            LimitedList <double> ll7 = new LimitedList <double>(7);

            int rnd = ItemCodeSet.GetItemRoundNum(itemCode);

            while (true)
            {
                if (!SiseStorage.Instance.Prices.ContainsKey(itemCode))
                {
                    System.Threading.Thread.Sleep(1000);
                    continue;
                }

                var priceQueue = SiseStorage.Instance.Prices[itemCode];

                if (priceQueue.Count == 0)
                {
                    System.Threading.Thread.Sleep(100);
                    continue;
                }
                CurrentPrice price;
                var          isDequeue = priceQueue.TryDequeue(out price);
                if (isDequeue)
                {
                    if (lastPrice == price.price)
                    {
                        continue;
                    }
                    lastPrice = price.price;

                    double d = Math.Round(Convert.ToDouble(lastPrice), rnd);
                    ll3.Insert(d);
                    ll5.Insert(d);
                    ll7.Insert(d);
                    price.price3 = ll3.Count == 3 ? Math.Round(ll3.Average(), rnd) : 0;
                    price.price5 = ll3.Count == 5 ? Math.Round(ll5.Average(), rnd) : 0;
                    price.price7 = ll3.Count == 7 ? Math.Round(ll7.Average(), rnd) : 0;

                    SiseEvents.Instance.OnSiseHandler(itemCode, price);

                    PPStorage.Instance.Add(itemCode, price.DTime, (Single)Math.Round(Convert.ToSingle(price.price), rnd));

                    if (isSiseBinding)
                    {
                        BindSise(itemCode, price);
                    }
                }
            }
        }
Beispiel #8
0
        private void btnLoadData_Click(object sender, EventArgs e)
        {
            string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200);

            var list = PPContext.Instance.ClientContext.GetSourceData(
                itemCode
                , Lib.Base.Enums.TimeIntervalEnum.Day
                , null
                , tbDT_E.Text
                , 120);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            List <S_CandleItemData>  sourceDatas       = new List <S_CandleItemData>();
            List <T_AtomItemData>    transformedDatas  = new List <T_AtomItemData>();
            List <T_QuantumItemData> transformedDatas2 = new List <T_QuantumItemData>();

            foreach (var m in list)
            {
                S_CandleItemData sourceData = new S_CandleItemData(
                    itemCode
                    , (Single)Math.Round(m.OpenVal, round)
                    , (Single)Math.Round(m.HighVal, round)
                    , (Single)Math.Round(m.LowVal, round)
                    , (Single)Math.Round(m.CloseVal, round)
                    , m.Volume
                    , m.DT
                    );

                sourceDatas.Add(sourceData);
            }

            int itemsCnt = 7;

            for (int i = itemsCnt; i < sourceDatas.Count; i++)
            {
                T_AtomItemData transData = new T_AtomItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt));
                transData.Transform();
                transformedDatas.Add(transData);
            }
            chartAT1.LoadData(itemCode, transformedDatas);


            itemsCnt = 7;
            for (int i = itemsCnt; i < sourceDatas.Count; i++)
            {
                T_QuantumItemData transData = new T_QuantumItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt));
                transData.Transform();
                transformedDatas2.Add(transData);
            }
            chartQL1.LoadData(itemCode, transformedDatas2);
        }
Beispiel #9
0
        public static double GetDownPriceOfTick(string itemCode, double p1, int tickNum)
        {
            double tick = ItemCodeSet.GetTick(itemCode);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            p1 = Math.Round(p1, round);

            double p2 = Math.Round((tick * tickNum), round);

            double newPrice = Math.Round(p1 - p2, round);

            return(newPrice);
        }
Beispiel #10
0
        //Console.WriteLine(PriceTick.GetTickDiff("CL", 50.0, 55.0));

        //    Console.WriteLine(PriceTick.GetDownPriceOfRate("CL", 46.23, 6.64));

        //    Console.WriteLine(PriceTick.GetRate("CL", 46.23, 43.16));

        //    Console.WriteLine(PriceTick.GetDownPriceOfTick("CL", 50.0, 10));

        //    Console.WriteLine(PriceTick.GetUpPriceOfRatek("CL", 50.0, 10.0));

        //    Console.WriteLine(PriceTick.GetUpPriceOfTick("CL", 50.0, 10));
        public static int GetTickDiff(string itemCode, double p1, double p2)
        {
            double tick = ItemCodeSet.GetTick(itemCode);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            p1 = Math.Round(p1, round);

            p2 = Math.Round(p2, round);

            double diff = Math.Round(Math.Abs(p1 - p2), round);

            return((int)(diff / tick));
        }
Beispiel #11
0
        private void btnLoadData_Click(object sender, EventArgs e)
        {
            string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200);

            var list = PPContext.Instance.ClientContext.GetSourceData(
                itemCode
                , Lib.Base.Enums.TimeIntervalEnum.Day
                , null
                , tbDT_E.Text
                , 120);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            List <S_CandleItemData> sourceDatas      = new List <S_CandleItemData>();
            List <T_QuarkItemData>  transformedDatas = new List <T_QuarkItemData>();

            foreach (var m in list)
            {
                S_CandleItemData sourceData = new S_CandleItemData(
                    itemCode
                    , (Single)Math.Round(m.OpenVal, round)
                    , (Single)Math.Round(m.HighVal, round)
                    , (Single)Math.Round(m.LowVal, round)
                    , (Single)Math.Round(m.CloseVal, round)
                    , m.Volume
                    , m.DT
                    );

                sourceDatas.Add(sourceData);
            }
            chartCS1.LoadData(itemCode, sourceDatas);

            DateTime?dtime = null;

            foreach (var m in sourceDatas.OrderByDescending(t => t.DTime))
            {
                if (dtime != null && dtime.Value <= m.DTime)
                {
                    continue;
                }

                T_QuarkItemData tData = new T_QuarkItemData(m, sourceDatas);
                tData.Transform();
                transformedDatas.Add(tData);

                dtime = tData.DTimeS;
            }
            chartWX1.LoadData(itemCode, transformedDatas.OrderBy(t => t.DTime).ToList());
        }
Beispiel #12
0
        public void OrderBuySell(string itemCode, string position, string tradeType, string orderPrice, string quantity)
        {
            try
            {
                string IsuCodeVal = itemCode;
                if (IsuCodeVal.Length < 4)
                {
                    IsuCodeVal = ItemCodeSet.GetItemSHCodeByCode(itemCode);
                }

                if (position == "매수")
                {
                    position = "2";
                }
                else if (position == "매도")
                {
                    position = "1";
                }

                if (tradeType == "시장가")
                {
                    tradeType = "1";
                }
                else if (tradeType == "지정가")
                {
                    tradeType = "2";
                }

                Api_WorldFutureTrade api = new Api_WorldFutureTrade();
                api.Query(
                    ""
                    , DateTime.Now.ToString("yyyyMMdd")
                    , WorldFutureAccountInfo.계좌번호
                    , WorldFutureAccountInfo.계좌비밀번호
                    , ItemCodeSet.GetItemSHCodeByCode(itemCode)
                    , "1"
                    , position
                    , tradeType
                    , orderPrice
                    , orderPrice
                    , quantity
                    );
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
Beispiel #13
0
        private void BindData(int cnt, ReverseCandleChart chart)
        {
            string itemCode = ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI);
            int    round    = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            var list = PPContext.Instance.ClientContext.GetSourceData(
                itemCode
                , Lib.Base.Enums.TimeIntervalEnum.Day
                , null
                , tbDT_E.Text
                , cnt);
            List <S_CandleItemData> sourceDatas  = new List <S_CandleItemData>();
            List <S_CandleItemData> reverseDatas = new List <S_CandleItemData>();

            foreach (var m in list)
            {
                S_CandleItemData sourceData = new S_CandleItemData(
                    itemCode
                    , (Single)Math.Round(m.OpenVal, round)
                    , (Single)Math.Round(m.HighVal, round)
                    , (Single)Math.Round(m.LowVal, round)
                    , (Single)Math.Round(m.CloseVal, round)
                    , m.Volume
                    , m.DT
                    );
                sourceDatas.Add(sourceData);
            }
            for (int i = 0, j = sourceDatas.Count - 1; i < sourceDatas.Count; i++, j--)
            {
                S_CandleItemData reverseData = new S_CandleItemData(
                    itemCode
                    , sourceDatas[j].ClosePrice
                    , sourceDatas[j].HighPrice
                    , sourceDatas[j].LowPrice
                    , sourceDatas[j].OpenPrice
                    , 0
                    , sourceDatas[i].DTime
                    );
                reverseDatas.Add(reverseData);
            }
            chart.LoadData(itemCode, sourceDatas, reverseDatas);
        }
Beispiel #14
0
        private void OrderAppForm_Load(object sender, EventArgs e)
        {
            tbItemK.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_국내_코스피200);

            tbItemGC.Text  = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_GOLD);
            tbItemNG.Text  = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_NG);
            tbItemSI.Text  = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SILVER);
            tbItemCL.Text  = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_WTI);
            tbItemNQ.Text  = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_나스닥);
            tbItemHSI.Text = ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_항셍);

            OrderInstances.IndexFutureOrderInstance.LogEvent += OrderInstance_LogEvent;

            OrderInstances.WorldFutureOrderInstanceCL.LogEvent  += OrderInstance_LogEvent;
            OrderInstances.WorldFutureOrderInstanceNG.LogEvent  += OrderInstance_LogEvent;
            OrderInstances.WorldFutureOrderInstanceHSI.LogEvent += OrderInstance_LogEvent;
            OrderInstances.WorldFutureOrderInstanceNQ.LogEvent  += OrderInstance_LogEvent;
            OrderInstances.WorldFutureOrderInstanceGC.LogEvent  += OrderInstance_LogEvent;
            OrderInstances.WorldFutureOrderInstanceSI.LogEvent  += OrderInstance_LogEvent;
        }
Beispiel #15
0
        private void btnReal_Click(object sender, EventArgs e)
        {
            if (!isLogoned)
            {
                return;
            }

            btnReal.Enabled = false;

            bool isRealCL  = true;
            bool isRealNG  = true;
            bool isRealGC  = true;
            bool isRealSI  = true;
            bool isRealHSI = true;
            bool isRealNQ  = true;
            bool isRealURO = true;
            bool isRealES  = true;

            Task.Factory.StartNew(() => {
                if (isRealCL)
                {
                    Api.Api_WorldFutureReal realFFCL = new Api_WorldFutureReal();
                    realFFCL.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_WTI), "CL");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealNG)
                {
                    Api.Api_WorldFutureReal realFFNG = new Api_WorldFutureReal();
                    realFFNG.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_NG), "NG");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealGC)
                {
                    Api.Api_WorldFutureReal realFFGC = new Api_WorldFutureReal();
                    realFFGC.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_GOLD), "GC");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealSI)
                {
                    Api.Api_WorldFutureReal realFFSI = new Api_WorldFutureReal();
                    realFFSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SILVER), "SI");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealHSI)
                {
                    Api.Api_WorldFutureReal realFFHSI = new Api_WorldFutureReal();
                    realFFHSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_항셍), "HMH");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealNQ)
                {
                    Api.Api_WorldFutureReal realFFNQ = new Api_WorldFutureReal();
                    realFFNQ.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_나스닥), "NQ");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealURO)
                {
                    Api.Api_WorldFutureReal realFFURO = new Api_WorldFutureReal();
                    realFFURO.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_유로FX), "URO");
                }
                if (isRealES)
                {
                    Api.Api_WorldFutureReal realFFES = new Api_WorldFutureReal();
                    realFFES.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SNP), "ES");
                }
            });
        }
Beispiel #16
0
 private void timer_Tick(object state)
 {
     if (!isLogoned)
     {
         return;
     }
     if (isRuning)
     {
         return;
     }
     isRuning = true;
     Task.Factory.StartNew(() => {
         if (isAutoFFGC)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_GOLD));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoFFNG)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_NG));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoFFSI)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_SILVER));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoFFCL)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_WTI));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoFFNQ)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_나스닥));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoFFHSI)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_항셍));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoFFURO)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_유로FX));
             System.Threading.Thread.Sleep(3000 * 6);
         }
         if (isAutoFFES)
         {
             queryFF(ItemCodeSet.GetItemCode(ItemCode.물_해외_SNP));
             System.Threading.Thread.Sleep(3000 * 6);
         }
     });
     if (!isAutoFFGC &&
         !isAutoFFNG &&
         !isAutoFFSI &&
         !isAutoFFCL &&
         !isAutoFFNQ &&
         !isAutoFFHSI &&
         !isAutoFFURO &&
         !isAutoFFES)
     {
         isRuning = false;
     }
 }
Beispiel #17
0
        private void btnKospiSeparate_Click(object sender, EventArgs e)
        {
            if (!isLogoned)
            {
                return;
            }
            //string itemCode = ItemCodeSet.GetItemCode(ItemCode.선물_국내_코스피200);
            string itemCode = ItemCodeSet.GetItemCode(ItemCode.물_국내_코스피200);
            Button btn      = sender as Button;

            Task.Factory.StartNew(() =>
            {
                switch (btn.Text)
                {
                case "1분":
                    apiIndex.Query(itemCode, "1", "1", "100");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexF.Query(itemCode, "1", "1", "100");
                    break;

                case "5분":
                    apiIndex.Query(itemCode, "1", "5", "50");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexF.Query(itemCode, "1", "5", "50");
                    break;

                case "10분":
                    apiIndex.Query(itemCode, "1", "10", "40");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexF.Query(itemCode, "1", "10", "40");
                    break;

                case "30분":
                    apiIndex.Query(itemCode, "1", "30", "30");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexF.Query(itemCode, "1", "30", "30");
                    break;

                case "60분":
                    apiIndex.Query(itemCode, "1", "60", "20");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexF.Query(itemCode, "1", "60", "20");
                    break;

                case "120분":
                    apiIndex.Query(itemCode, "1", "120", "10");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexF.Query(itemCode, "1", "120", "10");
                    break;

                case "일":
                    apiIndex.Query(itemCode, "2", "1", "2");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexFDWM.Query(itemCode, "2", "2");
                    break;

                case "주":
                    apiIndex.Query(itemCode, "3", "1", "1");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexFDWM.Query(itemCode, "3", "1");
                    break;

                case "월":
                    apiIndex.Query(itemCode, "4", "1", "1");
                    System.Threading.Thread.Sleep(3000);
                    apiIndexFDWM.Query(itemCode, "4", "1");
                    break;
                }
            });
        }
Beispiel #18
0
        private void btnReal_Click(object sender, EventArgs e)
        {
            if (!isLogoned)
            {
                return;
            }

            btnReal.Enabled = false;

            bool isRealCL  = chkRealCL.Checked;
            bool isRealNG  = chkRealNG.Checked;
            bool isRealGC  = chkRealGC.Checked;
            bool isRealSI  = chkRealSI.Checked;
            bool isRealHSI = chkRealHSI.Checked;
            bool isRealNQ  = chkRealNQ.Checked;
            bool isRealURO = chkRealURO.Checked;

            Task.Factory.StartNew(() => {
                Api.Api_IndexFutureReal realKF = new Api_IndexFutureReal();
                realKF.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_국내_코스피200), "90199999");
                System.Threading.Thread.Sleep(5000);

                if (isRealCL)
                {
                    Api.Api_WorldFutureReal realFFCL = new Api_WorldFutureReal();
                    realFFCL.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_WTI), "CL");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealNG)
                {
                    Api.Api_WorldFutureReal realFFNG = new Api_WorldFutureReal();
                    realFFNG.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_NG), "NG");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealGC)
                {
                    Api.Api_WorldFutureReal realFFGC = new Api_WorldFutureReal();
                    realFFGC.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_GOLD), "GC");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealSI)
                {
                    Api.Api_WorldFutureReal realFFSI = new Api_WorldFutureReal();
                    realFFSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_SILVER), "SI");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealHSI)
                {
                    Api.Api_WorldFutureReal realFFHSI = new Api_WorldFutureReal();
                    realFFHSI.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_항셍), "HMH");
                    System.Threading.Thread.Sleep(5000);
                }
                if (isRealNQ)
                {
                    Api.Api_WorldFutureReal realFFNQ = new Api_WorldFutureReal();
                    realFFNQ.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_나스닥), "NQ");
                }
                if (isRealURO)
                {
                    Api.Api_WorldFutureReal realFFNQ = new Api_WorldFutureReal();
                    realFFNQ.Query(ItemCodeSet.GetItemSHCodeByName(ItemCode.물_해외_유로FX), "URO");
                }
            });
        }
Beispiel #19
0
        private void btnLoadData_Click(object sender, EventArgs e)
        {
            string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200);

            var list = PPContext.Instance.ClientContext.GetSourceData(
                itemCode
                , Lib.Base.Enums.TimeIntervalEnum.Day
                , null
                , tbDT_E.Text
                , 120);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            List <S_CandleItemData>   sourceDatas       = new List <S_CandleItemData>();
            List <T_VelocityItemData> transformedDatas1 = new List <T_VelocityItemData>();
            List <T_VelocityItemData> transformedDatas2 = new List <T_VelocityItemData>();
            List <T_VelocityItemData> transformedDatas3 = new List <T_VelocityItemData>();

            foreach (var m in list)
            {
                S_CandleItemData sourceData = new S_CandleItemData(
                    itemCode
                    , (Single)Math.Round(m.OpenVal, round)
                    , (Single)Math.Round(m.HighVal, round)
                    , (Single)Math.Round(m.LowVal, round)
                    , (Single)Math.Round(m.CloseVal, round)
                    , m.Volume
                    , m.DT
                    );
                sourceDatas.Add(sourceData);
            }

            int itemsCnt = 20;

            for (int i = itemsCnt; i < sourceDatas.Count; i++)
            {
                T_VelocityItemData transData =
                    new T_VelocityItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt));
                transData.Transform();
                transformedDatas1.Add(transData);
            }


            itemsCnt = 10;
            for (int i = itemsCnt; i < sourceDatas.Count; i++)
            {
                T_VelocityItemData transData =
                    new T_VelocityItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt));
                transData.Transform();
                transformedDatas2.Add(transData);
            }


            itemsCnt = 5;
            for (int i = itemsCnt; i < sourceDatas.Count; i++)
            {
                T_VelocityItemData transData =
                    new T_VelocityItemData(sourceDatas[i], sourceDatas.GetRange(i - itemsCnt, itemsCnt));
                transData.Transform();
                transformedDatas3.Add(transData);
            }

            for (int i = 0; i < numericUpDown1.Value; i++)
            {
                transformedDatas1.Remove(transformedDatas1.Last());
                transformedDatas2.Remove(transformedDatas2.Last());
                transformedDatas3.Remove(transformedDatas3.Last());
            }

            chartVL1.LoadData(itemCode, transformedDatas1);
            chartVL2.LoadData(itemCode, transformedDatas2);
            chartVL3.LoadData(itemCode, transformedDatas3);
        }
Beispiel #20
0
        private void RunKr(object o)
        {
            string itemCode = (string)o;

            string lastPrice = "";

            LimitedList <double> ll3 = new LimitedList <double>(3);
            LimitedList <double> ll5 = new LimitedList <double>(5);
            LimitedList <double> ll7 = new LimitedList <double>(7);

            int rnd = ItemCodeSet.GetItemRoundNum(itemCode);

            while (isRunKr)
            {
                try
                {
                    if (!SiseStorage.Instance.PricesKr.ContainsKey(itemCode))
                    {
                        System.Threading.Thread.Sleep(1000);
                        continue;
                    }

                    var priceQueue = SiseStorage.Instance.PricesKr[itemCode];

                    if (priceQueue.Count == 0)
                    {
                        System.Threading.Thread.Sleep(100);
                        continue;
                    }
                    CurrentPrice price;
                    var          isDequeue = priceQueue.TryDequeue(out price);
                    if (isDequeue)
                    {
                        if (lastPrice == price.price)
                        {
                            continue;
                        }
                        lastPrice = price.price;
                        double d = Math.Round(Convert.ToDouble(lastPrice), rnd);

                        if (!ll3.Contains(d))
                        {
                            ll3.Insert(d);
                        }
                        if (!ll5.Contains(d))
                        {
                            ll5.Insert(d);
                        }
                        if (!ll7.Contains(d))
                        {
                            ll7.Insert(d);
                        }

                        price.price3 = Math.Round(ll3.Average(), rnd);
                        price.price5 = Math.Round(ll5.Average(), rnd);
                        price.price7 = Math.Round(ll7.Average(), rnd);

                        SiseEvents.Instance.OnSiseHandler(itemCode, price);

                        if (isSiseBinding)
                        {
                            BindSise(itemCode, price);
                        }
                    }
                }
                catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); }
            }
        }
Beispiel #21
0
        public static int GetItemCodeRoundNum(string code)
        {
            int num = ItemCodeSet.GetItemRoundNum(code);

            return(num);
        }
Beispiel #22
0
        private void btnLoadData_Click(object sender, EventArgs e)
        {
            TimeIntervalEnum timeInterval = TimeIntervalEnum.Day;

            if (radioButton1.Checked)
            {
                timeInterval = TimeIntervalEnum.Hour_01;
            }
            if (radioButton2.Checked)
            {
                timeInterval = TimeIntervalEnum.Hour_02;
            }
            if (radioButton3.Checked)
            {
                timeInterval = TimeIntervalEnum.Hour_03;
            }
            if (radioButton4.Checked)
            {
                timeInterval = TimeIntervalEnum.Day;
            }

            string itemCode = ItemCodeSet.GetItemCode(ItemCode.지수_국내_코스피200);
            var    list     = PPContext.Instance.ClientContext.GetSourceData(
                itemCode
                , timeInterval
                , null
                , tbDT_E.Text
                , 300);

            int round = ItemCodeUtil.GetItemCodeRoundNum(itemCode);

            List <S_CandleItemData> sourceDatas = new List <S_CandleItemData>();

            foreach (var m in list)
            {
                S_CandleItemData sourceData = new S_CandleItemData(
                    itemCode
                    , (Single)Math.Round(m.OpenVal, round)
                    , (Single)Math.Round(m.HighVal, round)
                    , (Single)Math.Round(m.LowVal, round)
                    , (Single)Math.Round(m.CloseVal, round)
                    , m.Volume
                    , m.DT
                    );

                sourceDatas.Add(sourceData);
            }

            int itemsCnt = 7;
            List <T_AtomItemData> transformedDatas = new List <T_AtomItemData>();

            for (int i = itemsCnt; i <= sourceDatas.Count; i++)
            {
                T_AtomItemData transData = new T_AtomItemData(sourceDatas[i - 1], sourceDatas.GetRange(i - itemsCnt, itemsCnt));
                transData.Transform();
                transformedDatas.Add(transData);
            }
            chartAT1.LoadData(itemCode, transformedDatas, timeInterval);


            List <S_CandleItemData> sourceDatas2 = new List <S_CandleItemData>();

            itemsCnt = 7;
            for (int i = itemsCnt; i < sourceDatas.Count; i++)
            {
                S_CandleItemData transData = new S_CandleItemData(itemCode, sourceDatas.GetRange(i - itemsCnt, itemsCnt));
                sourceDatas2.Add(transData);
            }
            itemsCnt = 7;
            List <T_AtomItemData> transformedDatas2 = new List <T_AtomItemData>();

            for (int i = itemsCnt; i <= sourceDatas2.Count; i++)
            {
                T_AtomItemData transData = new T_AtomItemData(sourceDatas2[i - 1], sourceDatas2.GetRange(i - itemsCnt, itemsCnt));
                transData.Transform();
                transformedDatas2.Add(transData);
            }
            chartAT2.LoadData(itemCode, transformedDatas2, timeInterval);
        }
Beispiel #23
0
        private void Chart_MouseMove(object sender, MouseEventArgs e)
        {
            //if (chart.Annotations.Count == 0)
            //{
            //    createXYLineAnnotation();
            //    createYXLineAnnotation();
            //}

            HitTestResult result = chart.HitTest(e.X, e.Y);

            if (result.ChartArea == null)
            {
                return;
            }

            System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea = result.ChartArea;
            int minX = 0, minY = 0, maxX = 0, maxY = 0;

            minX = (int)chartArea.Position.X;
            maxX = (int)chartArea.Position.X + (int)(chartArea.Position.Width * chart.Width / 100);
            minY = (int)chartArea.Position.Y;
            maxY = (int)chartArea.Position.Y + (int)(chartArea.Position.Height * chart.Height / 100);

            if (e.Location.X < minX)
            {
                return;
            }
            if (e.Location.X > maxX - 50)
            {
                return;
            }
            //if (e.Location.Y < minY) return;
            //if (e.Location.Y > maxY - 20) return;

            var yv = chartArea.AxisY2.PixelPositionToValue(e.Y);

            if (Double.IsInfinity(yv) || Double.IsNaN(yv))
            {
                return;
            }

            if (result.ChartArea.Name == "ca1")
            {
                yLines[0].AnchorY = yv;
            }
            else if (result.ChartArea.Name == "ca2")
            {
                yLines[1].AnchorY = yv;
            }
            else if (result.ChartArea.Name == "ca3")
            {
                yLines[2].AnchorY = yv;
            }
            else if (result.ChartArea.Name == "ca4")
            {
                yLines[3].AnchorY = yv;
            }
            else if (result.ChartArea.Name == "ca5")
            {
                yLines[4].AnchorY = yv;
            }
            else if (result.ChartArea.Name == "ca6")
            {
                yLines[5].AnchorY = yv;
            }
            else
            {
                yLines[0].AnchorY = yv;
            }

            yLineLabel.Visible  = true;
            yLineLabel.Location = new Point(minX, e.Location.Y);
            yLineLabel.Text     = Math.Round(yv, ItemCodeSet.GetItemRoundNum(ItemCode)).ToString();


            var xv = chartArea.AxisX.PixelPositionToValue(e.X);

            if (Double.IsInfinity(xv) || Double.IsNaN(xv))
            {
                return;
            }

            xLineLabel.Location = new Point(e.Location.X - 10, maxY - 20);
            if (result.PointIndex > -1)
            {
                var dtime = DateTime.FromOADate(result.Series.Points[result.PointIndex].XValue);
                xLineLabel.Text    = dtime.ToString(chartArea.AxisX.LabelStyle.Format);
                xLineLabel.Visible = true;
            }
            else
            {
                xLineLabel.Visible = false;
            }

            foreach (var xLine in xLines)
            {
                xLine.AnchorX = xv;
            }
        }