Example #1
0
        public void LoadGame(Mode mode = Mode.Simple)
        {
            gameMode = mode;
            switch (gameMode)
            {
            case Mode.Simple:
            {
                //Создаём отрисовщик графика
                chartDataManager = CreateRandomDataManager();
                //Задаём рандомную временнУю область игры. Некоторое количество свечей предыстории, некоторое количество свечей на игру
                int fluctuationCount = DateTimeTools.CountFramesInPeriod(chartDataManager.TFrame, chartDataManager.DataBeginTime, chartDataManager.DataEndTime, TimeSpan.Zero);
                SetRandomGameTime(fluctuationCount);
                chartDataManager.SetWorkDataRange(fluctuation1ID, fluctuationsCountToLoad);
            }
            break;

            default:
            {
                Debug.LogError("Не создан сценарий для данного мода");
            }
            break;
            }

            //задаём систему координат
            coordGrid = new CoordinateGrid(chartDataManager.WorkBeginTime, chartDataManager.TFrame);

            chartDrawer.ReloadData();
            chartDrawer.ChartDataManager = chartDataManager;
            chartDrawer.CoordGrid        = coordGrid;
            chartDrawer.CalculateMovingAverage(0, gamePrefs.Fast_ma_length);
            chartDrawer.CalculateMovingAverage(1, gamePrefs.Slow_ma_length);

            coordGrid.OnScaleChange += chartDrawer.UpdateInNextFrame;

            //Передаём ссылки на необходимые классы контроллеру навигации на графике
            NavigationController.Instance.ChartDataManager = chartDataManager;
            NavigationController.Instance.CoordGrid        = coordGrid;
            NavigationController.Instance.Initialize();
            PlayerManager.Instance.InitializeData(chartDataManager);
            PlayerManager.Instance.TradeIsClosed += ClosedTradeEffect;
            PlayerManager.Instance.TradeIsOpened += (price, position) =>
            {
                current_price = (double)price;
            };

            UpdatePlayersInfoFields();

            chartDataManager.WorkFlowChanged += () => { chartDrawer.UpdateMovingAverage(0, gamePrefs.Fast_ma_length); };
            chartDataManager.WorkFlowChanged += () => { chartDrawer.UpdateMovingAverage(1, gamePrefs.Slow_ma_length); };

            gamePrefs.FastMALengthChanged += (x) => { chartDrawer.CalculateMovingAverage(0, x); };
            gamePrefs.SlowMALengthChanged += (x) => { chartDrawer.CalculateMovingAverage(1, x); };

            GameButtonsSetActive(true);
            chartInterface.InterfaceSetActive(true);
        }
Example #2
0
 public void InitializeData(IScalableDataManager chartData)
 {
     this.chartData = chartData;
     tmpPlayerCap   = PlayerCurrentBalance = (decimal)PlayerPrefs.GetFloat("Deposit", 10000);
     PositionSize   = 0;
     bestTrade      = decimal.MinValue;
     worstTrade     = decimal.MaxValue;
     posTradesCount = negTradesCount = 0;
     TradeIsClosed  = null;
     TradeIsOpened  = null;
     playerOrders   = new List <Order>();
 }