private IReadOnlyCollection <DataGenerationPlan> Plan( IReadOnlyCollection <string> sedols, ExchangeDto dto, DateTime from) { if (!sedols?.Any() ?? true) { return(new DataGenerationPlan[0]); } var result = new List <DataGenerationPlan>(); var i = 1; foreach (var sedol in sedols) { var openTime = from.Add(dto.MarketOpenTime).AddMinutes(i * 60); var intervalInstruction = new IntervalEquityPriceInstruction( sedol, openTime.TimeOfDay, openTime.TimeOfDay.Add(TimeSpan.FromMinutes(45)), TimeSpan.FromMinutes(1), from.Date.Add(openTime.TimeOfDay), from.Date.Add(openTime.TimeOfDay.Add(TimeSpan.FromMinutes(45))), PriceManipulation.Increase, 0.03m); var newPlan = new DataGenerationPlan(sedol, intervalInstruction); result.Add(newPlan); i++; } return(result); }
private DataGenerationPlan BuildPlan(IReadOnlyCollection <string> sedols, DateTime from, ExchangeDto dto) { if (sedols == null || !sedols.Any()) { return(new DataGenerationPlan( null, new IntervalEquityPriceInstruction( string.Empty, TimeSpan.MinValue, TimeSpan.MinValue, TimeSpan.FromDays(1), DateTime.MinValue, DateTime.MinValue, PriceManipulation.Consistent, 0m))); } var sedol = sedols.FirstOrDefault(); var openTime = from.Add(dto.MarketOpenTime).AddMinutes(60); var plan = new DataGenerationPlan( sedol, new IntervalEquityPriceInstruction( sedol, openTime.TimeOfDay, openTime.TimeOfDay.Add(TimeSpan.FromMinutes(30)), TimeSpan.FromMinutes(1), from.Date.Add(openTime.TimeOfDay), from.Date.Add(openTime.TimeOfDay.Add(TimeSpan.FromMinutes(30))), PriceManipulation.Increase, 0.01m)); return(plan); }
public TradingWashTradeProcess(ITradeStrategy <Order> orderStrategy, DataGenerationPlan plan, ILogger logger) : base(logger, orderStrategy) { this._plan = plan; this._thirdGroupActivation = this._plan.EquityInstructions.TerminationInUtc.AddHours(4); }
public IOrderDataGenerator Build(DataGenerationPlan plan) { return(new TradingWashTradeProcess(new StubTradeStrategy(), plan, this._logger)); }
public PlanEquityStrategy(DataGenerationPlan plan, IEquityDataGeneratorStrategy baseStrategy) { this._plan = plan ?? throw new ArgumentNullException(nameof(plan)); this._baseStrategy = baseStrategy ?? throw new ArgumentNullException(nameof(baseStrategy)); }