コード例 #1
0
ファイル: ShakraMainForm_Sample.cs プロジェクト: aum-inv/AUM
        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);
        }
コード例 #2
0
ファイル: ExForm2.cs プロジェクト: aum-inv/AUM
        private void FillRenkoChart(List <S_CandleItemData> listCandles, double basePrice)
        {
            if (listCandles == null)
            {
                return;
            }
            int blockSize = 30;

            chart2.Series[0].Points.Clear();
            int candleCount      = 0;
            S_CandleItemData bdc = null;

            foreach (var dc in listCandles)
            {
                int idx = -1;
                if (bdc != null)
                {
                    int renko = PPUtils.GetRenko(dc, bdc, basePrice);
                    if (renko != 0)
                    {
                        int r = Math.Abs(renko);

                        for (int i = 0; i < r; i++)
                        {
                            if (renko > 0)
                            {
                                idx = chart2.Series[0].Points.AddXY(dc.DTime, 1, 0, 0, 1);
                            }
                            else
                            {
                                idx = chart2.Series[0].Points.AddXY(dc.DTime, 1, 0, 1, 0);
                            }

                            chart2.Series[0].Points[idx].Tag = dc;

                            candleCount++;
                        }
                    }
                }
                bdc = dc;
            }

            var chartArea = chart2.ChartAreas[chart2.Series[0].ChartArea];

            chartArea.AxisX.Minimum            = 0;
            chartArea.AxisX.Maximum            = candleCount + 1;
            chartArea.CursorX.AutoScroll       = true;
            chartArea.AxisX.ScaleView.Zoomable = true;
            chartArea.AxisX.ScaleView.SizeType = DateTimeIntervalType.Number;
            int position = candleCount - blockSize;
            int size     = candleCount;

            chartArea.AxisX.ScrollBar.ButtonStyle     = ScrollBarButtonStyles.All;
            chartArea.AxisX.ScaleView.SmallScrollSize = 10;
            chartArea.AxisY2.Maximum = 1.0;
            chartArea.AxisY2.Minimum = 0.0;
            chartArea.AxisY2.Enabled = AxisEnabled.False;
            chartArea.AxisX.ScaleView.Zoom(position, size + 1);
        }
コード例 #3
0
        public static CandlePatternTypeEnum GetCandlePatternType(S_CandleItemData p, S_CandleItemData p1, S_CandleItemData n1)
        {
            CandlePatternTypeEnum type = CandlePatternTypeEnum.Unknown;

            double minPPrice = p.LowPrice;
            double maxPPrice = p.HighPrice;
            double minNPrice = n1.LowPrice;
            double maxNPrice = n1.HighPrice;

            double pDiff   = (maxPPrice - minPPrice);
            double sUPrice = p.ClosePrice + (pDiff * 3.0);
            double sDPrice = p.ClosePrice - (pDiff * 3.0);
            double mUPrice = p.ClosePrice + (pDiff * 2.0);
            double mDPrice = p.ClosePrice - (pDiff * 2.0);
            double wUPrice = p.ClosePrice + (pDiff * 1.0);
            double wDPrice = p.ClosePrice - (pDiff * 1.0);

            if (maxNPrice > sUPrice && minNPrice < sDPrice)
            {
                type = CandlePatternTypeEnum.StrongSide;
            }
            else if (maxNPrice > mUPrice && minNPrice < mDPrice)
            {
                type = CandlePatternTypeEnum.NormalSide;
            }
            else if (maxNPrice > wUPrice && minNPrice < wDPrice)
            {
                type = CandlePatternTypeEnum.WeakSide;
            }

            else if (maxNPrice > sUPrice)
            {
                type = CandlePatternTypeEnum.StrongUp;
            }
            else if (minNPrice < sDPrice)
            {
                type = CandlePatternTypeEnum.StrongDown;
            }

            else if (maxNPrice > mUPrice)
            {
                type = CandlePatternTypeEnum.Up;
            }
            else if (minNPrice < mDPrice)
            {
                type = CandlePatternTypeEnum.Down;
            }

            else if (maxNPrice > wUPrice)
            {
                type = CandlePatternTypeEnum.WeakUp;
            }
            else if (minNPrice < wDPrice)
            {
                type = CandlePatternTypeEnum.WeakDown;
            }

            return(type);
        }
コード例 #4
0
ファイル: Api_WorldFutureDWM.cs プロジェクト: aum-inv/AUM
        protected override void query_ReceiveData(string szTrCode)
        {
            PPContext.Instance.ClientContext.ClearSourceData(ItemCode, TimeInterval);

            Task.Factory.StartNew(() =>
            {
                int blockCnt = Convert.ToInt32(query.GetBlockCount(outBlock1));
                int round    = ItemCodeUtil.GetItemCodeRoundNum(ItemCode);
                for (int idx = 0; idx < blockCnt; idx++)
                {
                    string date  = query.GetFieldData(outBlock1, "date", idx);
                    string time  = "000000";
                    string open  = query.GetFieldData(outBlock1, "open", idx);
                    string high  = query.GetFieldData(outBlock1, "high", idx);
                    string low   = query.GetFieldData(outBlock1, "low", idx);
                    string close = query.GetFieldData(outBlock1, "close", idx);
                    //string jdiff_vol = query.GetFieldData(outBlock1, "jdiff_vol", idx);
                    //string value = query.GetFieldData(outBlock1, "value", idx);

                    if (date.Length == 0)
                    {
                        continue;
                    }

                    /*
                     * OM.Lib.Entity.LitePurushaPrakriti data = new Lib.Entity.LitePurushaPrakriti();
                     * string format = "yyyyMMdd" + (time.Length > 0 ? "HHmmss" : "");
                     * var dt = DateTime.ParseExact(date + time, format, CultureInfo.InvariantCulture);
                     * data.DT = dt;
                     * data.Item = ItemCode;
                     * data.OpenVal = Convert.ToSingle(open);
                     * data.HighVal = Convert.ToSingle(high);
                     * data.LowVal = Convert.ToSingle(low);
                     * data.CloseVal = Convert.ToSingle(close);
                     * data.Volume = 0;
                     * data.Interval = (int)TimeInterval;
                     * PPContext.Instance.ClientContext.SetSourceData(
                     *    ItemCode
                     *  , TimeInterval
                     *  , data);
                     */
                    string format         = "yyyyMMdd" + (time.Length > 0 ? "HHmmss" : "");
                    var dt                = DateTime.ParseExact(date + time, format, CultureInfo.InvariantCulture);
                    S_CandleItemData data = new S_CandleItemData();
                    data.DTime            = dt;
                    data.ItemCode         = ItemCode;
                    data.OpenPrice        = (Single)Math.Round(Convert.ToDouble(open), round);
                    data.HighPrice        = (Single)Math.Round(Convert.ToDouble(high), round);
                    data.LowPrice         = (Single)Math.Round(Convert.ToDouble(low), round);
                    data.ClosePrice       = (Single)Math.Round(Convert.ToDouble(close), round);
                    data.Volume           = 0;
                    PPContext.Instance.ClientContext.SetCandleSourceData(ItemCode, TimeInterval, data);

                    OnApiLog($"date : {date} time : {time} opne : {open} high : {high} low : {low} close : {close} ");
                }
                OnApiLog("Api_WorldFutureDWM ::: query_ReceiveData");
            });
        }
