예제 #1
0
 private void openMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         string stockCode;
         if (resultDataGrid.SelectedRows.Count > 0)
         {
             for (int idx = 0; idx < resultDataGrid.SelectedRows.Count; idx++)
             {
                 stockCode = resultDataGrid.SelectedRows[idx].Cells[0].Value.ToString();
                 //ShowStock(stockCode, Settings.sysScreeningTimeRange, Settings.sysScreeningTimeScale);
                 ShowStock(stockCode, Settings.sysGlobal.DefaultTimeRange, AppTypes.TimeScaleFromCode(Settings.sysGlobal.ScreeningTimeScaleCode));
             }
         }
         else
         {
             if (resultDataGrid.CurrentRow != null)
             {
                 stockCode = resultDataGrid.CurrentRow.Cells[0].Value.ToString();
                 //ShowStock(stockCode, Settings.sysScreeningTimeRange, Settings.sysScreeningTimeScale);
                 ShowStock(stockCode, Settings.sysGlobal.DefaultTimeRange, AppTypes.TimeScaleFromCode(Settings.sysGlobal.ScreeningTimeScaleCode));
             }
         }
     }
     catch (Exception er)
     {
         this.ShowError(er);
     }
 }
예제 #2
0
            //Create from analysis data for all enable stocks
            //private MarketData Create1()
            //{
            //    commonClass.BaseAnalysisData stockData = new commonClass.BaseAnalysisData(AppTypes.TimeRanges.Y1,
            //                                                                       AppTypes.TimeScaleFromCode("D1"), "SSI",
            //                                                                       AppTypes.DataAccessMode.WebService);
            //    return new MarketData(stockData);
            //}

            //Create from analysis data for stocks : ACB, FPT
            //private MarketData Create2()
            //{
            //    StringCollection list = new StringCollection();
            //    list.AddRange(new string[] { "ACB", "FPT" });

            //    commonClass.BaseAnalysisData stockData = new commonClass.BaseAnalysisData(AppTypes.TimeRanges.Y1,
            //                                                                      AppTypes.TimeScaleFromCode("D1"), "SSI",
            //                                                                      AppTypes.DataAccessMode.WebService);
            //    return new MarketData(stockData);
            //}

            //Create in specific time range and time scale for stocks : ACB, FPT
            private MarketData Create3()
            {
                StringCollection list = new StringCollection();

                list.AddRange(new string[] { "ACB", "FPT" });
                return(new MarketData(AppTypes.TimeRanges.Y1, AppTypes.TimeScaleFromCode("D1"), list));
            }
예제 #3
0
        public override void SetLanguage()
        {
            base.SetLanguage();
            menuStrip.Text              = Languages.Libs.GetString("screening");
            mainMenuItem.Text           = Languages.Libs.GetString("screening");
            runMenuItem.Text            = Languages.Libs.GetString("run");
            fullViewMenuItem.Text       = Languages.Libs.GetString("fullView");
            exportResultMenuItem.Text   = Languages.Libs.GetString("exportResult");
            openMenuItem.Text           = Languages.Libs.GetString("openChart");
            addToWatchListMenuItem.Text = Languages.Libs.GetString("addToWatchList");

            this.Text            = Languages.Libs.GetString("screening");
            maxDataCountLbl.Text = Languages.Libs.GetString("noDataBars");
            timeScaleLbl.Text    = Languages.Libs.GetString("timeScale");

            //criteriaLbl.Text = Languages.Libs.GetString("criteria");
            codeListLbl.Text = Languages.Libs.GetString("codeList");

            codeColumn.HeaderText = Languages.Libs.GetString("criteria");
            minColumn.HeaderText  = Languages.Libs.GetString("min");
            maxColumn.HeaderText  = Languages.Libs.GetString("max");

            timeScaleCb.LoadData();

            dataCounEd.Value    = Settings.sysGlobal.ScreeningDataCount;
            timeScaleCb.myValue = AppTypes.TimeScaleFromCode(Settings.sysGlobal.ScreeningTimeScaleCode);

            stockCodeLb.SetLanguage();

            LoadScreeningCodes();
            CreateContextMenu();
        }
예제 #4
0
 public List <decimal[]> Estimate_Matrix_Profit(AppTypes.TimeRanges timeRange, string timeScaleCode,
                                                string[] stockCodeList, string[] strategyList,
                                                EstimateOptions option)
 {
     return(application.Strategy.Libs.Estimate_Matrix_Profit(timeRange, AppTypes.TimeScaleFromCode(timeScaleCode),
                                                             common.system.List2Collection(stockCodeList),
                                                             common.system.List2Collection(strategyList), option));
 }
