Forex_Strategy_Builder.Small_Balance_Chart.SetChartData C# (CSharp) Method

SetChartData() public method

Sets chart's instrument and back testing data.
public SetChartData ( ) : void
return void
        public void SetChartData()
        {
            isNotPaint = !Data.IsData || !Data.IsResult || Data.Bars <= Data.FirstBar;

            if (isNotPaint) return;

            showPriceLine   = Configs.ShowPriceChartOnAccountChart && Backtester.ExecutedOrders > 0;
            isScanPerformed = Backtester.IsScanPerformed;

            firstBar   = Data.FirstBar;
            bars       = Data.Bars;
            chartBars  = Data.Bars - firstBar;

            int maxBalance = Configs.AccountInMoney ? (int)Backtester.MaxMoneyBalance : Backtester.MaxBalance;
            int minBalance = Configs.AccountInMoney ? (int)Backtester.MinMoneyBalance : Backtester.MinBalance;
            int maxEquity  = Configs.AccountInMoney ? (int)Backtester.MaxMoneyEquity  : Backtester.MaxEquity;
            int minEquity  = Configs.AccountInMoney ? (int)Backtester.MinMoneyEquity  : Backtester.MinEquity;

            if (Configs.AdditionalStatistics)
            {
                int maxLongBalance  = Configs.AccountInMoney ? (int)Backtester.MaxLongMoneyBalance  : Backtester.MaxLongBalance;
                int minLongBalance  = Configs.AccountInMoney ? (int)Backtester.MinLongMoneyBalance  : Backtester.MinLongBalance;
                int maxShortBalance = Configs.AccountInMoney ? (int)Backtester.MaxShortMoneyBalance : Backtester.MaxShortBalance;
                int minShortBalance = Configs.AccountInMoney ? (int)Backtester.MinShortMoneyBalance : Backtester.MinShortBalance;
                int maxLSBalance = Math.Max(maxLongBalance, maxShortBalance);
                int minLSBalance = Math.Min(minLongBalance, minShortBalance);

                maximum = Math.Max(Math.Max(maxBalance, maxEquity), maxLSBalance) + 1;
                minimum = Math.Min(Math.Min(minBalance, minEquity), minLSBalance) - 1;
            }
            else
            {
                maximum = Math.Max(maxBalance, maxEquity) + 1;
                minimum = Math.Min(minBalance, minEquity) - 1;
            }

            minimum = (int)(Math.Floor(minimum / 10f) * 10);

            dataMaxPrice = Data.MaxPrice;
            dataMinPrice = Data.MinPrice;

            if (showPriceLine)
            {
                dataClose = new double[bars];
                Data.Close.CopyTo(dataClose, 0);
            }

            if (Configs.AccountInMoney)
            {
                backtesterMoneyBalance = new double[bars];
                backtesterMoneyEquity  = new double[bars];
            }
            else
            {
                backtesterBalance = new int[bars];
                backtesterEquity  = new int[bars];
            }

            if (Configs.AdditionalStatistics)
            {
                if (Configs.AccountInMoney)
                {
                    backtesterLongMoneyBalance  = new double[bars];
                    backtesterShortMoneyBalance = new double[bars];
                }
                else
                {
                    backtesterLongBalance  = new int[bars];
                    backtesterShortBalance = new int[bars];
                }
            }

            for (int bar = firstBar; bar < bars; bar++)
            {
                if (Configs.AccountInMoney)
                {
                    backtesterMoneyBalance[bar] = Backtester.MoneyBalance(bar);
                    backtesterMoneyEquity[bar]  = Backtester.MoneyEquity(bar);
                }
                else
                {
                    backtesterBalance[bar] = Backtester.Balance(bar);
                    backtesterEquity[bar]  = Backtester.Equity(bar);
                }

                if (Configs.AdditionalStatistics)
                {
                    if (Configs.AccountInMoney)
                    {
                        backtesterLongMoneyBalance[bar]  = Backtester.LongMoneyBalance(bar);
                        backtesterShortMoneyBalance[bar] = Backtester.ShortMoneyBalance(bar);
                    }
                    else
                    {
                        backtesterLongBalance[bar]  = Backtester.LongBalance(bar);
                        backtesterShortBalance[bar] = Backtester.ShortBalance(bar);
                    }
                }
            }

            marginCallBar = Backtester.MarginCallBar;

            if (isOOS && barOOS > firstBar)
            {
                balance = (float)(Configs.AccountInMoney ? Backtester.MoneyBalance(barOOS) : Backtester.Balance(barOOS));
                dataTimeBarOOS = Data.Time[barOOS];
            }
            else
                balance = (float)(Configs.AccountInMoney ? Backtester.NetMoneyBalance : Backtester.NetBalance);

            return;
        }

Usage Example

        // Updates the balance chart.
        void UpdateBalanceChart()
        {
            if (!isChartRecalculation)
            {
                return;
            }

            pnlSmallBalanceChart.SetChartData();
            pnlSmallBalanceChart.InitChart();
            pnlSmallBalanceChart.Invalidate();
        }
All Usage Examples Of Forex_Strategy_Builder.Small_Balance_Chart::SetChartData