Example #1
0
        private void metroLabel5_Click(object sender, EventArgs e)
        {
            string code = tbSelectedCode2.Text;

            TimeIntervalEnum timeInterval    = chkTD.Checked ? TimeIntervalEnum.Day : TimeIntervalEnum.Week;
            string           timeIntervalStr = chkTD.Checked ? "2" : "3";

            Task.Factory.StartNew(() => {
                var sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(code, timeIntervalStr, "0", "300");
                if (sourceDatas == null || sourceDatas.Count == 0)
                {
                    return;
                }
                int totalCnt = sourceDatas.Count;
                if (totalCnt > 300)
                {
                    sourceDatas.RemoveRange(0, totalCnt - 300);
                }

                var averageDatas = PPUtils.GetAverageDatas(code, sourceDatas, 9);
                sourceDatas      = PPUtils.GetCutDatas(sourceDatas, averageDatas[0].DTime);
                chart.LoadDataAndApply(code, sourceDatas, averageDatas, averageDatas, timeInterval, 9);
                chart.SetYFormat("N0");
            });
        }
Example #2
0
 protected void SetChangeOpenPrice(string itemCode, List <S_CandleItemData> sourceDatas)
 {
     if (itemCode == "101" || itemCode == "301")
     {
         PPUtils.SetModifyOpenPriceByClosePrice(sourceDatas);
     }
 }
Example #3
0
        // Purposefully ignore modifiers here - only 2 maps have them enabled and it doesn't make much sense to just filter to those two
        private static float GetHighestPP(IPreviewBeatmapLevel previewBeatmapLevel, bool ppGain)
        {
            float maxPP = 0;
            var   id    = SongDataUtils.GetHash(previewBeatmapLevel.levelID);

            // Check if in SDC
            if (SongDataCore.Plugin.Songs.Data.Songs.ContainsKey(id))
            {
                // Loop through each diff
                foreach (var diff in SongDataCore.Plugin.Songs.Data.Songs[id].diffs)
                {
                    var difficulty = SongDataUtils.GetBeatmapDifficulty(diff.diff);
                    var songID     = new SongID(id, difficulty);
                    // Only go through ranked songs
                    if (SongDataUtils.IsRankedSong(songID))
                    {
                        float pp = PPUtils.CalculatePP(songID, AccLoader.instance.GetAcc(songID));
                        if (ppGain)
                        {
                            pp = PPUtils.GetPPGain(pp, songID);
                        }
                        maxPP = pp > maxPP ? pp : maxPP;
                    }
                }
                return(maxPP);
            }
            return(0);
        }
Example #4
0
        private void dgv_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex < 0 || e.RowIndex < 0)
            {
                return;
            }

            string code = dgv.Rows[e.RowIndex].Cells[0].Value as string;
            string name = dgv.Rows[e.RowIndex].Cells[1].Value as string;

            tbSelectedCode2.Text = code;
            tbSelectedName2.Text = name;

            Task.Factory.StartNew(() => {
                var sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(code, "2", "0", "300");
                if (sourceDatas == null || sourceDatas.Count == 0)
                {
                    return;
                }
                int totalCnt = sourceDatas.Count;
                if (totalCnt > 300)
                {
                    sourceDatas.RemoveRange(0, totalCnt - 300);
                }
                var averageDatas = PPUtils.GetBalancedAverageDatas(code, sourceDatas, 4);
                sourceDatas      = PPUtils.GetCutDatas(sourceDatas, averageDatas[0].DTime);

                chart.LoadDataAndApply(code, sourceDatas, averageDatas, TimeIntervalEnum.Day, 9);
                chart.SetYFormat("N0");
            });
        }
Example #5
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var sourceDatas = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                itemCode
                , base.timeInterval);

            if (sourceDatas == null || sourceDatas.Count == 0)
            {
                return;
            }

            //표시할 갯수를 맞춘다.
            RemoveSourceData(sourceDatas);

            //원천 데이터를 변경하는 로직 추가
            sourceDatas = T_CandleAntiCandleItemData.GetFlow(sourceDatas);

            var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas, 9);

            sourceDatas = PPUtils.GetCutDatas(sourceDatas, averageDatas[0].DTime);

            chart.LoadDataAndApply(itemCode, sourceDatas, base.timeInterval, 9);
            chart2.LoadDataAndApply(itemCode, averageDatas, base.timeInterval, 9);
        }
