public void Initialize() { _algorithm = new QCAlgorithm(); _algorithm.SetBrokerageModel(BrokerageName.FxcmBrokerage); _algorithm.SetCash(100000); _algorithm.AddSecurity(SecurityType.Forex, Ticker); _algorithm.SetFinishedWarmingUp(); }
public void SetHoldings_Long_ToZero_RoundOff() { var algo = new QCAlgorithm(); algo.AddSecurity(SecurityType.Forex, "EURUSD"); algo.SetCash(10000); algo.SetBrokerageModel(BrokerageName.FxcmBrokerage); algo.Securities[Symbols.EURUSD].TransactionModel = new ConstantFeeTransactionModel(0); Security eurusd = algo.Securities[Symbols.EURUSD]; // Set Price to $25 Update(eurusd, 25); // So 10000/25 = 400, After Rounding off becomes 0 var actual = algo.CalculateOrderQuantity("EURUSD", 1m); Assert.AreEqual(0m, actual); }
public void SetHoldings_Short_RoundOff() { var algo = new QCAlgorithm(); algo.AddSecurity(SecurityType.Forex, "EURUSD"); algo.SetCash(100000); algo.SetBrokerageModel(BrokerageName.FxcmBrokerage); algo.Securities[Symbols.EURUSD].TransactionModel = new ConstantFeeTransactionModel(0); Security eurusd = algo.Securities[Symbols.EURUSD]; // Set Price to $26 Update(eurusd, 26); // So -100000/26 = -3846, After Rounding off becomes -3000 var actual = algo.CalculateOrderQuantity(Symbols.EURUSD, -1m); Assert.AreEqual(-3000m, actual); }