/// <summary>
 /// The default constructor.
 /// </summary>
 static Data()
 {
     IndicatorsForBacktestOnly = new[]
     {
         "Random Filter",
         "Date Filter",
         "Data Bars Filter",
         "Lot Limiter"
     };
     PositionOpenTime = DateTime.MinValue;
     PositionType     = -1;
     BalanceData      = new BalanceChartUnit[BalanceLenght];
     LibraryVersion   = "unknown";
     ExpertVersion    = "unknown";
     TerminalName     = "MetaTrader";
     PointChar        = '.';
     DFS = "dd.MM";
     DF  = "dd.MM.yy";
     AutoUsePrvBarValue  = true;
     SourceFolder        = @"Custom Indicators\";
     LoadedSavedStrategy = "";
     FirstBar            = 40;
     StrategyName        = "New.xml";
     StrategyDir         = @"Strategies\";
     DefaultStrategyDir  = @"Strategies\";
     ColorDir            = @"Colors\";
     LanguageDir         = @"Languages\";
     SystemDir           = @"System\";
     ProgramDir          = @"";
     IsProgramBeta       = false;
     IsStrategyChanged   = false;
     Debug       = false;
     IsData      = false;
     IsConnected = false;
     IsAutoStart = false;
     StartAutotradeWhenConnected = false;
     ConnectionID       = 0;
     PositionComment    = "";
     PositionProfit     = 0;
     PositionTakeProfit = 0;
     PositionStopLoss   = 0;
     PositionOpenPrice  = 0;
     PositionLots       = 0;
     PositionTicket     = 0;
     WrongStopsRetry    = 0;
     WrongTakeProf      = 0;
     WrongStopLoss      = 0;
     SecondsLiveTrading = 0;
     SavedStrategies    = 0;
     SecondsDemoTrading = 0;
     LiveTradeStartTime = DateTime.Now;
     DemoTradeStartTime = DateTime.Now;
     ProgramName        = "Forex Strategy Trader";
     ProgramVersion     = Application.ProductVersion;
     string[] asVersion = ProgramVersion.Split('.');
     ProgramID = 1000000 * int.Parse(asVersion[0]) + 10000 * int.Parse(asVersion[1]) +
                 100 * int.Parse(asVersion[2]) + int.Parse(asVersion[3]);
     Strategy.GenerateNew();
     StackStrategy = new Stack <Strategy>();
 }
 /// <summary>
 /// The default constructor.
 /// </summary>
 static Data()
 {
     IndicatorsForBacktestOnly = new[]
                                     {
                                         "Random Filter",
                                         "Date Filter",
                                         "Data Bars Filter",
                                         "Lot Limiter"
                                     };
     PositionOpenTime = DateTime.MinValue;
     PositionType = -1;
     BalanceData = new BalanceChartUnit[BalanceLenght];
     LibraryVersion = "unknown";
     ExpertVersion = "unknown";
     TerminalName = "MetaTrader";
     PointChar = '.';
     DFS = "dd.MM";
     DF = "dd.MM.yy";
     AutoUsePrvBarValue = true;
     SourceFolder = @"Custom Indicators\";
     LoadedSavedStrategy = "";
     FirstBar = 40;
     StrategyName = "New.xml";
     StrategyDir = @"Strategies\";
     DefaultStrategyDir = @"Strategies\";
     ColorDir = @"Colors\";
     LanguageDir = @"Languages\";
     SystemDir = @"System\";
     ProgramDir = @"";
     IsProgramBeta = false;
     IsStrategyChanged = false;
     Debug = false;
     IsData = false;
     IsConnected = false;
     IsAutoStart = false;
     StartAutotradeWhenConnected = false;
     ConnectionID = 0;
     PositionComment = "";
     PositionProfit = 0;
     PositionTakeProfit = 0;
     PositionStopLoss = 0;
     PositionOpenPrice = 0;
     PositionLots = 0;
     PositionTicket = 0;
     WrongStopsRetry = 0;
     WrongTakeProf = 0;
     WrongStopLoss = 0;
     SecondsLiveTrading = 0;
     SavedStrategies = 0;
     SecondsDemoTrading = 0;
     LiveTradeStartTime = DateTime.Now;
     DemoTradeStartTime = DateTime.Now;
     ProgramName = "Forex Strategy Trader";
     ProgramVersion = Application.ProductVersion;
     string[] asVersion = ProgramVersion.Split('.');
     ProgramID = 1000000*int.Parse(asVersion[0]) + 10000*int.Parse(asVersion[1]) +
                 100*int.Parse(asVersion[2]) + int.Parse(asVersion[3]);
     Strategy.GenerateNew();
     StackStrategy = new Stack<Strategy>();
 }