コード例 #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);
        }
コード例 #6
0
        protected override void query_ReceiveData(string szTrCode)
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    int blockCnt = Convert.ToInt32(query.GetBlockCount(outBlock1));
                    int round    = ItemCodeUtil.GetItemCodeRoundNum(ItemCode);

                    for (int idx = 0; idx < blockCnt; idx++)
                    {
                        string date   = query.GetFieldData(outBlock1, "date", idx);
                        string time   = query.GetFieldData(outBlock1, "time", idx);
                        string open   = query.GetFieldData(outBlock1, "open", idx);
                        string high   = query.GetFieldData(outBlock1, "high", idx);
                        string low    = query.GetFieldData(outBlock1, "low", idx);
                        string close  = query.GetFieldData(outBlock1, "price", idx);
                        string volume = query.GetFieldData(outBlock1, "volume", idx);

                        if (date.Length == 0)
                        {
                            continue;
                        }

                        //string format = "yyyyMMdd" + (time.Length > 0 ? "HHmmss" : "");
                        string format = "yyyyMMdd";
                        var dt        = DateTime.ParseExact(date, format, CultureInfo.InvariantCulture);

                        S_CandleItemData data = new S_CandleItemData();
                        data.DTime            = dt;
                        data.ItemCode         = ItemCode;
                        data.OpenPrice        = (Single)Math.Round(Convert.ToDouble(open) * 100, round);
                        data.HighPrice        = (Single)Math.Round(Convert.ToDouble(high) * 100, round);
                        data.LowPrice         = (Single)Math.Round(Convert.ToDouble(low) * 100, round);
                        data.ClosePrice       = (Single)Math.Round(Convert.ToDouble(close) * 100, round);
                        data.Volume           = Convert.ToSingle(volume);

                        PPContext.Instance.ClientContext.SetCandleSourceData(ItemCode, TimeInterval, data);

                        OnApiLog($"date : {date} time : {time} opne : {open} high : {high} low : {low} close : {close} ");
                    }
                    OnApiLog("Api_WorldIndex ::: query_ReceiveData");
                }
                catch (Exception ex)
                {
                    OnApiLog("Error ::: " + ex.Message);
                }
                finally
                {
                    manualEvent.Set();
                }
            });
        }
コード例 #7
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);
        }
コード例 #8
0
ファイル: QuarkMainForm_Sample.cs プロジェクト: aum-inv/AUM
        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());
        }
コード例 #9
0
ファイル: Api_Jongmok.cs プロジェクト: aum-inv/AUM
        protected override void query_ReceiveData(string szTrCode)
        {
            try
            {
                int blockCnt = Convert.ToInt32(query.GetBlockCount(outBlock1));
                int round    = ItemCodeUtil.GetItemCodeRoundNum(ItemCode);

                for (int idx = 0; idx < blockCnt; idx++)
                {
                    string date      = query.GetFieldData(outBlock1, "date", idx);
                    string time      = query.GetFieldData(outBlock1, "time", idx);
                    string open      = query.GetFieldData(outBlock1, "open", idx);
                    string high      = query.GetFieldData(outBlock1, "high", idx);
                    string low       = query.GetFieldData(outBlock1, "low", idx);
                    string close     = query.GetFieldData(outBlock1, "close", idx);
                    string jdiff_vol = query.GetFieldData(outBlock1, "jdiff_vol", idx);
                    string volume    = query.GetFieldData(outBlock1, "value", idx);

                    if (date.Length == 0)
                    {
                        continue;
                    }

                    string format = "yyyyMMdd" + (time.Length > 0 ? "HHmmss" : "");
                    var    dt     = DateTime.ParseExact(date + time, format, CultureInfo.InvariantCulture);

                    S_CandleItemData data = new S_CandleItemData();
                    data.DTime      = dt;
                    data.ItemCode   = ItemCode;
                    data.OpenPrice  = (Single)Math.Round(Convert.ToDouble(open), round);
                    data.HighPrice  = (Single)Math.Round(Convert.ToDouble(high), round);
                    data.LowPrice   = (Single)Math.Round(Convert.ToDouble(low), round);
                    data.ClosePrice = (Single)Math.Round(Convert.ToDouble(close), round);
                    data.Volume     = Convert.ToSingle(volume);

                    returnList.Add(data);
                }

                OnApiLog("Api_Jongmok ::: query_ReceiveData");
            }
            catch (Exception ex)
            {
                OnApiLog("Error ::: " + ex.Message);
            }
            finally
            {
                manualEvent.Set();
            }
        }
コード例 #10
0
        public static CandleSizeTypeEnum GetCandleTotalSizeType(S_CandleItemData p2, S_CandleItemData p1)
        {
            CandleSizeTypeEnum type = CandleSizeTypeEnum.NoMatter;

            if (p2.TotalLength < p1.TotalLength)
            {
                type = CandleSizeTypeEnum.Big;
            }
            else if (p2.TotalLength > p1.TotalLength)
            {
                type = CandleSizeTypeEnum.Small;
            }

            return(type);
        }
コード例 #11
0
        private List <S_CandleItemData> FindCandles(S_CandleItemData candle)
        {
            List <S_CandleItemData> sourcesList = ChartDataSub;
            List <S_CandleItemData> findLists   = new List <S_CandleItemData>();

            var diffDT = candle.DTime.AddMinutes(60 * (int)TimeInterval);

            //if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Day)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_720)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_720)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_480)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_360)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_300)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_240)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_180)
            //    diffDT = candle.DTime.AddMinutes(720);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_120)
            //    diffDT = candle.DTime.AddMinutes(120);
            //else if (TimeInterval == Lib.Base.Enums.TimeIntervalEnum.Minute_60)
            //    diffDT = candle.DTime.AddMinutes(60);


            int idx = sourcesList.FindIndex(t => t.DTime >= diffDT);

            if (idx > DisplaySubItemCount)
            {
                int findIndex  = idx;
                int findLength = idx + DisplaySubItemCount;

                for (int i = findIndex; i < findLength; i++)
                {
                    if (sourcesList.Count > i)
                    {
                        findLists.Add(sourcesList[i]);
                    }
                }
            }

            return(findLists);
        }
コード例 #12
0
ファイル: ExForm2.cs プロジェクト: aum-inv/AUM
        private List <S_CandleItemData> findCandles(S_CandleItemData candle, int findMinute, int findCount)
        {
            List <S_CandleItemData> sourcesList = null;
            List <S_CandleItemData> findLists   = new List <S_CandleItemData>();

            if (findMinute == 60)
            {
                sourcesList = listCandles60;
            }
            else if (findMinute == 120)
            {
                sourcesList = listCandles120;
            }
            else if (findMinute == 180)
            {
                sourcesList = listCandles180;
            }
            else if (findMinute == 360)
            {
                sourcesList = listCandles360;
            }
            else if (findMinute == 720)
            {
                sourcesList = listCandles720;
            }

            int idx = sourcesList.FindIndex(t => t.DTime >= candle.DTime);

            if (idx > findCount)
            {
                int findIndex  = idx;
                int findLength = idx + findCount;

                for (int i = findIndex; i < findLength; i++)
                {
                    if (sourcesList.Count > i)
                    {
                        findLists.Add(sourcesList[i]);
                    }
                }
            }
            //findLists.Reverse();
            return(findLists);
        }
