Exemple #1
0
 void BtnGenChartKTrendClick(object sender, EventArgs e)
 {
     Database db = new Database(this.txtDatabase.Text);
     db.Open();
     Pandora.Invest.Html.HtmlChartGenerate.GenerateMALineChart (db,
         int.Parse (this.txtStockCode.Text),
         DateTime.Parse (this.txtStartDate.Text),
         DateTime.Parse (this.txtEndDate.Text)
     );
     db.Close();
 }
Exemple #2
0
        void BtnFilterStockClick(object sender, EventArgs e)
        {
            Database db = new Database(this.txtDatabase.Text);
            db.Open();
            IList<Stock> stocks = Stock.FindAll(db);
            db.Close();

            string corssStar = "AM-Open-Close=0.006; AM-Min-Max=0.05; AM-Prev=0.015; AM-Matched-Days=0.03; RatioVolReduce=50; Min-Matched-Days=4; Starting-Point=99999; Regression=true";
            IList<StrategyConfig> confList = new List<StrategyConfig>();
            confList.Add(new StrategyConfig("MicroPriceTrendStrategy", corssStar));

            ProgressStatus status = new ProgressStatus();
            this._progressController.Start("执行策略选股...", status);
            var tm = new MThreadManager<Stock>(THREAD_COUNT, typeof(PickingStrategyWorker), status);
            tm.SetContext("connection-string", this.txtDatabase.Text)
                .SetContext("executors", confList)
                .AddItem(stocks)
                .Start();
        }
Exemple #3
0
        void BtnImpPlateClick(object sender, EventArgs e)
        {
            if(this.txtPlateFile.Text.Trim().Length<=0) return;
            if(!File.Exists(this.txtPlateFile.Text)) return;

            string plate = (string)this.comboPlate.SelectedItem;
            if(String.IsNullOrEmpty(plate)) return;
            int plateId = 0;
            switch(plate){
                case "上证50": plateId = 3; break;
                case "沪深300": plateId = 1; break;
                case "融资融券": plateId = 2; break;
            }
            if(plateId<=0) return;

            Database db = new Database(this.txtDatabase.Text);
            db.Open();

            db.ExecNonQuery("delete from bas_plate_stocks where plate_id=?id"
                            , new string[] { "id" }, new object[] { plateId });

            using(StreamReader sr = new StreamReader(this.txtPlateFile.Text, Encoding.Default)){
                string line = "";
                while((line = sr.ReadLine()) != null){
                    if(string.IsNullOrEmpty(line)) continue;
                    string[] fields = line.Trim().Split('\t');
                    if(fields.Length<2 || fields[0].Trim().Length!=6 ||
                       (fields[0].Trim()[0]!= '6' && fields[0].Trim()[0]!= '3' && fields[0].Trim()[0]!= '0'))
                        continue;
                    string code = fields[0].Trim();
                    int stockId = int.Parse(code);
                    if(stockId<=0) continue;
                    db.ExecNonQuery("insert into bas_plate_stocks(plate_id, sto_id) values(?pid, ?sid)"
                                    , new string[] {"pid", "sid"}, new object[] {plateId, stockId} );
                }
            }
            db.Close();

            MessageBox.Show("导入成功", "导入成功");
        }
Exemple #4
0
        void BtnUpdateShareholdersNumClick(object sender, EventArgs e)
        {
            int startId = 1;
            int.TryParse(this.txtStartStockId.Text, out startId);

            Database db = new Database(this.txtDatabase.Text);
            db.Open();
            IList<Stock> stocks = Stock.FindAll(db);
            db.Close();
            while (startId > 1 && stocks.Count > 0 && stocks[0].StockId < startId){
                stocks.RemoveAt(0);
            }

            ProgressStatus status = new ProgressStatus();
            this._progressController.Start("抓取最新股东数", status);
            var tm = new MThreadManager<Stock>(THREAD_COUNT, typeof(ImpShareHoldersNumWorker), status);
            tm.SetContext("connection-string", this.txtDatabase.Text)
                .AddItem(stocks)
                .Start();
        }
Exemple #5
0
        void BtnKTrendClick(object sender, EventArgs e)
        {
            Database db = new Database(this.txtDatabase.Text);
            db.Open();
            IList<Stock> stocks = Stock.RemoveBlackList(Stock.FindAll(db));
            db.Close();

            ProgressStatus status = new ProgressStatus();
            this._progressController.Start("计算K线趋势", status);
            var tm = new MThreadManager<Stock>(THREAD_COUNT, typeof(CalKTrendWorker), status);
            tm.SetContext("connection-string", this.txtDatabase.Text)
                .AddItem(stocks)
                .Start();
        }
Exemple #6
0
 /// <summary>
 /// 从文件导入分时交易数据
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void BtnImpTradeListClick(object sender, EventArgs e)
 {
     Database db = new Database(this.txtDatabase.Text);
     db.Open();
     ImportFileTimeShareTransaction.DoImportDirectory(db, this.txtTradeListDir.Text);
     db.Close();
 }
Exemple #7
0
        void BtnImpStockExtInfoClick(object sender, EventArgs e)
        {
            Database db = new Database(this.txtDatabase.Text);
            db.Open();
            IList<Stock> stocks = Stock.FindAll(db);
            db.Close();

            ProgressStatus status = new ProgressStatus();
            this._progressController.Start("抓取股票基础信息", status);
            var tm = new MThreadManager<Stock>(THREAD_COUNT, typeof(ImpStockBasInfoWorker), status);
            tm.SetContext("connection-string", this.txtDatabase.Text)
                .AddItem(stocks)
                .Start();
        }