Exemple #3
0
        public static void ResetAccountStats()
        {
            AccountBalance    = 0;
            AccountEquity     = 0;
            AccountProfit     = 0;
            AccountFreeMargin = 0;

            BalanceDataPoints = 0;
            BalanceData       = new BalanceChartUnit[BalanceLenght];
        }
Exemple #4
0
        public static bool SetCurrentAccount(DateTime time, double balance, double equity, double profit,
                                             double freeMargin)
        {
            bool balanceChanged = false;
            bool equityChanged  = false;

            IsBalanceDataChganged = false;
            if (Math.Abs(AccountBalance - balance) > 0.01)
            {
                balanceChanged = true;
            }
            if (Math.Abs(AccountEquity - equity) > 0.01)
            {
                equityChanged = true;
            }

            AccountBalance    = balance;
            AccountEquity     = equity;
            AccountProfit     = profit;
            AccountFreeMargin = freeMargin;

            if (balance > 0.01 && (equityChanged || balanceChanged))
            {
                var chartUnit = new BalanceChartUnit {
                    Time = time, Balance = balance, Equity = equity
                };

                if (BalanceDataPoints == 0)
                {
                    BalanceData[BalanceDataPoints] = chartUnit;
                    BalanceDataPoints++;
                }

                if (BalanceDataPoints == BalanceLenght)
                {
                    for (int i = 0; i < BalanceLenght - 1; i++)
                    {
                        BalanceData[i] = BalanceData[i + 1];
                    }
                    BalanceDataPoints = BalanceLenght - 1;
                }

                if (BalanceDataPoints < BalanceLenght)
                {
                    BalanceData[BalanceDataPoints] = chartUnit;
                    BalanceDataPoints++;
                }

                IsBalanceDataChganged = true;
            }

            return(balanceChanged);
        }
 /// <summary>
 /// Updates the chart.
 /// </summary>
 protected void UpdateBalanceChart(BalanceChartUnit[] balanceData, int balancePoints)
 {
     if (_balanceChart.InvokeRequired)
     {
         _balanceChart.BeginInvoke(new UpdateBalanceChartDelegate(UpdateBalanceChart),
                                   new object[] {balanceData, balancePoints});
     }
     else
     {
         _balanceChart.UpdateChartData(balanceData, balancePoints);
         _balanceChart.RefreshChart();
     }
 }
        public static bool SetCurrentAccount(DateTime time, double balance, double equity, double profit,
                                             double freeMargin)
        {
            bool balanceChanged = false;
            bool equityChanged = false;
            IsBalanceDataChganged = false;
            if (Math.Abs(AccountBalance - balance) > 0.01) balanceChanged = true;
            if (Math.Abs(AccountEquity - equity) > 0.01) equityChanged = true;

            AccountBalance = balance;
            AccountEquity = equity;
            AccountProfit = profit;
            AccountFreeMargin = freeMargin;

            if (balance > 0.01 && (equityChanged || balanceChanged))
            {
                var chartUnit = new BalanceChartUnit {Time = time, Balance = balance, Equity = equity};

                if (BalanceDataPoints == 0)
                {
                    BalanceData[BalanceDataPoints] = chartUnit;
                    BalanceDataPoints++;
                }

                if (BalanceDataPoints == BalanceLenght)
                {
                    for (int i = 0; i < BalanceLenght - 1; i++)
                        BalanceData[i] = BalanceData[i + 1];
                    BalanceDataPoints = BalanceLenght - 1;
                }

                if (BalanceDataPoints < BalanceLenght)
                {
                    BalanceData[BalanceDataPoints] = chartUnit;
                    BalanceDataPoints++;
                }

                IsBalanceDataChganged = true;
            }

            return balanceChanged;
        }
        public static void ResetAccountStats()
        {
            AccountBalance = 0;
            AccountEquity = 0;
            AccountProfit = 0;
            AccountFreeMargin = 0;

            BalanceDataPoints = 0;
            BalanceData = new BalanceChartUnit[BalanceLenght];
        }
        /// <summary>
        /// Sets data to be displayed.
        /// </summary>
        public void UpdateChartData(BalanceChartUnit[] data, int points)
        {
            if (data == null || points < 1)
                return;

            _balanceData = new double[points];
            _equityData = new double[points];
            for (int p = 0; p < points; p++)
            {
                _balanceData[p] = data[p].Balance;
                _equityData[p] = data[p].Equity;
            }

            _maxBalance = int.MinValue;
            _minBalance = int.MaxValue;
            _maxEquity = int.MinValue;
            _minEquity = int.MaxValue;

            foreach (double balance in _balanceData)
            {
                if (balance > _maxBalance) _maxBalance = (int) balance;
                if (balance < _minBalance) _minBalance = (int) balance;
            }

            foreach (double equity in _equityData)
            {
                if (equity > _maxEquity) _maxEquity = (int) equity;
                if (equity < _minEquity) _minEquity = (int) equity;
            }

            _startTime = data[0].Time;

            InitChart();
        }