コード例 #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);
        }
コード例 #14
0
ファイル: PatternCandleChart.cs プロジェクト: aum-inv/AUM
        public void MoveView(S_CandleItemData data)
        {
            List <S_CandleItemData> viewLists = null;
            int maxDisplayIndex = 0;
            int minDisplayIndex = 0;

            foreach (var m in ChartData)
            {
                if (m == data)
                {
                    break;
                }
                maxDisplayIndex++;
            }
            int trackView        = trackBar.Value;
            int displayItemCount = DisplayPointCount * trackView;

            minDisplayIndex = (maxDisplayIndex - displayItemCount);
            if (minDisplayIndex < 0)
            {
                minDisplayIndex = 0;
            }

            int displayCnt = (ChartData.Count - minDisplayIndex) < displayItemCount ? (ChartData.Count - minDisplayIndex) : displayItemCount;

            viewLists = ChartData.GetRange(minDisplayIndex, displayCnt);

            chart.ChartAreas[0].AxisX.Maximum = maxDisplayIndex + 7;
            chart.ChartAreas[0].AxisX.Minimum = minDisplayIndex - 1;

            double maxPrice = viewLists.Max(m => m.HighPrice);
            double minPrice = viewLists.Min(m => m.LowPrice);

            maxPrice = maxPrice + SpaceMaxMin;
            minPrice = minPrice - SpaceMaxMin;

            chart.ChartAreas[0].AxisY2.Maximum = maxPrice;
            chart.ChartAreas[0].AxisY2.Minimum = minPrice;

            chart.Update();
        }
コード例 #15
0
        public void SummaryPrice()
        {
            if (ChartData != null && ChartData.Count == 1)
            {
                S_CandleItemData data    = ChartData[0];
                double           hPrice  = data.PlusMinusType == PlusMinusTypeEnum.양 ? data.VikalaHighPrice : data.QuantumHighPrice;
                double           lPrice  = data.PlusMinusType == PlusMinusTypeEnum.양 ? data.QuantumLowPrice : data.VikalaLowPrice;
                double           mPrice  = data.MassPrice;
                double           qPrice  = data.TotalCenterPrice;
                double           qhPrice = mPrice > qPrice ? mPrice : qPrice;
                double           qlPrice = mPrice < qPrice ? mPrice : qPrice;

                lblH.Text    = Math.Round(hPrice, RoundLength).ToString();
                lblH.Visible = true;
                lblL.Text    = Math.Round(lPrice, RoundLength).ToString();
                lblL.Visible = true;

                lblMH.Text    = Math.Round(qhPrice, RoundLength).ToString();
                lblMH.Visible = true;
                lblML.Text    = Math.Round(qlPrice, RoundLength).ToString();
                lblML.Visible = true;

                lblHTick.Text  = "0";
                lblH.Visible   = true;
                lblLTick.Text  = "0";
                lblL.Visible   = true;
                lblMHTick.Text = "0";
                lblMH.Visible  = true;
                lblMLTick.Text = "0";
                lblML.Visible  = true;

                clearAnnotation();
                CreateBaseLineAnnotation(hPrice, Color.Red);
                CreateBaseLineAnnotation(qhPrice, Color.Fuchsia);
                CreateBaseLineAnnotation(qlPrice, Color.Green);
                CreateBaseLineAnnotation(lPrice, Color.Blue);
                CreatePriceLineAnnotation(0);
            }
        }
コード例 #16
0
        private List <S_CandleItemData> FindCandles(S_CandleItemData candle)
        {
            List <S_CandleItemData> sourcesList = ChartDataSub;
            List <S_CandleItemData> findLists   = new List <S_CandleItemData>();

            int idx = sourcesList.FindIndex(t => t.DTime >= candle.DTime);

            if (idx > DisplaySubItemCount)
            {
                int findIndex  = idx;
                int findLength = idx + DisplaySubItemCount;

                for (int i = findIndex; i < findLength; i++)
                {
                    if (sourcesList.Count > i)
                    {
                        findLists.Add(sourcesList[i]);
                    }
                }
            }

            return(findLists);
        }