Example #6
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var sourceDatas1 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Minute_300);

            var sourceDatas2 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Day);

            if (sourceDatas1 != null && sourceDatas1.Count > 0)
            {
                var averageDatas1 = PPUtils.GetAverageDatas(itemCode, sourceDatas1, 9);
                qMin1.LoadDataAndApply(itemCode, averageDatas1, TimeIntervalEnum.Minute_300, 3);
            }
            if (sourceDatas2 != null && sourceDatas2.Count > 0)
            {
                var averageDatas2 = PPUtils.GetAverageDatas(itemCode, sourceDatas2, 9);
                qMin2.LoadDataAndApply(itemCode, averageDatas2, TimeIntervalEnum.Day, 3);
            }
        }
Example #7
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var sourceDatas = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                itemCode
                , base.timeInterval);

            if (sourceDatas == null || sourceDatas.Count == 0)
            {
                return;
            }

            //표시할 갯수를 맞춘다.
            RemoveSourceData(sourceDatas);
            //국내지수인 경우 시간갭이 크기 때문에.. 전일종가를 당일시가로 해야한다.
            SetChangeOpenPrice(itemCode, sourceDatas);

            var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas, 9);

            sourceDatas = PPUtils.GetCutDatas(sourceDatas, averageDatas[0].DTime);
            chart.LoadDataAndApply(itemCode, sourceDatas, base.timeInterval, 9);
            chart2.LoadDataAndApply(itemCode, averageDatas, base.timeInterval, 9);
        }
Example #8
0
        public override void loadData()
        {
            if (isLoading)
            {
                return;
            }

            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            string selectedType = this.SelectedType;

            if (string.IsNullOrEmpty(selectedType))
            {
                selectedType = SharedData.SelectedType;
            }

            isLoading = true;
            List <S_CandleItemData> sourceDatas = LoadData(itemCode, selectedType);

            isLoading = false;

            if (sourceDatas == null || sourceDatas.Count == 0)
            {
                return;
            }

            //표시할 갯수를 맞춘다.
            RemoveSourceData(sourceDatas);
            //국내지수인 경우 시간갭이 크기 때문에.. 전일종가를 당일시가로 해야한다.

            //var removeGapSourceDatas = PPUtils.RemoveGapPrice(sourceDatas);
            var quantumDatas      = PPUtils.GetANodeDatas(sourceDatas);
            var plusQuantumDatas  = quantumDatas.plusList;
            var minusQuantumDatas = quantumDatas.minusList;

            int averageCount = 9;

            if (timeInterval == TimeIntervalEnum.Minute_01 ||
                timeInterval == TimeIntervalEnum.Minute_05 ||
                timeInterval == TimeIntervalEnum.Minute_10 ||
                timeInterval == TimeIntervalEnum.Minute_30)
            {
                averageCount = 9;
            }

            var pAverageDatas = PPUtils.GetAverageDatas(itemCode, plusQuantumDatas, averageCount);
            var mAverageDatas = PPUtils.GetAverageDatas(itemCode, minusQuantumDatas, averageCount);

            sourceDatas = PPUtils.GetCutDatas(sourceDatas, pAverageDatas[0].DTime);
            chart.LoadDataAndApply(itemCode, sourceDatas, pAverageDatas, mAverageDatas, base.timeInterval, 5);
        }
Example #9
0
        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);
        }
Example #10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="t"></param>
 public void CreateItem(Item t)
 {
     using (IDataContext ctx = DataContext.Instance())
     {
         t = (Item)PPUtils.NullableToDbNull(t);
         var rep = ctx.GetRepository <Item>();
         rep.Insert(t);
     }
 }
Example #11
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var sourceDatas = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                itemCode
                , base.timeInterval);

            if (sourceDatas == null || sourceDatas.Count == 0)
            {
                return;
            }
            int cnt = 7;
            List <S_CandleItemData> sourceDatas1 = sourceDatas.GetRange(sourceDatas.Count - cnt, cnt);

            chart1.LoadDataAndApply(itemCode, sourceDatas1, base.timeInterval);
            cnt = 19;
            List <S_CandleItemData> sourceDatas2 = sourceDatas.GetRange(sourceDatas.Count - cnt, cnt);

            chart2.LoadDataAndApply(itemCode, sourceDatas2, base.timeInterval);
            cnt = 29;
            List <S_CandleItemData> sourceDatas3 = sourceDatas.GetRange(sourceDatas.Count - cnt, cnt);

            chart3.LoadDataAndApply(itemCode, sourceDatas3, base.timeInterval);
            cnt = 37;
            List <S_CandleItemData> sourceDatas4 = sourceDatas.GetRange(sourceDatas.Count - cnt, cnt);

            chart4.LoadDataAndApply(itemCode, sourceDatas4, base.timeInterval);

            var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas, 7);

            cnt = 7;
            List <S_CandleItemData> sourceDatas5 = averageDatas.GetRange(averageDatas.Count - cnt, cnt);

            chart5.LoadDataAndApply(itemCode, sourceDatas5, base.timeInterval);
            cnt = 19;
            List <S_CandleItemData> sourceDatas6 = averageDatas.GetRange(averageDatas.Count - cnt, cnt);

            chart6.LoadDataAndApply(itemCode, sourceDatas6, base.timeInterval);
            cnt = 29;
            List <S_CandleItemData> sourceDatas7 = averageDatas.GetRange(averageDatas.Count - cnt, cnt);

            chart7.LoadDataAndApply(itemCode, sourceDatas7, base.timeInterval);
            cnt = 37;
            List <S_CandleItemData> sourceDatas8 = averageDatas.GetRange(averageDatas.Count - cnt, cnt);

            chart8.LoadDataAndApply(itemCode, sourceDatas8, base.timeInterval);
        }
