public SystemDefinitionFactory(IStockDataProvider dataProvider, ISystemDataLoader dataLoader, ISlippage slippage, ICommission commission, ISystemExecutionLogger systemExecutionLogger) { _dataProvider = dataProvider; _dataLoader = dataLoader; _slippage = slippage; _commission = commission; _systemExecutionLogger = systemExecutionLogger; }
public SignalsBBTrendFunds(ISystemDataLoader dataLoader, IStockDataProvider dataProvider, ISystemExecutionLogger systemExecutionLogger) { _dataLoader = dataLoader; _systemExecutionLogger = systemExecutionLogger; _dataRange = StockDataRange.Monthly; _fundsData = new BBTrendFundsData(_fundsNames.Length); BBTrendFundsDataCalculator.Initialize(_fundsData, _fundsNames, BBPeriod, BBSigmaWidth, HLPeriod, dataProvider); _rebalanceSignal = new ModNCounter(RebalanceInterval); }
public PriceCrossingSMA(IStockDataProvider dataProvider, ISystemDataLoader dataLoader, ISlippage slippage, ICommission commission, ISystemExecutionLogger systemExecutionLogger) { _dataProvider = dataProvider; _dataLoader = dataLoader; _slippage = slippage; _commission = commission; _systemExecutionLogger = systemExecutionLogger; SystemParams.Set(PriceCrossingSMAParams.StockName, ""); SystemParams.Set(PriceCrossingSMAParams.SMAPeriod, 20); }
public BBTrendFunds(IStockDataProvider dataProvider, ISystemDataLoader dataLoader, ISlippage slippage, ICommission commission, ISystemExecutionLogger systemExecutionLogger) { _dataProvider = dataProvider; _dataLoader = dataLoader; _slippage = slippage; _commission = commission; _systemExecutionLogger = systemExecutionLogger; //SystemParams.Set(BBTrendParams.StockName, ""); //SystemParams.Set(BBTrendParams.BBPeriod, 20); //SystemParams.Set(BBTrendParams.BBSigmaWidth, 2f); }
//private readonly ModNCounter _rebalanceSignal; public SignalsBBTrendMultiFunds(ISystemDataLoader dataLoader, IStockDataProvider dataProvider, ISystemExecutionLogger systemExecutionLogger) { _aggressiveFunds = _fundsNames.Select((_, i) => i > 0).ToArray(); if (_fundsNames.Length != _aggressiveFunds.Length) { throw new Exception("_fundsNames != _aggressiveFunds"); } _dataLoader = dataLoader; _systemExecutionLogger = systemExecutionLogger; _dataRange = StockDataRange.Monthly; _fundsData = new BBTrendFundsData(_fundsNames.Length); BBTrendFundsDataCalculator.Initialize(_fundsData, _fundsNames, BBPeriod, BBSigmaWidth, HLPeriod, dataProvider); //_rebalanceSignal = new ModNCounter(RebalanceInterval); }
public SimplexMultiFunds(IStockDataProvider dataProvider, ISystemDataLoader dataLoader, ISlippage slippage, ICommission commission, ISystemExecutionLogger systemExecutionLogger) { _dataProvider = dataProvider; _dataLoader = dataLoader; _slippage = slippage; _commission = commission; _systemExecutionLogger = systemExecutionLogger; SystemParams.Set(SimplexMultiFundsParams.AvgProfitRange, 3); SystemParams.Set(SimplexMultiFundsParams.AvgChangeRange, 6); SystemParams.Set(SimplexMultiFundsParams.AcceptableSingleDD, 0.1); SystemParams.Set(SimplexMultiFundsParams.RiskSigmaMultiplier, 2.0); SystemParams.Set(SimplexMultiFundsParams.MaxSinglePositionSize, 0.8); SystemParams.Set(SimplexMultiFundsParams.MaxPortfolioRisk, 0.8); SystemParams.Set(SimplexMultiFundsParams.TruncateBalanceToNthPlace, 3); }
public SignalsSimplexMultiFunds(ISystemDataLoader dataLoader, IStockDataProvider dataProvider, ISystemExecutionLogger systemExecutionLogger, MOParams systemParams) { _avgProfitRange = systemParams.Get(SimplexMultiFundsParams.AvgProfitRange).As <int>(); _avgChangeRange = systemParams.Get(SimplexMultiFundsParams.AvgChangeRange).As <int>(); _acceptableSingleDD = systemParams.Get(SimplexMultiFundsParams.AcceptableSingleDD).As <double>(); _riskSigmaMultiplier = systemParams.Get(SimplexMultiFundsParams.RiskSigmaMultiplier).As <double>(); _maxSinglePositionSize = systemParams.Get(SimplexMultiFundsParams.MaxSinglePositionSize).As <double>(); _maxPortfolioRisk = systemParams.Get(SimplexMultiFundsParams.MaxPortfolioRisk).As <double>(); _truncateBalanceToNthPlace = systemParams.Get(SimplexMultiFundsParams.TruncateBalanceToNthPlace).As <int>(); _aggressiveFunds = _fundsNames.Select((_, i) => i > 0).ToArray(); if (_fundsNames.Length != _aggressiveFunds.Length) { throw new Exception("_fundsNames != _aggressiveFunds"); } _dataLoader = dataLoader; _systemExecutionLogger = systemExecutionLogger; _dataRange = StockDataRange.Monthly; _fundsData = new SimplexFundsData(_fundsNames.Length); SimplexFundsDataCalculator.Initialize(_fundsData, _fundsNames, dataProvider); }