コード例 #17
0
ファイル: PatternCandleChart.cs プロジェクト: aum-inv/AUM
        public void DisplayChartLabel(S_CandleItemData data, Color color, string type, string title = "▼")
        {
            foreach (var p in chart.Series[0].Points)
            {
                if (p.Tag as S_CandleItemData == data)
                {
                    TextAnnotation a = new TextAnnotation();
                    a.Font                 = new Font("굴림", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
                    a.Text                 = title;
                    a.ForeColor            = color;
                    a.IsSizeAlwaysRelative = true;
                    a.AnchorAlignment      = ContentAlignment.TopCenter;
                    a.AnchorDataPoint      = p;
                    a.Tag           = type;
                    a.AnchorOffsetY = -5;
                    chart.Annotations.Add(a);

                    break;
                }
            }

            chart.Update();
        }
コード例 #18
0
        private void 천지인(S_CandleItemData item, DataPoint dataPoint)
        {
            try
            {
                T_SLHItemData t_SLH = new T_SLHItemData(item);
                t_SLH.Transform();
                //dataPoint.YValues[0] = t_SLH.T_HighPrice;
                //dataPoint.YValues[1] = t_SLH.T_LowPrice;
                //dataPoint.YValues[2] = t_SLH.T_OpenPrice;
                //dataPoint.YValues[3] = t_SLH.T_ClosePrice;

                if (t_SLH.SLHType == SLHTypeEnum.천)
                {
                    SetDataPointColor(dataPoint, Color.Red, Color.Red, Color.Red);
                }
                else if (t_SLH.SLHType == SLHTypeEnum.지)
                {
                    SetDataPointColor(dataPoint, Color.Blue, Color.Blue, Color.Blue);
                }
                else if (t_SLH.SLHType == SLHTypeEnum.인)
                {
                    SetDataPointColor(dataPoint, Color.Yellow, Color.Yellow, Color.Yellow);
                }

                else if (t_SLH.SLHType == SLHTypeEnum.무)
                {
                    SetDataPointColor(dataPoint, Color.Black, Color.Black, Color.Black);
                }
                else
                {
                    SetDataPointColor(dataPoint, Color.Gray, Color.Gray, Color.White);
                }
            }
            catch (Exception)
            {
            }
        }
コード例 #19
0
        public static CandlePattern_Two GetTwoPatternInfo(S_CandleItemData source)
        {
            var data = new Entities.CandlePattern_Two();

            if (source.PreCandleItem == null)
            {
                return(data);
            }

            var p1 = source.PreCandleItem;
            var p0 = source;

            data.Item               = source.ItemCode;
            data.PlusMinusType_P1   = Convert.ToInt32(p1.PlusMinusType).ToString();
            data.PlusMinusType_P0   = Convert.ToInt32(p0.PlusMinusType).ToString();
            data.CandleSpaceType_P1 = Convert.ToInt32(p1.SpaceType_C).ToString();
            data.CandleSpaceType_P0 = Convert.ToInt32(p0.SpaceType_C).ToString();

            var timeType = PatternUtil.GetCandleTimeType(p1, p0);

            data.CandleTimeType_O_P10 = Convert.ToInt32(timeType.openType).ToString();
            data.CandleTimeType_C_P10 = Convert.ToInt32(timeType.closeType).ToString();
            data.CandleTimeType_H_P10 = Convert.ToInt32(timeType.highType).ToString();
            data.CandleTimeType_L_P10 = Convert.ToInt32(timeType.lowType).ToString();

            var sizeType = PatternUtil.GetCandleBodySizeType(p1, p0);

            data.CandleSizeType_B_P10 = Convert.ToInt32(sizeType).ToString();

            sizeType = PatternUtil.GetCandleTotalSizeType(p1, p0);
            data.CandleSizeType_T_P10 = Convert.ToInt32(sizeType).ToString();

            data.StartDT = p1.DTime;
            data.EndDT   = p0.DTime;

            return(data);
        }
コード例 #20
0
        public void GetSise(CurrentPrice price = null)
        {
            try
            {
                if (candle != null && price != null)
                {
                    var nextTime = candle.DTime.AddMinutes(EnumUtil.GetIntervalValueToMinutes(ruleInfo.TimeType));

                    if (price.DTime < nextTime)
                    {
                        return;
                    }
                }

                PurushaPrakriti pp = new PurushaPrakriti();
                pp.Item         = ruleInfo.Item;
                pp.Interval     = (int)EnumUtil.GetTimeIntervalValue(ruleInfo.TimeType);
                pp.DisplayCount = 5;
                try
                {
                    Entities entities           = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                    List <PurushaPrakriti> list = entities.Cast <PurushaPrakriti>().ToList();

                    List <int> ticks = new List <int>();
                    foreach (var k in list.GetRange(1, 4))
                    {
                        int tick = PriceTick.GetTickDiff(ItemCode
                                                         , Convert.ToDouble(k.OpenVal)
                                                         , Convert.ToDouble(k.CloseVal));

                        ticks.Add(tick);
                    }

                    int avgTick = Convert.ToInt32(ticks.Average());
                    if (avgTick < limitTicks)
                    {
                        avgTick = limitTicks;
                    }

                    var m = list[1];
                    if (candle != null)
                    {
                        if (candle.HighPrice > m.HighVal && candle.LowPrice < m.LowVal)
                        {
                            return;
                        }

                        int tick = PriceTick.GetTickDiff(ItemCode
                                                         , Convert.ToDouble(candle.OpenPrice)
                                                         , Convert.ToDouble(candle.ClosePrice));

                        if (tick < avgTick)
                        {
                            return;
                        }
                    }

                    candle = new S_CandleItemData(ItemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    if (!ruleInfo.IsBuyDone)
                    {
                        InitRule();
                    }
                    else
                    {
                        ruleInfo.IsCanRevenue = true;
                    }
                }
                catch (Exception ex)
                {
                    string err = ex.Message;
                }
            }
            catch (Exception)
            {
            }
        }
コード例 #21
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);
        }
コード例 #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);
        }