Example #12
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var sourceDatas180 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Tick_180);
            var sourceDatas360 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Tick_360);
            var sourceDatas720 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Tick_720);
            var sourceDatas1080 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Tick_1080);
            var sourceDatas1440 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Tick_1440);

            if (sourceDatas180 != null && sourceDatas180.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas180, 7);
                qTick180.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Tick_180, 3);
            }
            if (sourceDatas360 != null && sourceDatas360.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas360, 7);
                qTick360.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Tick_360, 3);
            }
            if (sourceDatas720 != null && sourceDatas720.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas720, 7);
                qTick720.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Tick_720, 3);
                qTick721.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Tick_720, 3);
            }
            if (sourceDatas1080 != null && sourceDatas1080.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas1080, 7);
                qTick1080.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Tick_1080, 3);
            }
            if (sourceDatas1440 != null && sourceDatas1440.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas1440, 7);
                qTick1440.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Tick_1440, 3);
            }
        }
Example #13
0
        public void ModifiersChanged()
        {
            var gameplayModifiersPanelController = Resources.FindObjectsOfTypeAll <GameplayModifiersPanelController>().FirstOrDefault();

            _modifiers = gameplayModifiersPanelController.GetPrivateField <GameplayModifiers>("_gameplayModifiers");
            if (SongDataUtils.IsRankedSong(_id))
            {
                SetPPText(PPUtils.AllowedModifiers(_id.id, _modifiers));
            }
        }
Example #14
0
        public override void loadData()
        {
            if (isLoading)
            {
                return;
            }
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            string selectedType = this.SelectedType;

            if (string.IsNullOrEmpty(selectedType))
            {
                selectedType = SharedData.SelectedType;
            }

            isLoading = true;
            List <S_CandleItemData> sourceDatas = LoadData(itemCode, selectedType);

            isLoading = false;

            if (sourceDatas == null || sourceDatas.Count == 0)
            {
                return;
            }

            int averageCount = 9;

            if (timeInterval == TimeIntervalEnum.Minute_01 ||
                timeInterval == TimeIntervalEnum.Minute_05 ||
                timeInterval == TimeIntervalEnum.Minute_10 ||
                timeInterval == TimeIntervalEnum.Minute_30)
            {
                averageCount = 9;
            }

            var averageDatas1 = PPUtils.GetBalancedAverageDatas(itemCode, sourceDatas, averageCount);

            //국내지수인 경우 시간갭이 크기 때문에.. 전일종가를 당일시가로 해야한다.
            var removeGapSourceDatas = PPUtils.RemoveGapPrice(sourceDatas);

            var averageDatas2 = PPUtils.GetBalancedAverageDatas(itemCode, removeGapSourceDatas, averageCount);

            chart1.LoadDataAndApply(itemCode, averageDatas1, averageDatas1, timeInterval, 5);

            chart2.LoadDataAndApply(itemCode, averageDatas2, averageDatas2, timeInterval, 5);
        }
Example #15
0
        private void SetPPText(bool canUsePositiveModifiers)
        {
            float ppValue = canUsePositiveModifiers ? PPUtils.CalculatePP(_rawPP, BeatSaberUtils.GetModifiedAcc(_accuracy, _modifiersModel, _modifiers))
                            : PPUtils.CalculatePP(_rawPP, BeatSaberUtils.GetModifiedAcc(_accuracy, _modifiersModel, BeatSaberUtils.RemovePositiveModifiers(_modifiers)));
            string ppText     = Math.Round(ppValue, 2).ToString("0.00");
            var    ppGain     = Math.Round(PPUtils.GetPPGain(ppValue, _id), 2);
            string ppGainText = ppGain.ToString("0.00");
            var    color      = ppGain > 0 ? "green" : "red";

            _ppText.SetText($"{ppText} (<color=\"{color}\">+{ppGain}</color>)");
        }
