public void Initialize()
 {
     _algorithm = new QCAlgorithm();
     _algorithm.SetBrokerageModel(BrokerageName.FxcmBrokerage);
     _algorithm.SetCash(100000);
     _algorithm.AddSecurity(SecurityType.Forex, Ticker);
     _algorithm.SetFinishedWarmingUp();
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 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);
 }