コード例 #23
0
ファイル: XingAppForm.cs プロジェクト: aum-inv/AUM
        private void btnFileOpen_Click(object sender, EventArgs e)
        {
            string path = Environment.CurrentDirectory;

            string folder = (sender as Button).Text.ToString();

            string fullPath = System.IO.Path.Combine(path, "data", folder);

            if (!System.IO.Directory.Exists(fullPath))
            {
                return;
            }

            var fileList = Directory.GetFiles(fullPath);

            foreach (var f in fileList)
            {
                TimeIntervalEnum timeIntervalEnum = TimeIntervalEnum.None;

                if (f.IndexOf("(720분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_12;
                }
                else if (f.IndexOf("(480분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_08;
                }
                else if (f.IndexOf("(360분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_06;
                }
                else if (f.IndexOf("(300분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_05;
                }
                else if (f.IndexOf("(240분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_04;
                }
                else if (f.IndexOf("(180분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_03;
                }
                else if (f.IndexOf("(120분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_02;
                }
                else if (f.IndexOf("(60분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Hour_01;
                }
                else if (f.IndexOf("(일)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Day;
                }
                else if (f.IndexOf("(주)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Day;
                }
                else if (f.IndexOf("(01분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Minute_01;
                }
                else if (f.IndexOf("(05분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Minute_05;
                }
                else if (f.IndexOf("(10분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Minute_10;
                }
                else if (f.IndexOf("(30분)") > -1)
                {
                    timeIntervalEnum = TimeIntervalEnum.Minute_30;
                }

                if (timeIntervalEnum == TimeIntervalEnum.None)
                {
                    continue;
                }

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

                using (var reader = new StreamReader(f))
                {
                    while (!reader.EndOfStream)
                    {
                        var line = reader.ReadLine();

                        if (line.StartsWith("["))
                        {
                            continue;
                        }

                        string[] values = null;

                        if (f.ToUpper().EndsWith(".TXT"))
                        {
                            values = line.Split("\t".ToCharArray());
                        }
                        else if (f.ToUpper().EndsWith(".CSV"))
                        {
                            values = line.Split(',');
                        }
                        else
                        {
                            values = line.Split(',');
                        }

                        S_CandleItemData data = new S_CandleItemData();
                        if (timeIntervalEnum == TimeIntervalEnum.Day || timeIntervalEnum == TimeIntervalEnum.Week)
                        {
                            data.DTime      = Convert.ToDateTime(values[0].Trim());
                            data.ItemCode   = folder.ToUpper();
                            data.OpenPrice  = Convert.ToSingle(values[1].Trim());
                            data.HighPrice  = Convert.ToSingle(values[2].Trim());
                            data.LowPrice   = Convert.ToSingle(values[3].Trim());
                            data.ClosePrice = Convert.ToSingle(values[4].Trim());
                            data.Volume     = 0;
                        }
                        else
                        {
                            data.DTime      = Convert.ToDateTime(values[0].Trim() + " " + values[1].Trim());
                            data.ItemCode   = folder.ToUpper();
                            data.OpenPrice  = Convert.ToSingle(values[2].Trim());
                            data.HighPrice  = Convert.ToSingle(values[3].Trim());
                            data.LowPrice   = Convert.ToSingle(values[4].Trim());
                            data.ClosePrice = Convert.ToSingle(values[5].Trim());
                            data.Volume     = 0;
                        }
                        dummyList.Add(data);
                    }
                }

                dummyList.Reverse();
                foreach (var data in dummyList)
                {
                    try
                    {
                        PPContext.Instance.ClientContext.SetCandleSourceData(data.ItemCode, timeIntervalEnum, data);

                        LogWrite($"date : {data.DTime} opne : {data.OpenPrice} high : {data.HighPrice} low : {data.LowPrice} close : {data.ClosePrice} ");
                    }
                    catch (Exception ex)
                    {
                        System.Diagnostics.Debug.WriteLine(ex.Message);
                    }
                }
            }
        }
コード例 #24
0
        public static CandleForcePatternData GetForcePatternInfo(S_CandleItemData source)
        {
            var data = new Entities.CandleForcePatternData();

            if (source.PreCandleItem == null)
            {
                return(data);
            }
            if (source.PreCandleItem.PreCandleItem == null)
            {
                return(data);
            }
            if (source.PreCandleItem.PreCandleItem.PreCandleItem == null)
            {
                return(data);
            }
            if (source.PreCandleItem.PreCandleItem.PreCandleItem.PreCandleItem == null)
            {
                return(data);
            }

            var p3 = source.PreCandleItem.PreCandleItem.PreCandleItem;
            var p2 = source.PreCandleItem.PreCandleItem;
            var p1 = source.PreCandleItem;
            var p0 = source;

            data.Item          = source.ItemCode;
            data.GForceType_P3 = Convert.ToInt32(p3.GForceType).ToString();
            data.GForceType_P2 = Convert.ToInt32(p2.GForceType).ToString();
            data.GForceType_P1 = Convert.ToInt32(p1.GForceType).ToString();
            data.GForceType_P0 = Convert.ToInt32(p0.GForceType).ToString();

            data.EForceType_OC_P3 = Convert.ToInt32(p3.EForceType_OC).ToString();
            data.EForceType_OC_P2 = Convert.ToInt32(p2.EForceType_OC).ToString();
            data.EForceType_OC_P1 = Convert.ToInt32(p1.EForceType_OC).ToString();
            data.EForceType_OC_P0 = Convert.ToInt32(p0.EForceType_OC).ToString();

            data.EForceType_CC_P3 = Convert.ToInt32(p3.EForceType_CC).ToString();
            data.EForceType_CC_P2 = Convert.ToInt32(p2.EForceType_CC).ToString();
            data.EForceType_CC_P1 = Convert.ToInt32(p1.EForceType_CC).ToString();
            data.EForceType_CC_P0 = Convert.ToInt32(p0.EForceType_CC).ToString();

            data.SForceType_O_P3 = Convert.ToInt32(p3.SForceType_O).ToString();
            data.SForceType_O_P2 = Convert.ToInt32(p2.SForceType_O).ToString();
            data.SForceType_O_P1 = Convert.ToInt32(p1.SForceType_O).ToString();
            data.SForceType_O_P0 = Convert.ToInt32(p0.SForceType_O).ToString();

            data.SForceType_H_P3 = Convert.ToInt32(p3.SForceType_H).ToString();
            data.SForceType_H_P2 = Convert.ToInt32(p2.SForceType_H).ToString();
            data.SForceType_H_P1 = Convert.ToInt32(p1.SForceType_H).ToString();
            data.SForceType_H_P0 = Convert.ToInt32(p0.SForceType_H).ToString();

            data.SForceType_L_P3 = Convert.ToInt32(p3.SForceType_L).ToString();
            data.SForceType_L_P2 = Convert.ToInt32(p2.SForceType_L).ToString();
            data.SForceType_L_P1 = Convert.ToInt32(p1.SForceType_L).ToString();
            data.SForceType_L_P0 = Convert.ToInt32(p0.SForceType_L).ToString();

            data.SForceType_C_P3 = Convert.ToInt32(p3.SForceType_C).ToString();
            data.SForceType_C_P2 = Convert.ToInt32(p2.SForceType_C).ToString();
            data.SForceType_C_P1 = Convert.ToInt32(p1.SForceType_C).ToString();
            data.SForceType_C_P0 = Convert.ToInt32(p0.SForceType_C).ToString();

            data.WForceType_T_P3 = Convert.ToInt32(p3.WForceType_T).ToString();
            data.WForceType_T_P2 = Convert.ToInt32(p2.WForceType_T).ToString();
            data.WForceType_T_P1 = Convert.ToInt32(p1.WForceType_T).ToString();
            data.WForceType_T_P0 = Convert.ToInt32(p0.WForceType_T).ToString();

            data.WForceType_H_P3 = Convert.ToInt32(p3.WForceType_H).ToString();
            data.WForceType_H_P2 = Convert.ToInt32(p2.WForceType_H).ToString();
            data.WForceType_H_P1 = Convert.ToInt32(p1.WForceType_H).ToString();
            data.WForceType_H_P0 = Convert.ToInt32(p0.WForceType_H).ToString();

            data.WForceType_B_P3 = Convert.ToInt32(p3.WForceType_B).ToString();
            data.WForceType_B_P2 = Convert.ToInt32(p2.WForceType_B).ToString();
            data.WForceType_B_P1 = Convert.ToInt32(p1.WForceType_B).ToString();
            data.WForceType_B_P0 = Convert.ToInt32(p0.WForceType_B).ToString();

            data.WForceType_L_P3 = Convert.ToInt32(p3.WForceType_L).ToString();
            data.WForceType_L_P2 = Convert.ToInt32(p2.WForceType_L).ToString();
            data.WForceType_L_P1 = Convert.ToInt32(p1.WForceType_L).ToString();
            data.WForceType_L_P0 = Convert.ToInt32(p0.WForceType_L).ToString();

            data.StartDT = p0.DTime;
            data.EndDT   = p0.DTime;

            return(data);
        }
コード例 #25
0
        public static (CandleTimeTypeEnum openType, CandleTimeTypeEnum closeType, CandleTimeTypeEnum highType, CandleTimeTypeEnum lowType) GetCandleTimeType(S_CandleItemData p2, S_CandleItemData p1)
        {
            CandleTimeTypeEnum openType  = CandleTimeTypeEnum.무;
            CandleTimeTypeEnum closeType = CandleTimeTypeEnum.무;
            CandleTimeTypeEnum highType  = CandleTimeTypeEnum.무;
            CandleTimeTypeEnum lowType   = CandleTimeTypeEnum.무;

            if (p2.OpenPrice < p1.OpenPrice)
            {
                openType = CandleTimeTypeEnum.양;
            }
            else if (p2.OpenPrice > p1.OpenPrice)
            {
                openType = CandleTimeTypeEnum.음;
            }

            if (p2.ClosePrice < p1.ClosePrice)
            {
                closeType = CandleTimeTypeEnum.양;
            }
            else if (p2.ClosePrice > p1.ClosePrice)
            {
                closeType = CandleTimeTypeEnum.음;
            }

            if (p2.HighPrice < p1.HighPrice)
            {
                highType = CandleTimeTypeEnum.양;
            }
            else if (p2.HighPrice > p1.HighPrice)
            {
                highType = CandleTimeTypeEnum.음;
            }

            if (p2.ClosePrice < p1.ClosePrice)
            {
                lowType = CandleTimeTypeEnum.양;
            }
            else if (p2.ClosePrice > p1.ClosePrice)
            {
                lowType = CandleTimeTypeEnum.음;
            }

            return(openType, closeType, highType, lowType);
        }
コード例 #26
0
ファイル: PPService.cs プロジェクト: aum-inv/AUM
        //실시간 시세에 맞게 데이터 업데이트
        public void SetCandleSourceDataReal(string itemCode, S_CandleItemData entity)
        {
            try
            {
                LimitedList <S_CandleItemData> list = null;
                TimeIntervalEnum timeInterval       = TimeIntervalEnum.Day;
                switch (timeInterval)
                {
                case TimeIntervalEnum.Minute_01:
                    list = PPStorage.Instance.StorageMin01[itemCode];
                    break;

                case TimeIntervalEnum.Minute_05:
                    list = PPStorage.Instance.StorageMin05[itemCode];
                    break;

                case TimeIntervalEnum.Minute_10:
                    list = PPStorage.Instance.StorageMin10[itemCode];
                    break;

                case TimeIntervalEnum.Minute_30:
                    list = PPStorage.Instance.StorageMin30[itemCode];
                    break;

                case TimeIntervalEnum.Hour_01:
                    list = PPStorage.Instance.StorageMin60[itemCode];
                    break;

                case TimeIntervalEnum.Hour_02:
                    list = PPStorage.Instance.StorageMin120[itemCode];
                    break;

                case TimeIntervalEnum.Hour_03:
                    list = PPStorage.Instance.StorageMin180[itemCode];
                    break;

                case TimeIntervalEnum.Hour_04:
                    list = PPStorage.Instance.StorageMin240[itemCode];
                    break;

                case TimeIntervalEnum.Hour_05:
                    list = PPStorage.Instance.StorageMin300[itemCode];
                    break;

                case TimeIntervalEnum.Hour_06:
                    list = PPStorage.Instance.StorageMin360[itemCode];
                    break;

                case TimeIntervalEnum.Hour_08:
                    list = PPStorage.Instance.StorageMin480[itemCode];
                    break;

                case TimeIntervalEnum.Hour_12:
                    list = PPStorage.Instance.StorageMin720[itemCode];
                    break;

                case TimeIntervalEnum.Day:
                    list = PPStorage.Instance.StorageDay[itemCode];
                    break;

                case TimeIntervalEnum.Week:
                    list = PPStorage.Instance.StorageWeek[itemCode];
                    break;
                }
                if (list == null)
                {
                    return;
                }

                var m = list.Find(t => t.DTime == entity.DTime);
                if (m != null)
                {
                    m.OpenPrice  = entity.OpenPrice;
                    m.HighPrice  = entity.HighPrice;
                    m.LowPrice   = entity.LowPrice;
                    m.ClosePrice = entity.ClosePrice;
                }
                else
                {
                    list.Insert(entity);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
コード例 #27
0
        private void dgvList_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex < 0 || e.RowIndex < 0)
            {
                return;
            }

            S_CandleItemData data = dgvList.Rows[e.RowIndex].Tag as S_CandleItemData;

            selCandleData = data;

            if (e.ColumnIndex == 1)
            {
                var pInfo = PatternUtil.GetTwoPatternInfo(selCandleData);
                pInfo.TimeInterval = Convert.ToInt32(selectedTimeInterval);
                pInfo.Product      = selectedType;
                pInfo.Item         = selectedItem;
                var pList = twoPatterns.GetMatchPatterns(pInfo);

                dgv.Rows.Clear();
                if (pList.Count > 0)
                {
                    lbNoResult.Visible = false;
                }
                else
                {
                    lbNoResult.Visible = true;
                }

                foreach (var p in pList.OrderByDescending(t => t.CandlePatternType))
                {
                    int idx = dgv.Rows.Add(p.Item
                                           , getIntervalToString(p.TimeInterval)
                                           , p.EndDT.ToString("yy.MM.dd HH:mm")
                                           , Convert.ToString((CandlePatternTypeEnum)Convert.ToInt32(p.CandlePatternType)));

                    var type = ((CandlePatternTypeEnum)Convert.ToInt32(p.CandlePatternType));

                    if (type == CandlePatternTypeEnum.Up)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.Red;
                    }
                    else if (type == CandlePatternTypeEnum.Down)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.Blue;
                    }
                    else if (type == CandlePatternTypeEnum.StrongUp)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.DarkRed;
                    }
                    else if (type == CandlePatternTypeEnum.StrongDown)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.DarkBlue;
                    }

                    dgv.Rows[idx].Tag = p;
                }
            }
            if (e.ColumnIndex == 2)
            {
                var pInfo = PatternUtil.GetThreePatternInfo(selCandleData);
                pInfo.TimeInterval = Convert.ToInt32(selectedTimeInterval);
                pInfo.Product      = selectedType;
                pInfo.Item         = selectedItem;

                var pList = threePatterns.GetMatchPatterns(pInfo);

                dgv.Rows.Clear();
                if (pList.Count > 0)
                {
                    lbNoResult.Visible = false;
                }
                else
                {
                    lbNoResult.Visible = true;
                }

                foreach (var p in pList.OrderByDescending(t => t.CandlePatternType))
                {
                    int idx = dgv.Rows.Add(p.Item
                                           , getIntervalToString(p.TimeInterval)
                                           , p.EndDT.ToString("yy.MM.dd HH:mm")
                                           , Convert.ToString((CandlePatternTypeEnum)Convert.ToInt32(p.CandlePatternType)));

                    var type = ((CandlePatternTypeEnum)Convert.ToInt32(p.CandlePatternType));

                    if (type == CandlePatternTypeEnum.Up)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.Red;
                    }
                    else if (type == CandlePatternTypeEnum.Down)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.Blue;
                    }
                    else if (type == CandlePatternTypeEnum.StrongUp)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.DarkRed;
                    }
                    else if (type == CandlePatternTypeEnum.StrongDown)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.DarkBlue;
                    }

                    dgv.Rows[idx].Tag = p;
                }
            }
            if (e.ColumnIndex == 3)
            {
                var pInfo = PatternUtil.GetFourPatternInfo(selCandleData);
                pInfo.TimeInterval = Convert.ToInt32(selectedTimeInterval);
                pInfo.Product      = selectedType;
                pInfo.Item         = selectedItem;

                var pList = fourPatterns.GetMatchPatterns(pInfo);

                dgv.Rows.Clear();
                if (pList.Count > 0)
                {
                    lbNoResult.Visible = false;
                }
                else
                {
                    lbNoResult.Visible = true;
                }

                foreach (var p in pList.OrderByDescending(t => t.CandlePatternType))
                {
                    int idx = dgv.Rows.Add(p.Item
                                           , getIntervalToString(p.TimeInterval)
                                           , p.EndDT.ToString("yy.MM.dd HH:mm")
                                           , Convert.ToString((CandlePatternTypeEnum)Convert.ToInt32(p.CandlePatternType)));

                    var type = ((CandlePatternTypeEnum)Convert.ToInt32(p.CandlePatternType));

                    if (type == CandlePatternTypeEnum.Up)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.Red;
                    }
                    else if (type == CandlePatternTypeEnum.Down)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.Blue;
                    }
                    else if (type == CandlePatternTypeEnum.StrongUp)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.DarkRed;
                    }
                    else if (type == CandlePatternTypeEnum.StrongDown)
                    {
                        dgv.Rows[idx].Cells[3].Style.ForeColor = Color.DarkBlue;
                    }

                    dgv.Rows[idx].Tag = p;
                }
            }

            chart1.ClearChartLabel("1");
            chart1.ClearChartLabel("2");
            chart1.DisplayChartLabel(data, Color.Black, "1");
            chart1.DisplayView();
        }
コード例 #28
0
        public static CandlePatternTypeEnum GetCandlePatternType(S_CandleItemData p, List <S_CandleItemData> pList, List <S_CandleItemData> nList)
        {
            //CandlePatternTypeEnum type = CandlePatternTypeEnum.Unknown;

            //double minPPrice = pList.Min((t => t.LowPrice));
            //double maxPPrice = pList.Max((t => t.HighPrice));

            //double minNPrice = nList.Min((t => t.LowPrice));
            //double maxNPrice = nList.Max((t => t.HighPrice));

            //double pDiff = (maxPPrice - minPPrice);
            //double sUPrice = p.ClosePrice + (pDiff * 1.0);
            //double sDPrice = p.ClosePrice - (pDiff * 1.0);
            //double mUPrice = p.ClosePrice + (pDiff * 0.7);
            //double mDPrice = p.ClosePrice - (pDiff * 0.7);
            //double wUPrice = p.ClosePrice + (pDiff * 0.3);
            //double wDPrice = p.ClosePrice - (pDiff * 0.3);

            //if (maxNPrice > sUPrice && minNPrice < sDPrice) type = CandlePatternTypeEnum.StrongSide;
            //else if (maxNPrice > mUPrice && minNPrice < mDPrice) type = CandlePatternTypeEnum.NormalSide;
            //else if (maxNPrice > wUPrice && minNPrice < wDPrice) type = CandlePatternTypeEnum.WeakSide;

            //else if (maxNPrice > sUPrice) type = CandlePatternTypeEnum.StrongUp;
            //else if (minNPrice < sDPrice) type = CandlePatternTypeEnum.StrongDown;

            //else if (maxNPrice > mUPrice) type = CandlePatternTypeEnum.Up;
            //else if (minNPrice < mDPrice) type = CandlePatternTypeEnum.Down;

            //else if (maxNPrice > wUPrice) type = CandlePatternTypeEnum.WeakUp;
            //else if (minNPrice < wDPrice) type = CandlePatternTypeEnum.WeakDown;

            //return type;


            CandlePatternTypeEnum type = CandlePatternTypeEnum.Unknown;

            double minPPrice = p.LowPrice;
            double maxPPrice = p.HighPrice;

            double minNPrice = nList.Min((t => t.LowPrice));
            double maxNPrice = nList.Max((t => t.HighPrice));

            double pDiff   = (maxPPrice - minPPrice);
            double sUPrice = p.ClosePrice + (pDiff * 3.0);
            double sDPrice = p.ClosePrice - (pDiff * 3.0);
            double mUPrice = p.ClosePrice + (pDiff * 2.0);
            double mDPrice = p.ClosePrice - (pDiff * 2.0);
            double wUPrice = p.ClosePrice + (pDiff * 1.0);
            double wDPrice = p.ClosePrice - (pDiff * 1.0);

            if (maxNPrice > mUPrice && minNPrice < mDPrice && maxNPrice < sUPrice && minNPrice > sDPrice)
            {
                type = CandlePatternTypeEnum.StrongSide;
            }
            else if (maxNPrice > wUPrice && minNPrice < wDPrice && maxNPrice < mUPrice && minNPrice > mDPrice)
            {
                type = CandlePatternTypeEnum.NormalSide;
            }
            else if (maxNPrice < wUPrice && minNPrice > wDPrice)
            {
                type = CandlePatternTypeEnum.WeakSide;
            }

            else if (maxNPrice > sUPrice)
            {
                type = CandlePatternTypeEnum.StrongUp;
            }
            else if (minNPrice < sDPrice)
            {
                type = CandlePatternTypeEnum.StrongDown;
            }

            else if (maxNPrice > mUPrice)
            {
                type = CandlePatternTypeEnum.Up;
            }
            else if (minNPrice < mDPrice)
            {
                type = CandlePatternTypeEnum.Down;
            }

            else if (maxNPrice > wUPrice)
            {
                type = CandlePatternTypeEnum.WeakUp;
            }
            else if (minNPrice < wDPrice)
            {
                type = CandlePatternTypeEnum.WeakDown;
            }

            return(type);
        }
コード例 #29
0
ファイル: Api_KoreaIndex.cs プロジェクト: aum-inv/AUM
        public List <S_CandleItemData> Query(
            string itemCode
            , string gubun = "D" //M : 15Min, H : Hour, D : Day, W : Week, M : Month
            )
        {
            this.ItemCode = itemCode;
            int round = ItemCodeUtil.GetItemCodeRoundNum(ItemCode);

            Task.Factory.StartNew(() => {
                try
                {
                    string symbol = "37427";
                    if (itemCode == "301")
                    {
                        symbol = "38016";
                    }

                    string resolution = gubun;
                    if (gubun == "H" || gubun == "1H")
                    {
                        resolution = "60";
                    }
                    else if (gubun == "2H")
                    {
                        resolution = "120";
                    }
                    else if (gubun == "4H")
                    {
                        resolution = "240";
                    }
                    else if (gubun == "5H")
                    {
                        resolution = "300";
                    }
                    else if (gubun == "M" || gubun == "1M")
                    {
                        resolution = "1";
                    }
                    else if (gubun == "5M")
                    {
                        resolution = "5";
                    }
                    else if (gubun == "15M")
                    {
                        resolution = "15";
                    }
                    else if (gubun == "30M")
                    {
                        resolution = "30";
                    }

                    Int32 from = (Int32)(DateTime.UtcNow.AddYears(-2).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    Int32 to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

                    if (gubun == "M" || gubun == "1M")
                    {
                        from = (Int32)(DateTime.UtcNow.AddDays(-1).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "5M")
                    {
                        from = (Int32)(DateTime.UtcNow.AddDays(-5).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "15M")
                    {
                        from = (Int32)(DateTime.UtcNow.AddDays(-15).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "30M")
                    {
                        from = (Int32)(DateTime.UtcNow.AddMonths(-1).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(1).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "H" || gubun == "1H")
                    {
                        from = (Int32)(DateTime.UtcNow.AddMonths(-2).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "2H")
                    {
                        from = (Int32)(DateTime.UtcNow.AddMonths(-4).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "4H")
                    {
                        from = (Int32)(DateTime.UtcNow.AddMonths(-8).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "5H")
                    {
                        from = (Int32)(DateTime.UtcNow.AddMonths(-10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "W")
                    {
                        from = (Int32)(DateTime.UtcNow.AddYears(-5).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }
                    else if (gubun == "M")
                    {
                        from = (Int32)(DateTime.UtcNow.AddYears(-10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                        to   = (Int32)(DateTime.UtcNow.AddDays(10).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                    }

                    string urlPath         = $"https://tvc4.forexpros.com/1cc1f0b6f392b9fad2b50b7aebef1f7c/1601866558/18/18/88/history?symbol={symbol}&resolution={resolution}&from={from}&to={to}";
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlPath);
                    request.MaximumAutomaticRedirections = 4;
                    request.MaximumResponseHeadersLength = 4;
                    request.Credentials      = CredentialCache.DefaultCredentials;
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                    Stream receiveStream    = response.GetResponseStream();
                    StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);

                    string content = readStream.ReadToEnd();

                    var dyObj = JsonConverter.JsonToDynamicObject(content);
                    int cnt   = dyObj.t.Count;
                    for (int i = 0; i < cnt; i++)
                    {
                        Int64 t        = dyObj.t[i];
                        double o       = dyObj.o[i];
                        double c       = dyObj.c[i];
                        double h       = dyObj.h[i];
                        double l       = dyObj.l[i];
                        DateTime cTime = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(t);
                        //Console.WriteLine($"DT : {cTime.ToLongDateString()} O : {Math.Round(o, 2)}, H : {Math.Round(h, 2)}, L : {Math.Round(l, 2)}, C : {Math.Round(c, 2)}");

                        S_CandleItemData data = new S_CandleItemData();
                        data.DTime            = cTime;
                        data.ItemCode         = ItemCode;
                        data.OpenPrice        = (Single)Math.Round(o, round);
                        data.HighPrice        = (Single)Math.Round(h, round);
                        data.LowPrice         = (Single)Math.Round(l, round);
                        data.ClosePrice       = (Single)Math.Round(c, round);
                        data.Volume           = 0;

                        returnList.Add(data);
                    }
                }
                catch (Exception ex)
                {
                    string err = ex.Message;
                }
                finally
                {
                    manualEvent.Set();
                }
            });
            manualEvent.WaitOne();

            return(returnList);
        }
コード例 #30
0
        private void LoadCandle(string itemCode)
        {
            int             displayCnt = 10;
            PurushaPrakriti pp         = new PurushaPrakriti();

            pp.Item         = itemCode;
            pp.Interval     = (int)EnumUtil.GetTimeIntervalValue("1분");
            pp.DisplayCount = 30;
            try
            {
                Entities entities                  = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                List <PurushaPrakriti>  list       = entities.Cast <PurushaPrakriti>().ToList();
                List <S_CandleItemData> resultList = new List <S_CandleItemData>();
                foreach (var m in list)
                {
                    var item = new S_CandleItemData(itemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    resultList.Add(item);
                }
                PPStorage.Instance.Init01(itemCode, resultList);
            }
            catch (Exception) { }

            pp              = new PurushaPrakriti();
            pp.Item         = itemCode;
            pp.Interval     = (int)EnumUtil.GetTimeIntervalValue("5분");
            pp.DisplayCount = 30;
            try
            {
                Entities entities                  = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                List <PurushaPrakriti>  list       = entities.Cast <PurushaPrakriti>().ToList();
                List <S_CandleItemData> resultList = new List <S_CandleItemData>();
                foreach (var m in list)
                {
                    var item = new S_CandleItemData(itemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    resultList.Add(item);
                }
                PPStorage.Instance.Init05(itemCode, resultList);
            }
            catch (Exception) { }

            pp              = new PurushaPrakriti();
            pp.Item         = itemCode;
            pp.Interval     = (int)EnumUtil.GetTimeIntervalValue("10분");
            pp.DisplayCount = displayCnt;
            try
            {
                Entities entities                  = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                List <PurushaPrakriti>  list       = entities.Cast <PurushaPrakriti>().ToList();
                List <S_CandleItemData> resultList = new List <S_CandleItemData>();
                foreach (var m in list)
                {
                    var item = new S_CandleItemData(itemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    resultList.Add(item);
                }
                PPStorage.Instance.Init10(itemCode, resultList);
            }
            catch (Exception) { }

            pp              = new PurushaPrakriti();
            pp.Item         = itemCode;
            pp.Interval     = (int)EnumUtil.GetTimeIntervalValue("30분");
            pp.DisplayCount = displayCnt;
            try
            {
                Entities entities                  = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                List <PurushaPrakriti>  list       = entities.Cast <PurushaPrakriti>().ToList();
                List <S_CandleItemData> resultList = new List <S_CandleItemData>();
                foreach (var m in list)
                {
                    var item = new S_CandleItemData(itemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    resultList.Add(item);
                }
                PPStorage.Instance.Init30(itemCode, resultList);
            }
            catch (Exception) { }

            pp              = new PurushaPrakriti();
            pp.Item         = itemCode;
            pp.Interval     = (int)EnumUtil.GetTimeIntervalValue("60분");
            pp.DisplayCount = displayCnt;
            try
            {
                Entities entities                  = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                List <PurushaPrakriti>  list       = entities.Cast <PurushaPrakriti>().ToList();
                List <S_CandleItemData> resultList = new List <S_CandleItemData>();
                foreach (var m in list)
                {
                    var item = new S_CandleItemData(itemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    resultList.Add(item);
                }
                PPStorage.Instance.Init60(itemCode, resultList);
            }
            catch (Exception) { }

            pp              = new PurushaPrakriti();
            pp.Item         = itemCode;
            pp.Interval     = (int)EnumUtil.GetTimeIntervalValue("120분");
            pp.DisplayCount = displayCnt;
            try
            {
                Entities entities                  = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                List <PurushaPrakriti>  list       = entities.Cast <PurushaPrakriti>().ToList();
                List <S_CandleItemData> resultList = new List <S_CandleItemData>();
                foreach (var m in list)
                {
                    var item = new S_CandleItemData(itemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    resultList.Add(item);
                }
                PPStorage.Instance.Init120(itemCode, resultList);
            }
            catch (Exception) { }

            pp              = new PurushaPrakriti();
            pp.Item         = itemCode;
            pp.Interval     = (int)EnumUtil.GetTimeIntervalValue("일");
            pp.DisplayCount = displayCnt;
            try
            {
                Entities entities                  = (Entities)pp.Collect(new Query("USP_PP_SIMPLE_LST"));
                List <PurushaPrakriti>  list       = entities.Cast <PurushaPrakriti>().ToList();
                List <S_CandleItemData> resultList = new List <S_CandleItemData>();
                foreach (var m in list)
                {
                    var item = new S_CandleItemData(itemCode, m.OpenVal, m.HighVal, m.LowVal, m.CloseVal, m.Volume, m.DT);

                    resultList.Add(item);
                }
                PPStorage.Instance.InitDay(itemCode, resultList);
            }
            catch (Exception) { }
        }