示例#1
0
        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);
 }
示例#3
0
 protected virtual void EstimateAdvice(Data data,
                                       Analysis.AnalysisResult advices,
                                       Analysis.EstimateOptions options,
                                       data.tmpDS.tradeEstimateDataTable toTbl)
 {
     Analysis.EstimateAdvice(data, advices, options, toTbl);
 }
示例#4
0
 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();
 }
示例#5
0
        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);
        }
示例#6
0
        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);
            }
        }
示例#7
0
        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);
        }
示例#8
0
 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));
 }
示例#9
0
 public void SetData(data.tmpDS.tradeEstimateDataTable dataTbl)
 {
     tradeEstimateSource.Sort       = dataTbl.onDateColumn.ColumnName + " DESC";
     tradeEstimateSource.DataSource = dataTbl;
     DoFilter();
 }
示例#10
0
 /// <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);
 }
示例#11
0
 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();
 }