public double GetSpreadOccurence(double minSpread) { var count = Spreads.Count(_ => _ > minSpread); var occurence = Math.Round(count / (double)NbBlanks * 100); return(occurence); }
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); }
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); }