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(); }
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(); }
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("导入成功", "导入成功"); }
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(); }
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(); }
/// <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(); }
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(); }