Example #1
0
        private void StopBotIfNeeded()
        {
            if (_fileExists)
            {
                return;
            }

            _maxTimeFileMayNotExist = TimeSpan.FromSeconds(5);
            if (_robot.Server.Time - _fileDoesNotExistSince > _maxTimeFileMayNotExist)
            {
                _robot.Print(string.Format("Couldn't find file for {0}s.", (int)_maxTimeFileMayNotExist.TotalSeconds));
                _robot.Stop();
            }
        }
Example #2
0
        public bool Execute(IEnumerable <TraderCopierArguments> copierArgumentses)
        {
            _copierArgumentses      = copierArgumentses;
            ExecutedOperationsCount = 0;

            var executedSuccessfully = true;
            var positionsMap         = GetPositionsMapByLabel();

            foreach (var arg in _copierArgumentses)
            {
                if (!ValidateFilter(arg))
                {
                    continue;
                }

                Position[] positionsToModify;
                if (positionsMap.TryGetValue(arg.Ticket, out positionsToModify))
                {
                    foreach (var position in positionsToModify)
                    {
                        executedSuccessfully &= UpdatePositionIfNeeded(position, arg);
                    }
                    positionsMap.Remove(arg.Ticket);
                }
                else
                {
                    executedSuccessfully &= ExecuteAndModify(arg);
                    if (_noMoney)
                    {
                        _robot.Stop();
                        return(false);
                    }
                }
            }

            var positionToCloses = positionsMap.Values.SelectMany(positions => positions);

            foreach (var positionToClose in positionToCloses)
            {
                executedSuccessfully &= _robot.ClosePosition(positionToClose).IsSuccessful;
            }

            return(executedSuccessfully);
        }