Example #16
0
 public void OnMenuSceneLoadedFresh(ScenesTransitionSetupDataSO transitionSetupDataSO)
 {
     PP_HelperController.OnLoad();
     if (!RawPPLoader.IsInit())
     {
         RawPPLoader.Initialize();
     }
     PPUtils.Initialize();
     ProfileDataLoader.instance.Initialize();
     AccLoader.instance.Initialize();
     if (Config.playHistory)
     {
         PlayHistoryTracker.Initialize();
     }
 }
Example #17
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var sourceDatas = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                itemCode
                , base.timeInterval);

            if (sourceDatas == null || sourceDatas.Count == 0)
            {
                return;
            }

            //표시할 갯수를 맞춘다.
            RemoveSourceData(sourceDatas);
            //국내지수인 경우 시간갭이 크기 때문에.. 전일종가를 당일시가로 해야한다.
            //SetChangeOpenPrice(itemCode, sourceDatas);

            //if (true)
            //{
            //    double rate = 0.0;
            //    if (timeInterval == TimeIntervalEnum.Week) rate = 2.5;
            //    if (timeInterval == TimeIntervalEnum.Day) rate = 1.0;
            //    if (timeInterval == TimeIntervalEnum.Minute_180) rate = 0.7;
            //    if (timeInterval == TimeIntervalEnum.Minute_120) rate = 0.5;
            //    if (timeInterval == TimeIntervalEnum.Minute_60) rate = 0.3;
            //    sourceDatas = PPUtils.GetRecreateWhimDatas(itemCode, sourceDatas, true, rate, null);
            //}

            var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas, 9);

            //var averageDatas = PPUtils.GetBalancedAverageDatas(itemCode, sourceDatas, 9);
            //var averageDatas = PPUtils.GetAccumulatedAverageDatas(itemCode, sourceDatas, 9);

            sourceDatas = PPUtils.GetCutDatas(sourceDatas, averageDatas[0].DTime);
            chart.LoadDataAndApply(itemCode, sourceDatas, base.timeInterval, 9);
            chart2.LoadDataAndApply(itemCode, averageDatas, base.timeInterval, 9);
        }
Example #18
0
        public void CreateVirtualData(List <S_CandleItemData> sourceDatas)
        {
            if (!appendVirtualData)
            {
                return;
            }
            if (string.IsNullOrEmpty(appendVirtualDataType))
            {
                return;
            }
            var virtualList = PPUtils.GetVirtualCandle(appendVirtualDataType, sourceDatas.GetRange(sourceDatas.Count - 5, 5));

            foreach (var m in virtualList)
            {
                sourceDatas.Add(m);
            }
        }
Example #19
0
        public void SubmitPlay(SongID songID, double acc)
        {
            // Unplayed or better than previous acc
            if (!songDataInfo.ContainsKey(songID) || acc > songDataInfo[songID].acc)
            {
                Logger.log.Debug("Unplayed or better score");
                double pp       = PPUtils.CalculatePP(songID, (float)(acc * 100));
                int    oldIndex = songDataInfo.ContainsKey(songID) ? songIndex[songID] : songIndex.Count;
                double weight   = Double.NegativeInfinity;
                // Find first song that it's worth more than
                var i = 0;
                foreach (var song in songOrder)
                {
                    var songWorth = songDataInfo[song].pp;
                    if (songWorth < pp)
                    {
                        weight = songDataInfo[song].weight;
                        break;
                    }
                    i++;
                }

                // found a song it's worth more than, decrease weight of songs below it that are above original
                if (weight != Double.NegativeInfinity)
                {
                    for (; i < oldIndex; i++)
                    {
                        var song = songOrder[i];
                        songDataInfo[song].weight *= PPUtils.FALLOFF_RATE;
                    }
                }
                // Lowest value song
                else
                {
                    Logger.log.Debug("Lowest value song");
                    weight = songDataInfo[songOrder.Last()].weight * PPUtils.FALLOFF_RATE;
                }

                // Add/update this song
                songDataInfo[songID] = new SongData(acc, pp, weight);
                // recalculate and save data
                CalculateSums();
                SaveSongData();
            }
        }
Example #20
0
        private void UpdateCounter()
        {
            var   maxScore = ScoreModel.MaxRawScoreForNumberOfNotes(_totalNotes);
            float acc;

            if (maxScore == 0)
            {
                acc = 1;
            }
            else
            {
                acc = (float)_score / (float)maxScore;
            }

            var pp = PPUtils.CalculatePP(_rawPP, acc * 100);

            _counter.text = $"{Math.Round(pp, Config.decimalPrecision)}pp";
        }
