Esempio n. 1
0
        /// <summary>
        /// 月k
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button13_Click(object sender, EventArgs e)
        {
            if (repository == null)
            {
                repository = new IndicatorRepository(textBox2.Text);
                repository.Initilization();
            }
            SecurityPropertiesSet securities = repository.Securities;
            List <String>         codes      = securities.Codes;
            int num = 0;

            foreach (String code in codes)
            {
                if (code == null || code == "")
                {
                    continue;
                }
                TimeSerialsDataSet tsd = repository[code];
                if (tsd == null || tsd.DayKLine == null || tsd.DayKLine.Count <= 0)
                {
                    continue;
                }
                showText(code + "...");


                KLine monthKline = (KLine)tsd.Create("kline", TimeUnit.month, checkBox2.Checked);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 生成指标数据
 /// </summary>
 /// <returns></returns>
 public bool doGenerateIndicator()
 {
     showBeginMessage("开始生成指标...");
     if (repository == null)
     {
         repository = new IndicatorRepository(FileUtils.GetDirectory(props.Get <String>("repository")));
         repository.Initilization();
     }
     try
     {
         List <String> codes = repository.Securities.Codes;
         foreach (String code in codes)
         {
             TimeSerialsDataSet ds = repository[code];
             if (ds == null)
             {
                 continue;
             }
             showProgressMessage(code);
             KLine       kline     = ds.DayKLine;
             TradingLine tradeLine = ds.DayTradeLine;
             ds.Create("kline", TimeUnit.week);
             ds.Create("kline", TimeUnit.month);
             ds.CubeCreate();
             ds.CubeCreate(TimeUnit.week);
             ds.CubeCreate(TimeUnit.month);
             ds.FundTrendCreate(TimeUnit.day);
             ds.FundTrendCreate(TimeUnit.week);
             ds.FundTrendCreate(TimeUnit.month);
             ds.FundTrendCrossCreate(TimeUnit.day);
             ds.FundTrendCrossCreate(TimeUnit.week);
             ds.FundTrendCrossCreate(TimeUnit.month);
         }
         showResultMessage("");
         return(true);
     }
     catch (Exception e)
     {
         showResultMessage("生成指标失败", -1, e.Message);
         return(false);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 生成MACD
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button10_Click(object sender, EventArgs e)
        {
            if (repository == null)
            {
                repository = new IndicatorRepository(textBox2.Text);
                repository.Initilization();
            }
            SecurityPropertiesSet securities = repository.Securities;
            List <String>         codes      = securities.Codes;
            int num = 0;

            foreach (String code in codes)
            {
                if (code == null || code == "")
                {
                    continue;
                }
                TimeSerialsDataSet tsd = repository[code];
                if (tsd == null)
                {
                    continue;
                }
                KLine dayLine = tsd.DayKLine;
                if (dayLine != null)
                {
                    tsd.Create("macd", TimeUnit.day, checkBox1.Checked);
                }
                KLine weekLine = tsd.WeekKLine;
                if (weekLine != null)
                {
                    tsd.Create("macd", TimeUnit.week, checkBox1.Checked);
                }
                if (tsd == null || tsd.DayKLine == null || tsd.DayKLine.Count <= 0)
                {
                    continue;
                }
                showText(code + "...");
            }
        }
Esempio n. 4
0
        private void button11_Click(object sender, EventArgs e)
        {
            if (repository == null)
            {
                repository = new IndicatorRepository(textBox2.Text);
                repository.Initilization();
            }
            SecurityPropertiesSet securities = repository.Securities;
            List <String>         codes      = securities.Codes;
            int num = 0;

            foreach (String code in codes)
            {
                if (code == null || code == "")
                {
                    continue;
                }
                TimeSerialsDataSet tsd = repository[code];
                if (tsd == null)
                {
                    continue;
                }

                KLine dayLine = tsd.DayKLine;
                if (dayLine == null)
                {
                    continue;
                }

                MACD macd = (MACD)tsd.Create("macd", TimeUnit.day, false);
                if (macd == null)
                {
                    continue;
                }
            }
        }
Esempio n. 5
0
        public override TradeRecords Execute(String code, Properties strategyParam, BacktestParameter backtestParam, ISeller seller = null)
        {
            IndicatorRepository repository = (IndicatorRepository)backtestParam.Get <Object>("repository");

            if (repository == null)
            {
                return(null);
            }
            //取得策略参数
            double    buy_mainlow = strategyParam.Get <double>("buy_mainlow"); //主力线低位买入
            int       buy_cross   = strategyParam.Get <int>("buy_cross");
            GetInMode p_getinMode = (GetInMode)strategyParam.Get <GetInMode>("getinMode");

            //取得行情数据
            TradeRecords       tr = new TradeRecords(code);
            TimeSerialsDataSet ds = repository[code];

            if (ds == null)
            {
                return(null);
            }

            KLine kline = ds.DayKLine;

            if (kline == null)
            {
                return(null);
            }

            MACD macd = (MACD)ds.Create("macd", TimeUnit.day, false);

            if (macd == null)
            {
                return(null);
            }

            //买入条件判定
            for (int i = 0; i < macd.Count; i++)
            {
                MACDItem macdItem = macd[i];
                if (macdItem.Date < backtestParam.BeginDate || macdItem.Date >= backtestParam.EndDate)
                {
                    continue;
                }

                if (macdItem.CROSS <= 0)
                {
                    continue;
                }

                if (macdItem.DIF > buy_mainlow)
                {
                    continue;
                }

                DateTime  d         = macdItem.Date;
                KLineItem klineItem = kline[d];
                if (klineItem == null)
                {
                    continue;
                }
                TradeBout bout = new TradeBout(code);
                bout.RecordTrade(1, d, TradeDirection.Buy, klineItem.CLOSE, (int)(p_getinMode.Value / klineItem.CLOSE), backtestParam.Volumecommission, backtestParam.Stampduty, "低位金叉" + macdItem.DIF.ToString("F2"));
                tr.Bouts.Add(bout);
            }
            return(tr);
        }