예제 #5
0
        /// <summary>
        /// Get data and store in cache. Depend on forceReadNew, cached data can be used to boost perfomance
        /// </summary>
        /// <param name="timeRange"></param>
        /// <param name="timeScaleCode"></param>
        /// <param name="code"></param>
        /// <param name="forceReadNew"> if true always read from database, ignore the cached data</param>
        /// <returns>Data key used for data accessing</returns>
        public string LoadAnalysisData(AppTypes.TimeRanges timeRange, string timeScaleCode, string code, bool forceReadNew)
        {
            string cacheName = MakeCacheKey(timeRange, timeScaleCode, code);

            if (forceReadNew || sysDataCache.Find(cacheName) == null)
            {
                AnalysisData myData = new AnalysisData(timeRange, AppTypes.TimeScaleFromCode(timeScaleCode), code, DataAccessMode.Local);
                sysDataCache.Add(cacheName, myData);
            }
            return(cacheName);
        }
예제 #6
0
 private void dataGrid_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         if (resultDataGrid.CurrentRow == null)
         {
             return;
         }
         string stockCode = resultDataGrid.CurrentRow.Cells[0].Value.ToString();
         if (e.ColumnIndex == 0)
         {
             //ShowStock(stockCode, Settings.sysScreeningTimeRange, Settings.sysScreeningTimeScale);
             ShowStock(stockCode, Settings.sysGlobal.DefaultTimeRange, AppTypes.TimeScaleFromCode(Settings.sysGlobal.ScreeningTimeScaleCode));
             return;
         }
     }
     catch (Exception er)
     {
         this.ShowError(er);
     }
 }
예제 #7
0
        private void LoadSettings()
        {
            //General
            accessLogMediaCb.myValue = Settings.sysGlobal.WriteLogAccess;
            passwordMinLenEd.Value   = Settings.sysGlobal.PasswordMinLen;
            useStrongPassChk.Checked = Settings.sysGlobal.UseStrongPassword;

            dayScanForLastPriceEd.myValue = Settings.sysGlobal.DayScanForLastPrice;
            alertDataCountEd.myValue      = Settings.sysGlobal.AlertDataCount;

            chartMaxLoadFirstEd.myValue = Settings.sysGlobal.ChartMaxLoadCount_FIRST;
            chartMaxLoadNextEd.myValue  = Settings.sysGlobal.ChartMaxLoadCount_MORE;

            //Auto number
            sysDataKeyPrefixEd.Text      = Settings.sysGlobal.DataKeyPrefix;
            sysAutoDataKeySizeEd.myValue = Settings.sysGlobal.DataKeySize;
            sysAutoEditKeySizeEd.myValue = Settings.sysGlobal.AutoEditKeySize;
            timeOutAutoKeyEd.Value       = Settings.sysGlobal.TimeOut_AutoKey;

            //email
            smtpServerEd.Text       = Settings.sysGlobal.smtpAddress;
            smtpPortEd.Text         = Settings.sysGlobal.smtpPort.ToString();
            smtpAuthAccountEd.Text  = (Settings.sysGlobal.smtpAuthAccount == null ? "" : Settings.sysGlobal.smtpAuthAccount);
            smtpAuthPasswordEd.Text = (Settings.sysGlobal.smtpAuthPassword == null ? "" : Settings.sysGlobal.smtpAuthPassword);
            smtpSSLChk.Checked      = Settings.sysGlobal.smtpSSL;

            //Default
            defaLanguageCb.myValue  = Settings.sysGlobal.DefautLanguage;
            defaTimeRangeCb.myValue = Settings.sysGlobal.DefaultTimeRange;
            defaTimeScaleCb.myValue = AppTypes.TimeScaleFromCode(Settings.sysGlobal.DefaultTimeScaleCode);

            screenDataCountEd.Value   = Settings.sysGlobal.ScreeningDataCount;
            screenTimeScaleCb.myValue = AppTypes.TimeScaleFromCode(Settings.sysGlobal.ScreeningTimeScaleCode);

            //Timming
            timerIntervalEd.myValue      = Settings.sysGlobal.TimerIntervalInSecs;
            refreshDataEd.myValue        = Settings.sysGlobal.RefreshDataInSecs;
            tradeAlertCreationEd.myValue = Settings.sysGlobal.CheckAlertInSeconds;
            autoCheckEd.myValue          = Settings.sysGlobal.AutoCheckInSeconds;
        }