Example #21
0
        public void LevelCleared(StandardLevelScenesTransitionSetupDataSO standardLevelScenesTransitionSetupDataSO, LevelCompletionResults levelCompletionResults)
        {
            Logger.log.Debug("Level cleared");
            // Score submission disabled or using practice mode
            if (BS_Utils.Gameplay.ScoreSubmission.WasDisabled || BS_Utils.Gameplay.ScoreSubmission.ProlongedDisabled ||
                ((GameplayCoreSceneSetupData)standardLevelScenesTransitionSetupDataSO.sceneSetupDataArray.First(x => x.GetType().Equals(typeof(GameplayCoreSceneSetupData)))).practiceSettings != null)
            {
                Logger.log.Debug("Practice mode or score disabled");
                return;
            }

            var gameplayCoreSceneSetupData = ((GameplayCoreSceneSetupData)standardLevelScenesTransitionSetupDataSO.sceneSetupDataArray[1]);
            var difficultyBeatmap          = gameplayCoreSceneSetupData.difficultyBeatmap;

            SongID songID = SongDataUtils.GetSongID(difficultyBeatmap);

            // I don't like putting play history here but until I do a refactor I'm gonna keep it here
            if (SongDataUtils.IsRankedSong(songID) || Config.playHistory)
            {
                Logger.log.Debug("Beat song");
                GameplayModifiers modifiers = new GameplayModifiers(levelCompletionResults.gameplayModifiers);
                // Remove positive modifiers if not allowed
                if (!PPUtils.AllowedModifiers(songID.id, modifiers))
                {
                    Logger.log.Debug("Using invalid modifiers, removing from score");
                    modifiers = BeatSaberUtils.RemovePositiveModifiers(modifiers);
                }

                var    multiplier = levelCompletionResults.gameplayModifiersModel.GetTotalMultiplier(modifiers);
                var    score      = levelCompletionResults.rawScore * multiplier;
                var    maxScore   = ScoreModel.MaxRawScoreForNumberOfNotes(difficultyBeatmap.beatmapData.notesCount);
                double acc        = (double)score / (double)maxScore;
                Logger.log.Debug($"acc: {acc}");

                if (SongDataUtils.IsRankedSong(songID))
                {
                    SubmitPlay(songID, acc);
                }
                else
                {
                    PlayHistoryTracker.UpdatePlayHistory(songID, acc);
                }
            }
        }
Example #22
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var candles = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                itemCode
                , base.timeInterval);

            if (candles == null || candles.Count == 0)
            {
                return;
            }
            List <S_LineItemData> sourceDatas = new List <S_LineItemData>();
            var list = PPUtils.GetSixPointsByCandles(candles);

            foreach (var m in list)
            {
                //S_LineItemData sourceData = new S_LineItemData(
                //    itemCode
                //    , m.OpenPrice
                //    , m.HighPrice
                //    , m.LowPrice
                //    , m.ClosePrice
                //    , m.DTime
                //    );
                //sourceDatas.Add(sourceData);
            }

            chart.loadDataAndApply(itemCode, sourceDatas, base.timeInterval, 7);

            var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas, 7);

            chart2.loadDataAndApply(itemCode, averageDatas, base.timeInterval, 7);
        }
Example #23
0
        public override void loadData()
        {
            if (isLoading)
            {
                return;
            }
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            string selectedType = this.SelectedType;

            if (string.IsNullOrEmpty(selectedType))
            {
                selectedType = SharedData.SelectedType;
            }

            isLoading = true;
            List <S_CandleItemData> sourceDatas = LoadData(itemCode, selectedType);

            isLoading = false;

            if (sourceDatas == null || sourceDatas.Count == 0)
            {
                return;
            }

            var averageDatas  = PPUtils.GetBalancedAverageDatas(itemCode, sourceDatas, 9);
            var averageDatas2 = PPUtils.GetMovingAverageDurationFlow(itemCode, averageDatas, isStrengthed, inflectionPoint);
            var sourceDatas2  = PPUtils.GetDurationSum(itemCode, averageDatas2, sourceDatas);

            chart.LoadDataAndApply(itemCode, sourceDatas2, base.timeInterval, 9);
            chart2.LoadDataAndApply(itemCode, averageDatas2, base.timeInterval, 9);

            chart2.SetYFormat("N0");
        }
Example #24
0
        private void lblTitlePgr_Click(object sender, EventArgs e)
        {
            string code = tbSelectedCode.Text;

            Task.Factory.StartNew(() => {
                var sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(code, "2", "0", "100");
                if (sourceDatas == null || sourceDatas.Count == 0)
                {
                    return;
                }
                int totalCnt = sourceDatas.Count;
                if (totalCnt > 100)
                {
                    sourceDatas.RemoveRange(0, totalCnt - 100);
                }
                var averageDatas = PPUtils.GetAverageDatas(code, sourceDatas, 9);
                sourceDatas      = PPUtils.GetCutDatas(sourceDatas, averageDatas[0].DTime);
                chart.LoadDataAndApply(code, sourceDatas, averageDatas, averageDatas, TimeIntervalEnum.Day, 9);
                chart.SetYFormat("N0");
            });
        }
