Пример #1
0
        public double GetSpreadOccurence(double minSpread)
        {
            var count     = Spreads.Count(_ => _ > minSpread);
            var occurence = Math.Round(count / (double)NbBlanks * 100);

            return(occurence);
        }
Пример #2
0
        private bool CanTrade()
        {
            if (_tab.Connector.MyServer.ServerType == ServerType.Optimizer)
            {
                return(true);
            }

            if (GetOpenPositionsCount() >= MaxPosition.ValueInt)
            {
                return(false);
            }
            if (SpredList == null)
            {
                SpredList = new List <Spreads>();
            }

            SpredList.Clear();
            foreach (var panel in OsTraderMaster.Master._panelsArray)
            {
                if (panel.IsConnected && panel.GetNameStrategyType() == this.GetNameStrategyType())
                {
                    foreach (var tab in panel.TabsSimple)
                    {
                        if (tab.Connector.ServerType == _tab.Connector.ServerType &&
                            tab.Connector.PortfolioName == _tab.Connector.PortfolioName &&
                            tab.CandlesAll != null)
                        {
                            Spreads _sp = new Spreads();
                            _sp.Security = tab.Securiti;
                            _sp.spread   = ((EnvelopCountertrend)panel).GetSpread();
                            SpredList.Add(_sp);
                        }
                    }
                }
            }
            SpredList.Sort((a, b) => decimal.Compare(a.spread, b.spread));
            for (int i = 0; i < MaxPosition.ValueInt; i++)
            {
                if (_tab.Securiti == SpredList[i].Security)
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #3
0
        public virtual void Worsen(IInjured injured, IUserinterface ui, Guid round)
        {
            Amplify(injured, 10, ui, round);

            //if wounds can become infected
            if (!injured.IsInfected && Infection)
            {
                injured.IsInfected = true;
                ui.Log.Info(new LogEntry($"{injured.Owner} {injured.Name} became infected", round, injured.Owner as IActor));
                injured.Name = "Infected " + injured.Name;
            }
            else
            {
                ui.Log.Info(new LogEntry($"{injured.Owner} {injured.Name} {WorsenVerb}", round, injured.Owner as IActor));
            }

            Spreads?.HandleSpreading(injured, this, ui, round);
        }