public SpoofingRuleBreach( IFactorValue factorValue, ISystemProcessOperationContext operationContext, string correlationId, TimeSpan window, ITradePosition fulfilledTradePosition, ITradePosition cancelledTradePosition, FinancialInstrument security, Order mostRecentTrade, ISpoofingRuleEquitiesParameters spoofingEquitiesParameters, string description, string caseTitle, DateTime universeDateTime) { this.FactorValue = factorValue; this.Window = window; this.Security = security; this.MostRecentTrade = mostRecentTrade; var totalTrades = fulfilledTradePosition.Get().ToList(); totalTrades.AddRange(cancelledTradePosition.Get()); this.Trades = new TradePosition(totalTrades); this.TradesInFulfilledPosition = fulfilledTradePosition; this.CancelledTrades = cancelledTradePosition; this.RuleParameterId = spoofingEquitiesParameters?.Id ?? string.Empty; this.SystemOperationId = operationContext.Id.ToString(); this.CorrelationId = correlationId; this.RuleParameters = spoofingEquitiesParameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }
public LayeringRuleBreach( IFactorValue factorValue, ISystemProcessOperationContext operationContext, string correlationId, ILayeringRuleEquitiesParameters equitiesParameters, TimeSpan window, ITradePosition trades, FinancialInstrument security, RuleBreachDescription bidirectionalTradeBreach, RuleBreachDescription dailyVolumeTradeBreach, RuleBreachDescription windowVolumeTradeBreach, RuleBreachDescription priceMovementBreach, string description, string caseTitle, DateTime universeDateTime) { this.FactorValue = factorValue; this.EquitiesParameters = equitiesParameters; this.Window = window; this.Trades = trades; this.Security = security; this.BidirectionalTradeBreach = bidirectionalTradeBreach; this.DailyVolumeTradeBreach = dailyVolumeTradeBreach; this.WindowVolumeTradeBreach = windowVolumeTradeBreach; this.PriceMovementBreach = priceMovementBreach; this.RuleParameterId = equitiesParameters?.Id ?? string.Empty; this.SystemOperationId = operationContext.Id.ToString(); this.CorrelationId = correlationId; this.RuleParameters = equitiesParameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }
public MarkingTheCloseBreach( IFactorValue factorValue, ISystemProcessOperationContext operationContext, string correlationId, TimeSpan window, FinancialInstrument security, MarketOpenClose marketClose, ITradePosition tradingPosition, IMarkingTheCloseEquitiesParameters equitiesParameters, VolumeBreach dailyBreach, VolumeBreach windowBreach, string description, string caseTitle, DateTime universeDateTime) { this.FactorValue = factorValue; this.Window = window; this.Security = security ?? throw new ArgumentNullException(nameof(security)); this.MarketClose = marketClose ?? throw new ArgumentNullException(nameof(marketClose)); this.Trades = tradingPosition ?? new TradePosition(new List <Order>()); this.EquitiesParameters = equitiesParameters ?? throw new ArgumentNullException(nameof(equitiesParameters)); this.DailyBreach = dailyBreach; this.WindowBreach = windowBreach; this.RuleParameterId = equitiesParameters?.Id ?? string.Empty; this.SystemOperationId = operationContext.Id.ToString(); this.CorrelationId = correlationId; this.RuleParameters = equitiesParameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }
/// <summary> /// Initializes a new instance of the <see cref="RuleBreach"/> class. /// </summary> /// <param name="window"> /// The window. /// </param> /// <param name="trades"> /// The trades. /// </param> /// <param name="security"> /// The security. /// </param> /// <param name="isBackTestRun"> /// The is back test run. /// </param> /// <param name="ruleParameterId"> /// The rule parameter id. /// </param> /// <param name="systemOperationId"> /// The system operation id. /// </param> /// <param name="correlationId"> /// The correlation id. /// </param> /// <param name="factorValue"> /// The factor value. /// </param> /// <param name="ruleParameter"> /// The rule parameter. /// </param> /// <param name="universeDateTime"> /// The universe date time. /// </param> /// <param name="description"> /// The description. /// </param> /// <param name="caseTitle"> /// The case title. /// </param> public RuleBreach( TimeSpan window, ITradePosition trades, FinancialInstrument security, bool isBackTestRun, string ruleParameterId, string systemOperationId, string correlationId, IFactorValue factorValue, IRuleParameter ruleParameter, DateTime universeDateTime, string description, string caseTitle) { this.Window = window; this.Trades = trades; this.Security = security; this.IsBackTestRun = isBackTestRun; this.RuleParameterId = ruleParameterId; this.SystemOperationId = systemOperationId; this.CorrelationId = correlationId; this.FactorValue = factorValue; this.RuleParameters = ruleParameter; this.UniverseDateTime = universeDateTime; this.Description = description; this.CaseTitle = caseTitle; }
public RampingRuleBreach( TimeSpan window, ITradePosition trades, FinancialInstrument security, string ruleParameterId, string systemOperationId, string correlationId, IFactorValue factorValue, IRampingStrategySummaryPanel summaryPanel, IRampingRuleEquitiesParameters parameters, string description, string caseTitle, DateTime universeDateTime) { this.Window = window; this.Trades = trades; this.Security = security; this.RuleParameterId = ruleParameterId ?? string.Empty; this.SystemOperationId = systemOperationId ?? string.Empty; this.CorrelationId = correlationId ?? string.Empty; this.FactorValue = factorValue; this.SummaryPanel = summaryPanel; this.RuleParameters = parameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }
public PlacingOrderWithNoIntentToExecuteRuleRuleBreach( TimeSpan window, ITradePosition trades, FinancialInstrument security, IFactorValue factorValue, decimal meanPrice, decimal sdPrice, IReadOnlyCollection <ProbabilityOfExecution> probabilityForOrders, IPlacingOrderWithNoIntentToExecuteRuleEquitiesParameters parameters, ISystemProcessOperationRunRuleContext ctx, string description, string caseTitle, DateTime universeDateTime) { this.Window = window; this.Trades = trades; this.Security = security; this.FactorValue = factorValue; this.Parameters = parameters; this.MeanPrice = meanPrice; this.StandardDeviationPrice = sdPrice; this.ProbabilityForOrders = probabilityForOrders ?? new List <ProbabilityOfExecution>(); this.RuleParameterId = parameters.Id; this.SystemOperationId = ctx.Id(); this.CorrelationId = ctx.CorrelationId(); this.RuleParameters = parameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }
public WashTradeRuleBreach( TimeSpan windowSize, IFactorValue factorValue, ISystemProcessOperationContext operationContext, string correlationId, IWashTradeRuleParameters equitiesParameters, ITradePosition tradePosition, FinancialInstrument security, WashTradeAveragePositionBreach averagePositionBreach, WashTradeClusteringPositionBreach clusteringPositionBreach, string description, string caseTitle, DateTime universeDateTime) { this.FactorValue = factorValue; this.EquitiesParameters = equitiesParameters ?? throw new ArgumentNullException(nameof(equitiesParameters)); this.Window = windowSize; this.Trades = tradePosition; this.Security = security; this.AveragePositionBreach = averagePositionBreach ?? throw new ArgumentNullException(nameof(averagePositionBreach)); this.ClusteringPositionBreach = clusteringPositionBreach ?? throw new ArgumentNullException(nameof(clusteringPositionBreach)); this.RuleParameterId = equitiesParameters?.Id ?? string.Empty; this.SystemOperationId = operationContext.Id.ToString(); this.CorrelationId = correlationId; this.RuleParameters = equitiesParameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }
/// <summary> /// The clone. /// </summary> /// <param name="factor"> /// The factor. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue factor) { var clone = (PlacingOrdersWithNoIntentToExecuteRule)Clone(); clone.OrganisationFactorValue = factor; return(clone); }
/// <summary> /// Typed cloning for factor value splitting over values i.e. fund a, fund b /// </summary> /// <param name="factor">fund a</param> /// <returns>a shallow clone of the rule</returns> public virtual IUniverseCloneableRule Clone(IFactorValue factor) { var clone = (FixedIncomeHighProfitsStreamRule)this.Clone(); clone.OrganisationFactorValue = factor; return(clone); }
/// <summary> /// The clone. /// </summary> /// <param name="factor"> /// The factor. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue factor) { var clone = (FixedIncomeWashTradeRule)this.Clone(); clone.OrganisationFactorValue = factor; return(clone); }
/// <summary> /// The clone. /// </summary> /// <param name="factor"> /// The factor. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue factor) { var clone = (RampingRule)Clone(); clone.OrganisationFactorValue = factor; return(clone); }
/// <summary> /// The clone. /// </summary> /// <param name="value"> /// The value. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue value) { var clone = (WashTradeRule)this.Clone(); clone.OrganisationFactorValue = value; return(clone); }
/// <summary> /// The clone. /// </summary> /// <param name="factor"> /// The factor. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue factor) { var clone = (CancelledOrderRule)this.Clone(); clone.OrganisationFactorValue = factor; return(clone); }
/// <summary> /// The clone. /// </summary> /// <param name="factorValue"> /// The factor value. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public override IUniverseCloneableRule Clone(IFactorValue factorValue) { var clone = (HighProfitMarketClosureRule)this.MemberwiseClone(); clone.BaseClone(); clone.OrganisationFactorValue = factorValue; return(clone); }
/// <summary> /// The clone. /// </summary> /// <param name="factor"> /// The factor. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue factor) { var cloneRule = new HighProfitsRule( this.equitiesParameters, (IHighProfitStreamRule)this.streamRule.Clone(factor), (IHighProfitMarketClosureRule)this.marketClosureRule.Clone(factor), this.logger); cloneRule.OrganisationFactorValue = factor; return(cloneRule); }
/// <summary> /// The cloning support for factor values. /// </summary> /// <param name="factor"> /// The factor. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue factor) { var cloneRule = new FixedIncomeHighProfitsRule( this.fixedIncomeParameters, this.streamRule.Clone(factor) as IFixedIncomeHighProfitsStreamRule, this.marketClosureRule.Clone(factor) as IFixedIncomeHighProfitsMarketClosureRule, this.logger); cloneRule.OrganisationFactorValue = factor; return(cloneRule); }
public CancelledOrderRuleBreach( IFactorValue factorValue, ISystemProcessOperationContext ctx, string correlationId, ICancelledOrderRuleEquitiesParameters parameters, ITradePosition trades, FinancialInstrument security, bool exceededPercentagePositionCancellations, decimal?percentagePositionCancelled, int?amountOfPositionCancelled, int?amountOfPositionInTotal, bool exceededPercentageTradeCountCancellations, decimal?percentageTradeCountCancelled, string description, string caseTitle, DateTime universeDateTime) { this.FactorValue = factorValue; this.Parameters = parameters; this.Trades = trades; this.Security = security; this.ExceededPercentagePositionCancellations = exceededPercentagePositionCancellations; this.PercentagePositionCancelled = percentagePositionCancelled; this.AmountOfPositionCancelled = amountOfPositionCancelled; this.AmountOfPositionInTotal = amountOfPositionInTotal; this.ExceededPercentageTradeCountCancellations = exceededPercentageTradeCountCancellations; this.PercentageTradeCountCancelled = percentageTradeCountCancelled; this.Window = parameters.Windows.BackwardWindowSize; this.RuleParameterId = this.Parameters?.Id ?? string.Empty; this.SystemOperationId = ctx.Id.ToString(); this.CorrelationId = correlationId; this.RuleParameters = this.Parameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }
public HighVolumeRuleBreach( IFactorValue factorValue, ISystemProcessOperationContext operationContext, string correlationId, TimeSpan window, ITradePosition trades, FinancialInstrument security, IHighVolumeRuleEquitiesParameters equitiesParameters, BreachDetails dailyBreach, BreachDetails windowBreach, BreachDetails marketCapBreach, decimal totalOrdersTradedInWindow, string description, string caseTitle, DateTime universeDateTime) { this.FactorValue = factorValue; this.Window = window; this.Trades = trades; this.Security = security; this.EquitiesParameters = equitiesParameters; this.DailyBreach = dailyBreach; this.WindowBreach = windowBreach; this.MarketCapBreach = marketCapBreach; this.TotalOrdersTradedInWindow = totalOrdersTradedInWindow; this.RuleParameterId = equitiesParameters?.Id ?? string.Empty; this.SystemOperationId = operationContext.Id.ToString(); this.CorrelationId = correlationId; this.RuleParameters = equitiesParameters; this.Description = description ?? string.Empty; this.CaseTitle = caseTitle ?? string.Empty; this.UniverseDateTime = universeDateTime; }