Example #25
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            TimeIntervalEnum timeInterval = TimeIntervalEnum.Minute_60;

            var sourceDatas = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , timeInterval);

            //표시할 갯수를 맞춘다.
            RemoveSourceData(sourceDatas);
            //국내지수인 경우 시간갭이 크기 때문에.. 전일종가를 당일시가로 해야한다.
            SetChangeOpenPrice(itemCode, sourceDatas);

            if (sourceDatas != null && sourceDatas.Count > 0)
            {
                var averageDatas1 = PPUtils.GetAverageDatas(itemCode, sourceDatas, 9);
                var averageDatas2 = PPUtils.GetBalancedAverageDatas(itemCode, sourceDatas, 9);
                var averageDatas3 = PPUtils.GetAccumulatedAverageDatas(itemCode, sourceDatas, 9);

                sourceDatas = PPUtils.GetCutDatas(sourceDatas, averageDatas1[0].DTime);

                qMin1.LoadDataAndApply(itemCode, sourceDatas, timeInterval, 3);
                qMin2.LoadDataAndApply(itemCode, averageDatas1, timeInterval, 3);
                qMin3.LoadDataAndApply(itemCode, averageDatas2, timeInterval, 3);
                qMin4.LoadDataAndApply(itemCode, averageDatas3, timeInterval, 3);
            }
        }
Example #26
0
        private void dgv_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex < 0 || e.RowIndex < 0)
            {
                return;
            }

            string   code = dgv.Rows[e.RowIndex].Cells[1].Value as string;
            string   name = dgv.Rows[e.RowIndex].Cells[2].Value as string;
            DateTime dt   = Convert.ToDateTime(dgv.Rows[e.RowIndex].Cells[0].Value);

            tbSelectedCode2.Text = code;
            tbSelectedName2.Text = name;
            selectedNode         = dgv.Rows[e.RowIndex].Tag as XmlNode;
            selectedIndex        = e.RowIndex;

            TimeIntervalEnum timeInterval    = chkTD.Checked ? TimeIntervalEnum.Day : TimeIntervalEnum.Week;
            string           timeIntervalStr = chkTD.Checked ? "2" : "3";

            Task.Factory.StartNew(() => {
                var sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(code, timeIntervalStr, "0", "300");
                if (sourceDatas == null || sourceDatas.Count == 0)
                {
                    return;
                }
                int totalCnt = sourceDatas.Count;
                if (totalCnt > 300)
                {
                    sourceDatas.RemoveRange(0, totalCnt - 300);
                }
                var averageDatas = PPUtils.GetAverageDatas(code, sourceDatas, 9);
                sourceDatas      = PPUtils.GetCutDatas(sourceDatas, averageDatas[0].DTime);
                chart.LoadDataAndApply(code, sourceDatas, averageDatas, averageDatas, timeInterval, 9);
                chart.SetYFormat("N0");
                chart.ClearChartLabel("↓");
                chart.DisplayChartLabel(dt, Color.DarkRed, "↓", "↓");
            });
        }
Example #27
0
        internal void Refresh(string id)
        {
            if (!Config.showInfo)
            {
                _parentObject.SetActive(false);
                return;
            }

            try
            {
                IDifficultyBeatmap difficultyBeatmap = _standardLevelDetailView.selectedDifficultyBeatmap;
                var newId = new ProfileDataLoader.SongID(id, difficultyBeatmap.difficulty);

                if (SongDataUtils.IsRankedSong(newId))
                {
                    _parentObject.SetActive(true);
                    _rawPP = SongDataUtils.GetRawPP(newId);
                    // Only load the acc in when a new song is selected
                    if (_id == null || !newId.Equals(_id))
                    {
                        _id = newId;
                        LoadAcc();
                    }

                    SetPPText(PPUtils.AllowedModifiers(_id.id, _modifiers));
                }
                else
                {
                    _parentObject.SetActive(false);
                }
            }
            catch (Exception)
            {
                Logger.log.Debug($"error with difficulty for song {id}");
                _parentObject.SetActive(false);
            }
        }
