public void Init(Data data, Analysis.AnalysisResult advices) { this.myAnalysisData = data; this.myTradeAdvices = advices; ReLoad(); }
protected virtual void EstimateAdvice(Data data, Analysis.AnalysisResult advices, Analysis.EstimateOptions options, data.tmpDS.tradeEstimateDataTable toTbl) { Analysis.EstimateAdvice(data, advices, options, toTbl); }
public void Init(Data data, Analysis.AnalysisResult advices) { this.myAnalysisData = data; this.myTradeAdvices = advices; ReLoad(); }
private void ShowEstimationForm(data.baseDS.stockCodeRow stockCodeRow, data.baseDS.strategyRow strategyRow, AppTypes.TimeScale timeScale, DateTime frDate, DateTime toDate) { Data data = new Data(frDate, toDate, timeScale, stockCodeRow.code); Analysis.AnalysisResult advices = appHub.strategy.TradeAnalysis(data, strategyRow.code); if (advices != null) { myAdviceEstimateForm.Init(data, advices); myAdviceEstimateForm.ShowForm(); } }
private void Screening() { StringCollection strategyList = strategyClb.myCheckedValues; StringCollection stockCodeList = GetStockList(); DataTable testRetsultTbl = CreateDataTable(strategyList); SetDataGrid(testResultDataGrid, testRetsultTbl); progressBar.Value = 0; progressBar.Maximum = stockCodeList.Count; myDataSet.strategy.Clear(); data.baseDS.strategyRow strategyRow; for (int idx = 0; idx < strategyList.Count; idx++) { strategyRow = application.dataLibs.FindAndCache(myDataSet.strategy, strategyList[idx]); if (strategyRow == null) { common.system.ThrowException("Invalid strategy " + strategyList[idx]); } strategyList[idx] = strategyList[idx].Trim(); } data.baseDS.stockCodeRow stockCodeRow; for (int rowId = 0; rowId < stockCodeList.Count; rowId++) { stockCodeRow = application.dataLibs.FindAndCache(myDataSet.stockCode, stockCodeList[rowId]); if (stockCodeRow == null) { continue; } DataRow row = testRetsultTbl.Rows.Add(stockCodeList[rowId]); Data analysisData = new Data(dateRangeEd.frDate, dateRangeEd.toDate, dateRangeEd.myTimeScale, stockCodeRow.code); for (int colId = 0; colId < strategyList.Count; colId++) { decimal revenue = 0; Analysis.AnalysisResult advices = appHub.strategy.TradeAnalysis(analysisData, strategyList[colId]); if (advices != null) { myTmpDS.tradeEstimate.Clear(); Analysis.EstimateAdvice(analysisData, advices, new application.Analysis.EstimateOptions(), myTmpDS.tradeEstimate); revenue = (myTmpDS.tradeEstimate.Count == 0 ? 0 : revenue = myTmpDS.tradeEstimate[myTmpDS.tradeEstimate.Count - 1].revenue); } row[colId + 1] = revenue; } progressBar.Value++; Application.DoEvents(); } this.ShowReccount(stockCodeList.Count); }
private void BackTest() { StringCollection strategyList = strategyClb.myCheckedValues; StringCollection stockCodeList; if (stockCodeSelect.Enabled) { stockCodeList = stockCodeSelect.myCheckedValues; } else { stockCodeList = new StringCollection(); //Load stocks in portfolio data.baseDS.stockCodeDataTable myStockCodeTbl = new data.baseDS.stockCodeDataTable(); StringCollection portfolioList = common.system.List2Collection(portfolioCb.GetValues()); dataLibs.LoadStockCode_ByPortfolios(myStockCodeTbl, portfolioList); DataView myStockView = new DataView(myStockCodeTbl); data.baseDS.stockCodeRow stockRow; myStockView.Sort = myStockCodeTbl.codeColumn.ColumnName + "," + myStockCodeTbl.stockExchangeColumn.ColumnName; for (int idx1 = 0; idx1 < myStockView.Count; idx1++) { stockRow = (data.baseDS.stockCodeRow)myStockView[idx1].Row; //Ignore duplicate stocks if (stockCodeList.Contains(stockRow.code)) { continue; } stockCodeList.Add(stockRow.code); } } DataTable testRetsultTbl = CreateDataTable(strategyList); SetDataGrid(testResultDataGrid, testRetsultTbl); progressBar.Value = 0; progressBar.Maximum = stockCodeList.Count; //Data analysisData = new Data(dateRangeEd.frDate, dateRangeEd.toDate, dateRangeEd.myTimeScale, stockCodeRow.co); //analysisData.Init(dateRangeEd.myTimeScale, dateRangeEd.frDate, dateRangeEd.toDate, stockCodeRow); myDataSet.strategy.Clear(); data.baseDS.strategyRow strategyRow; for (int idx = 0; idx < strategyList.Count; idx++) { strategyRow = application.dataLibs.FindAndCache(myDataSet.strategy, strategyList[idx]); if (strategyRow == null) { common.system.ThrowException("Invalid strategy " + strategyList[idx]); } strategyList[idx] = strategyList[idx].Trim(); } data.baseDS.stockCodeRow stockCodeRow; for (int rowId = 0; rowId < stockCodeList.Count; rowId++) { stockCodeRow = application.dataLibs.FindAndCache(myDataSet.stockCode, stockCodeList[rowId]); if (stockCodeRow == null) { continue; } Data analysisData = new Data(dateRangeEd.frDate, dateRangeEd.toDate, dateRangeEd.myTimeScale, stockCodeRow.code); DataRow row = testRetsultTbl.Rows.Add(stockCodeList[rowId]); for (int colId = 0; colId < strategyList.Count; colId++) { decimal revenue = 0; Analysis.AnalysisResult advices = appHub.strategy.TradeAnalysis(analysisData, strategyList[colId]); if (advices != null) { myTmpDS.tradeEstimate.Clear(); Analysis.EstimateAdvice(analysisData, advices, new application.Analysis.EstimateOptions(), myTmpDS.tradeEstimate); revenue = (myTmpDS.tradeEstimate.Count == 0 ? 0 : revenue = myTmpDS.tradeEstimate[myTmpDS.tradeEstimate.Count - 1].revenue); } row[colId + 1] = revenue; } progressBar.Value++; Application.DoEvents(); } SetEstimateStrateDataGrid(Analysis.GetStrategyStats(testRetsultTbl)); }