public void PlotProfitChart() { string saveSort = tradeEstimateSource.Sort; tradeEstimateSource.Sort = ""; data.tmpDS.tradeEstimateDataTable tbl = tradeEstimateSource.DataSource as data.tmpDS.tradeEstimateDataTable; chartPnl.ResetGraph(); chartPnl.RemoveAllCurves(); DataSeries xSeries = new DataSeries(); DataSeries ySeries = new DataSeries(); for (int idx = 0; idx < tbl.Count; idx++) { if (!allTransactionMenuItem.Checked && tbl[idx].ignored) { continue; } ySeries.Add((double)tbl[idx].profit); xSeries.Add(tbl[idx].onDate.ToOADate()); } //Handle bug in graph for curve with only on point ???? if (ySeries.Count > 1) { chartPnl.myGraphObj.SetSeriesX(xSeries.Values, Charts.AxisType.DateAsOrdinal); chartPnl.myGraphObj.SetFont(Settings.sysChartFontSize); chartPnl.myGraphObj.ChartMarginTOP = constProfitChartMarginTOP; chartPnl.myGraphObj.ChartMarginBOTTOM = constProfitChartMarginBOTTOM; CurveItem curveItem = chartPnl.myGraphObj.AddCurveBar("profit", ySeries.Values, Settings.sysChartVolumesColor, Settings.sysChartVolumesColor, 1); chartPnl.myGraphObj.DefaultViewport(); chartPnl.PlotGraph(); } tradeEstimateSource.Sort = saveSort; }
protected virtual void EstimateAdvice(application.analysis.workData data, application.analysis.analysisResult advices, decimal initCapAmt, decimal priceWeight, decimal feePerc, byte buy2SellInterval, data.tmpDS.tradeEstimateDataTable toTbl) { application.analysis.EstimateAdvice(data, advices, initCapAmt, priceWeight, feePerc, buy2SellInterval, toTbl); }
protected virtual void EstimateAdvice(Data data, Analysis.AnalysisResult advices, Analysis.EstimateOptions options, data.tmpDS.tradeEstimateDataTable toTbl) { Analysis.EstimateAdvice(data, advices, options, toTbl); }
public void ReLoad() { data.tmpDS.tradeEstimateDataTable dataTbl = new data.tmpDS.tradeEstimateDataTable(); DataAccess.Libs.GetTradePointWithEstimationDetail(this.myTimeRange, this.myTimeScale.Code, this.myStockCode, this.myStrategyCode, this.myOptions, out dataTbl); tradeEstimateSource.DataSource = dataTbl; DoFilter(); PlotProfitChart(); }
public TradePointInfo[] GetTradePointWithEstimationDetail(AppTypes.TimeRanges timeRange, string timeScaleCode, string stockCode, string strategyCode, EstimateOptions options, out data.tmpDS.tradeEstimateDataTable toTbl) { string dataKey = LoadAnalysisData(timeRange, timeScaleCode, stockCode, false); TradePointInfo[] tradePoints = Analysis(dataKey, strategyCode); toTbl = application.Strategy.Libs.EstimateTrading_Details(sysDataCache.Find(dataKey) as AnalysisData, tradePoints, options); return(tradePoints); }
public void PlotStrategyTradepoints(application.Strategy.Meta meta, bool showEstimation) { ShowMessage(""); EstimateOptions estOption = new EstimateOptions(); data.tmpDS.tradeEstimateDataTable tbl = new data.tmpDS.tradeEstimateDataTable(); TradePointInfo[] tradePoints = DataAccess.Libs.GetTradePointWithEstimationDetail(myData.DataTimeRange, myData.DataTimeScale.Code, myData.DataStockCode, meta.Code, estOption, out tbl); /// Estimate trade points and set tradepoint's [isValid] property to mark whether a tradepoint is valid or not. for (int idx = 0; idx < tradePoints.Length; idx++) { tradePoints[idx].isValid = !tbl[idx].ignored; } PlotStrategyTradepoints(application.Strategy.Libs.ToTradePoints(tradePoints), pricePanel); //Call estimation handler if any. if (showEstimation && myEstimateTradePoints != null) { myEstimateTradePoints(this, meta.Code, estOption, tbl); } }
public void PlotStrategyTradepoints(application.Strategy.Meta meta, bool showEstimation) { ShowMessage(""); EstimateOptions estOption = new EstimateOptions(); data.tmpDS.tradeEstimateDataTable tbl = new data.tmpDS.tradeEstimateDataTable(); TradePointInfo[] tradePoints = DataAccess.Libs.GetTradePointWithEstimationDetail(myData.DataTimeRange,myData.DataTimeScale.Code,myData.DataStockCode,meta.Code, estOption, out tbl); /// Estimate trade points and set tradepoint's [isValid] property to mark whether a tradepoint is valid or not. for (int idx = 0; idx < tradePoints.Length; idx++) { tradePoints[idx].isValid = !tbl[idx].ignored; } PlotStrategyTradepoints(application.Strategy.Libs.ToTradePoints(tradePoints), pricePanel); //Call estimation handler if any. if (showEstimation && myEstimateTradePoints != null) myEstimateTradePoints(this,meta.Code,estOption, tbl); }
public static TradePointInfo[] GetTradePointWithEstimationDetail(AppTypes.TimeRanges timeRange, string timeScaleCode, string stockCode, string strategyCode, EstimateOptions options, out data.tmpDS.tradeEstimateDataTable toTbl) { return(myClient.GetTradePointWithEstimationDetail(out toTbl, timeRange, timeScaleCode, stockCode, strategyCode, options)); }
public void SetData(data.tmpDS.tradeEstimateDataTable dataTbl) { tradeEstimateSource.Sort = dataTbl.onDateColumn.ColumnName + " DESC"; tradeEstimateSource.DataSource = dataTbl; DoFilter(); }
/// <summary> /// Get the estimation detail from adviced trade point /// </summary> /// <param name="data"></param> /// <param name="tradePoints"></param> /// <param name="options"></param> /// <param name="toTbl"> Table of assumed transactions. Each row procides detail information of a transcation and it's profit</param> public static data.tmpDS.tradeEstimateDataTable EstimateTrading_Details(AnalysisData data, TradePointInfo[] tradePoints, EstimateOptions options) { data.tmpDS.tradeEstimateDataTable toTbl = new data.tmpDS.tradeEstimateDataTable(); EstimateTrading(data, tradePoints, options, toTbl, AfterEachEstimation_AddToTable, null); return(toTbl); }
public void ReLoad() { data.tmpDS.tradeEstimateDataTable dataTbl = new data.tmpDS.tradeEstimateDataTable(); DataAccess.Libs.GetTradePointWithEstimationDetail(this.myTimeRange, this.myTimeScale.Code, this.myStockCode, this.myStrategyCode, this.myOptions,out dataTbl); tradeEstimateSource.DataSource = dataTbl; DoFilter(); PlotProfitChart(); }