Example #28
0
        public override void loadData()
        {
            if (base.SelectedItemData == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(base.SelectedItemData.Code))
            {
                return;
            }

            string itemCode = base.SelectedItemData.Code;

            var sourceDatas1 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Hour_01);
            var sourceDatas2 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Hour_02);
            var sourceDatas3 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Hour_03);
            var sourceDatas4 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Hour_06);
            var sourceDatas5 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Hour_12);
            var sourceDatas6 = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
                base.SelectedItemData.Code
                , TimeIntervalEnum.Day);

            if (sourceDatas1 != null && sourceDatas1.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas1, 9);
                qMin1.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Hour_01, 3);
            }
            if (sourceDatas2 != null && sourceDatas2.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas2, 9);
                qMin2.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Hour_02, 3);
            }
            if (sourceDatas3 != null && sourceDatas3.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas3, 9);
                qMin3.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Hour_03, 3);
            }
            if (sourceDatas4 != null && sourceDatas4.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas4, 9);
                qMin4.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Hour_06, 3);
            }
            if (sourceDatas5 != null && sourceDatas5.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas5, 9);
                qMin5.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Hour_12, 3);
            }
            if (sourceDatas6 != null && sourceDatas6.Count > 0)
            {
                var averageDatas = PPUtils.GetAverageDatas(itemCode, sourceDatas6, 9);
                qMin6.LoadDataAndApply(itemCode, averageDatas, TimeIntervalEnum.Day, 3);
            }
        }
Example #29
0
        protected List <S_CandleItemData> loadData()
        {
            DateTime?dtS = null;

            if (dtpS.Checked)
            {
                dtS = dtpS.Value;
            }
            DateTime?dtE = null;

            if (dtpE.Checked)
            {
                dtE = dtpE.Value;
            }
            return(PPUtils.LoadData(selectedType, selectedTimeInterval, selectedItem, dtS, dtE));

            //List<S_CandleItemData> sourceDatas = null;

            //if (selectedType == "국내업종")
            //{
            //    if (selectedTimeInterval == TimeIntervalEnum.Day)
            //        sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "2", "0", "500");
            //    else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //        sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "3", "0", "500");
            //}
            //else if (selectedType == "국내지수")
            //{
            //    //if (selectedTimeInterval == TimeIntervalEnum.Day)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "2", "0", "500");
            //    //else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "3", "0", "500");
            //    //else if (selectedTimeInterval == TimeIntervalEnum.Minute_01)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "1", "1", "500");
            //    //else if (selectedTimeInterval == TimeIntervalEnum.Minute_05)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "1", "5", "500");
            //    //else if (selectedTimeInterval == TimeIntervalEnum.Minute_10)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "1", "10", "500");
            //    //else if (selectedTimeInterval == TimeIntervalEnum.Minute_30)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "1", "30", "500");
            //    //else if (selectedTimeInterval == TimeIntervalEnum.Hour_01)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetUpJongSiseData(selectedItem, "1", "60", "500");


            //    if (dtpS.Checked && dtpE.Checked)
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetKoreaIndexSiseDataByRange(selectedItem, "D", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetKoreaIndexSiseDataByRange(selectedItem, "W", dtpS.Value, dtpE.Value);
            //    }
            //    else
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetKoreaIndexSiseData(selectedItem, "D");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetKoreaIndexSiseData(selectedItem, "W");
            //    }
            //}
            //else if (selectedType == "국내종목")
            //{
            //    if (selectedTimeInterval == TimeIntervalEnum.Day)
            //        sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(selectedItem, "2", "0", "500");
            //    else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //        sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(selectedItem, "3", "0", "500");
            //    else if (selectedTimeInterval == TimeIntervalEnum.Minute_01)
            //        sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(selectedItem, "1", "1", "500");
            //    else if (selectedTimeInterval == TimeIntervalEnum.Minute_05)
            //        sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(selectedItem, "1", "5", "500");
            //    else if (selectedTimeInterval == TimeIntervalEnum.Minute_10)
            //        sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(selectedItem, "1", "10", "500");
            //    else if (selectedTimeInterval == TimeIntervalEnum.Minute_30)
            //        sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(selectedItem, "1", "30", "500");
            //    else if (selectedTimeInterval == TimeIntervalEnum.Hour_01)
            //        sourceDatas = XingContext.Instance.ClientContext.GetJongmokSiseData(selectedItem, "1", "60", "500");
            //}
            //else if (selectedType == "해외지수")
            //{
            //    //if (selectedTimeInterval == TimeIntervalEnum.Day)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetWorldIndexSiseData(selectedItem, "0");
            //    //else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //    //    sourceDatas = XingContext.Instance.ClientContext.GetWorldIndexSiseData(selectedItem, "1");

            //    if (dtpS.Checked && dtpE.Checked)
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldIndexSiseDataByRange(selectedItem, "D", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldIndexSiseDataByRange(selectedItem, "W", dtpS.Value, dtpE.Value);
            //    }
            //    else
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldIndexSiseData(selectedItem, "D");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldIndexSiseData(selectedItem, "W");
            //    }
            //}
            //else if (selectedType == "해외선물")
            //{
            //    if (dtpS.Checked && dtpE.Checked)
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "D", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "W", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "H", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_02)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "2H", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "5H", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "M", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "5M", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_15)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "15M", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_30)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseDataByRange(selectedItem, "30M", dtpS.Value, dtpE.Value);
            //    }
            //    else
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "D");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "W");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "H");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_02)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "2H");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "5H");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "M");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "5M");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_15)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "15M");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_30)
            //            sourceDatas = XingContext.Instance.ClientContext.GetWorldFutureSiseData(selectedItem, "30M");
            //    }
            //}
            //else if (selectedType == "암호화폐")
            //{
            //    if (dtpS.Checked && dtpE.Checked)
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "D", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "W", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "H", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_02)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "2H", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "5H", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "M", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "5M", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_15)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "15M", dtpS.Value, dtpE.Value);
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_30)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseDataByRange(selectedItem, "30M", dtpS.Value, dtpE.Value);
            //    }
            //    else
            //    {
            //        if (selectedTimeInterval == TimeIntervalEnum.Day)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "D");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Week)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "W");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "H");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_02)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "2H");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Hour_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "5H");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_01)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "M");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_05)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "5M");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_15)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "15M");
            //        else if (selectedTimeInterval == TimeIntervalEnum.Minute_30)
            //            sourceDatas = XingContext.Instance.ClientContext.GetCryptoSiseData(selectedItem, "30M");
            //    }
            //}
            //else
            //    sourceDatas = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(
            //      selectedItem
            //    , selectedTimeInterval);
            //return sourceDatas;
        }
