1313 * limitations under the License.
1414*/
1515
16- using System ;
1716using NUnit . Framework ;
1817using QuantConnect . Data ;
1918using QuantConnect . Data . Market ;
@@ -27,12 +26,24 @@ public class CfdTests
2726 [ Test ]
2827 public void ConstructorExtractsQuoteCurrency ( )
2928 {
30- var symbol = Symbol . Create ( "DE30EUR" , SecurityType . Cfd , Market . Oanda ) ;
31- var config = new SubscriptionDataConfig ( typeof ( TradeBar ) , symbol , Resolution . Minute , TimeZones . Utc , TimeZones . NewYork , true , true , true ) ;
32- var symbolProperties = new SymbolProperties ( "Dax German index" , "EUR" , 1 , 1 , 1 , string . Empty ) ;
33- var cfd = new QuantConnect . Securities . Cfd . Cfd ( SecurityExchangeHours . AlwaysOpen ( config . DataTimeZone ) , new Cash ( "EUR" , 0 , 0 ) , config , symbolProperties , ErrorCurrencyConverter . Instance , RegisteredSecurityDataTypesProvider . Null ) ;
29+ var cfd = CreateCfd ( contractMultiplier : 1m ) ;
3430 Assert . AreEqual ( "EUR" , cfd . QuoteCurrency . Symbol ) ;
3531 }
3632
33+ [ Test ]
34+ public void ContractMultiplierCanBeSetByUser ( )
35+ {
36+ var cfd = CreateCfd ( contractMultiplier : 1m ) ;
37+ cfd . ContractMultiplier = 5m ;
38+ Assert . AreEqual ( 5m , cfd . ContractMultiplier ) ;
39+ }
40+
41+ private static QuantConnect . Securities . Cfd . Cfd CreateCfd ( decimal contractMultiplier )
42+ {
43+ var symbol = Symbol . Create ( "DE30EUR" , SecurityType . Cfd , Market . Oanda ) ;
44+ var config = new SubscriptionDataConfig ( typeof ( TradeBar ) , symbol , Resolution . Minute , TimeZones . Utc , TimeZones . NewYork , true , true , true ) ;
45+ var symbolProperties = new SymbolProperties ( "Dax German index" , "EUR" , contractMultiplier , 1 , 1 , string . Empty ) ;
46+ return new QuantConnect . Securities . Cfd . Cfd ( SecurityExchangeHours . AlwaysOpen ( config . DataTimeZone ) , new Cash ( "EUR" , 0 , 0 ) , config , symbolProperties , ErrorCurrencyConverter . Instance , RegisteredSecurityDataTypesProvider . Null ) ;
47+ }
3748 }
3849}
0 commit comments