예제 #8
0
 public int GetData_TotalRow(string timeScaleCode, string stockCode, DateTime frDate, DateTime toDate)
 {
     return(DbAccess.GetTotalPriceRow(AppTypes.TimeScaleFromCode(timeScaleCode), frDate, toDate, stockCode));
 }
예제 #9
0
 public List <double[]> Estimate_Matrix_LastBizWeight(AppTypes.TimeRanges timeRange, string timeScaleCode,
                                                      string[] stockCodeList, string[] strategyList)
 {
     return(application.Strategy.Libs.Estimate_Matrix_LastBizWeight(timeRange, AppTypes.TimeScaleFromCode(timeScaleCode),
                                                                    common.system.List2Collection(stockCodeList),
                                                                    common.system.List2Collection(strategyList)));
 }
예제 #10
0
 public AnalysisData(string code, DataParams dataParam) :
     base(code, AppTypes.TimeScaleFromCode(dataParam.TimeScale), dataParam.TimeRange, dataParam.MaxDataCount)
 {
 }
예제 #11
0
        public void SignalSeriesTest()
        {
            //application.MarketData market = new application.MarketData(AppTypes.TimeRanges.Y1, AppTypes.TimeScaleFromType(AppTypes.TimeScaleTypes.Day),"SSI");
            application.MarketData stockData = new application.MarketData(AppTypes.TimeRanges.Y1, AppTypes.TimeScaleFromCode("D1"));
            DataSeries             ds        = null; // TODO: Initialize to an appropriate value
            double     fastPeriod            = 12;
            double     slowPeriod            = 26;
            double     signalPeriod          = 9;
            string     name   = string.Empty;                                             // TODO: Initialize to an appropriate value
            MACD       target = new MACD(ds, fastPeriod, slowPeriod, signalPeriod, name); // TODO: Initialize to an appropriate value
            DataSeries actual;

            actual = target.SignalSeries;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
예제 #12
0
        /// <summary>
        /// Calculation of Thrust indicators
        /// </summary>
        /// <param name="ds">data to calculate CCI</param>
        /// <param name="period">period to calculate</param>
        /// <param name="name"></param>
        public Market_TRIN(DataSeries ds, string name)
            : base(ds, name)
        {
            //application.Data stockData = new application.Data(AppTypes.TimeRanges.Y1, AppTypes.TimeScaleFromCode("D1"), "SSI");
            application.MarketData market          = new application.MarketData(AppTypes.TimeRanges.Y1, AppTypes.TimeScaleFromCode("D1"));
            DataSeries             advancingIssues = market.AdvancingIssues;
            DataSeries             decliningIssues = market.DecliningIssues;

            DataSeries advancingVolume = market.AdvancingVolume;
            DataSeries decliningVolume = market.DecliningVolume;

            DataSeries result1 = advancingIssues / decliningIssues;
            DataSeries result2 = advancingVolume / decliningVolume;

            DataSeries result3 = result1 / result2;

            int begin = 0;

            FirstValidValue = 0;
            this.Name       = name;
            for (int i = begin, j = 0; j < result3.Count; i++, j++)
            {
                this[i] = result3[j];
            }
        }
예제 #13
0
        /// <summary>
        /// Calculation of Thrust indicators
        /// </summary>
        /// <param name="ds">data to calculate CCI</param>
        /// <param name="period">period to calculate</param>
        /// <param name="name"></param>
        public Market_BreadthTrust(DataSeries ds, double period, string name)
            : base(ds, name)
        {
            //application.Data stockData = new application.Data(AppTypes.TimeRanges.Y1, AppTypes.TimeScaleFromCode("D1"), "SSI");
            application.MarketData market          = new application.MarketData(AppTypes.TimeRanges.Y1, AppTypes.TimeScaleFromCode("D1"));
            DataSeries             advancingIssues = market.AdvancingIssues;
            DataSeries             decliningIssues = market.DecliningIssues;

            DataSeries emaAdvancingIssues = Indicators.EMA.Series(advancingIssues, period, "emaAdvancingIssues");
            DataSeries emaTotalIssues     = Indicators.EMA.Series(advancingIssues + decliningIssues, period, "emaTotalIssues");

            DataSeries result3 = emaAdvancingIssues / emaTotalIssues;

            int begin = 0;

            FirstValidValue = 0;
            this.Name       = name;
            for (int i = begin, j = 0; j < result3.Count; i++, j++)
            {
                this[i] = result3[j];
            }
        }