Example #30
0
        private void BtnLoadCandle_Click(object sender, EventArgs e)
        {
            try
            {
                int loadCnt = 5;
                if (chkIsUseLastCandle.Checked)
                {
                    loadCnt = 6;
                }

                TimeIntervalEnum timeInterval = TimeIntervalEnum.Minute_05;
                if (cbxTime.SelectedIndex == 1)
                {
                    timeInterval = TimeIntervalEnum.Minute_10;
                }
                else if (cbxTime.SelectedIndex == 2)
                {
                    timeInterval = TimeIntervalEnum.Minute_30;
                }
                else if (cbxTime.SelectedIndex == 3)
                {
                    timeInterval = TimeIntervalEnum.Hour_01;
                }
                else if (cbxTime.SelectedIndex == 4)
                {
                    timeInterval = TimeIntervalEnum.Hour_02;
                }

                var list        = PPContext.Instance.ClientContext.GetCandleSourceDataOrderByAsc(rule.ItemCode, timeInterval);
                var avglist     = PPUtils.GetAverageDatas(rule.ItemCode, list, 5);
                var displayList = list.GetRange(list.Count - 10, 10);
                chart1.IsAutoScrollX = false;
                chart1.LoadDataAndApply(rule.ItemCode, displayList, timeInterval, 0);

                //챠크라
                if (rule.BaseCandleItemType == "1")
                {
                    var newList  = list.GetRange(list.Count - 6, loadCnt);
                    var newItem  = PP.Chakra.PPUtils.GetMergeCandle(newList);
                    var newList2 = new List <PP.Chakra.S_CandleItemData>();
                    newList2.Add(newItem);
                    rule.BaseCandleItem       = newItem;
                    chartChakra.IsAutoScrollX = false;
                    chartChakra.LoadDataAndApply(rule.ItemCode, newList2, timeInterval, 0);
                }
                //양자평균
                else if (rule.BaseCandleItemType == "2")
                {
                    var newList  = avglist.GetRange(avglist.Count - 6, loadCnt);
                    var newItem  = PP.Chakra.PPUtils.GetMergeCandle(newList);
                    var newList2 = new List <PP.Chakra.S_CandleItemData>();
                    newList2.Add(newItem);
                    rule.BaseCandleItem       = newItem;
                    chartChakra.IsAutoScrollX = false;
                    chartChakra.loadDataAndApply(rule.ItemCode, newList2, timeInterval, 0);
                }
                //다이아몬드
                else if (rule.BaseCandleItemType == "3")
                {
                    var newList  = list.GetRange(list.Count - 6, loadCnt);
                    var newItem  = PP.Chakra.PPUtils.GetMergeDiamondCandle(newList);
                    var newList2 = new List <PP.Chakra.S_CandleItemData>();
                    var sCandle  = newItem.GetCandleItem();
                    newList2.Add(sCandle);
                    rule.BaseCandleItem       = sCandle;
                    chartChakra.IsAutoScrollX = false;
                    chartChakra.loadDataAndApply(rule.ItemCode, newList2, timeInterval, 0);
                }

                chartReal.LoadDataAndApply(rule.ItemCode, list, timeInterval, 0);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }