diff --git a/Common/Orders/Fees/InteractiveBrokersFeeModel.cs b/Common/Orders/Fees/InteractiveBrokersFeeModel.cs index 296a304f4a6a..76f4b36b2d6b 100644 --- a/Common/Orders/Fees/InteractiveBrokersFeeModel.cs +++ b/Common/Orders/Fees/InteractiveBrokersFeeModel.cs @@ -418,7 +418,7 @@ private static CashAmount EUREXFutureFees(Security security) { "MYM", 0.25m }, { "M2K", 0.25m }, { "MES", 0.25m }, { "MNQ", 0.25m }, { "2YY", 0.25m }, { "5YY", 0.25m }, { "10Y", 0.25m }, { "30Y", 0.25m }, { "MCL", 0.25m }, { "MGC", 0.25m }, { "SIL", 0.25m }, // Cryptocurrency Futures - { "BTC", 5m }, { "MBT", 2.25m }, { "ETH", 3m }, { "MET", 0.20m }, + { "BTC", 5m }, { "MBT", 2.25m }, { "ETH", 3m }, { "MET", 0.20m }, { "MIB", 2.25m }, { "MRB", 0.20m }, // E-mini FX (currencies) Futures { "E7", 0.50m }, { "J7", 0.50m }, // Micro E-mini FX (currencies) Futures @@ -441,7 +441,7 @@ private static CashAmount EUREXFutureFees(Security security) { "MYM", 0.25m }, { "M2K", 0.25m }, { "MES", 0.25m }, { "MNQ", 0.25m }, { "2YY", 0.25m }, { "5YY", 0.25m }, { "10Y", 0.25m }, { "30Y", 0.25m }, { "MCL", 0.25m }, { "MGC", 0.25m }, { "SIL", 0.25m }, // Cryptocurrency Future Options - { "BTC", 5m }, { "MBT", 1.25m }, { "ETH", 3m }, { "MET", 0.10m }, + { "BTC", 5m }, { "MBT", 1.25m }, { "ETH", 3m }, { "MET", 0.10m }, { "MIB", 1.25m }, { "MRB", 0.10m } }; private static readonly Dictionary _usaFuturesExchangeFees = new() @@ -452,7 +452,7 @@ private static CashAmount EUREXFutureFees(Security security) { "MYM", 0.30m }, { "M2K", 0.30m }, { "MES", 0.30m }, { "MNQ", 0.30m }, { "2YY", 0.30m }, { "5YY", 0.30m }, { "10Y", 0.30m }, { "30Y", 0.30m }, { "MCL", 0.30m }, { "MGC", 0.30m }, { "SIL", 0.30m }, // Cryptocurrency Futures - { "BTC", 6m }, { "MBT", 2.5m }, { "ETH", 4m }, { "MET", 0.20m }, + { "BTC", 6m }, { "MBT", 2.5m }, { "ETH", 4m }, { "MET", 0.20m }, { "MIB", 2.5m }, { "MRB", 0.20m }, // E-mini FX (currencies) Futures { "E7", 0.85m }, { "J7", 0.85m }, // Micro E-mini FX (currencies) Futures @@ -474,7 +474,7 @@ private static CashAmount EUREXFutureFees(Security security) { "MYM", 0.20m }, { "M2K", 0.20m }, { "MES", 0.20m }, { "MNQ", 0.20m }, { "2YY", 0.20m }, { "5YY", 0.20m }, { "10Y", 0.20m }, { "30Y", 0.20m }, { "MCL", 0.20m }, { "MGC", 0.20m }, { "SIL", 0.20m }, // Cryptocurrency Future Options - { "BTC", 5m }, { "MBT", 2.5m }, { "ETH", 4m }, { "MET", 0.20m }, + { "BTC", 5m }, { "MBT", 2.5m }, { "ETH", 4m }, { "MET", 0.20m }, { "MIB", 2.5m }, { "MRB", 0.20m }, }; /// diff --git a/Common/Securities/Future/Futures.cs b/Common/Securities/Future/Futures.cs index b55af9a130dc..c85bec6df8d1 100644 --- a/Common/Securities/Future/Futures.cs +++ b/Common/Securities/Future/Futures.cs @@ -322,6 +322,18 @@ public static class Currencies /// /// The symbol public const string MicroBTC = "MBT"; + + /// + /// BTIC on Micro Ether Futures + /// + /// The symbol + public const string BTICMicroEther = "MRB"; + + /// + /// BTIC on Micro Bitcoin Futures + /// + /// The symbol + public const string BTICMicroBTC = "MIB"; } /// diff --git a/Common/Securities/Future/FuturesExpiryFunctions.cs b/Common/Securities/Future/FuturesExpiryFunctions.cs index ed162b3faae9..8075f7e4a261 100644 --- a/Common/Securities/Future/FuturesExpiryFunctions.cs +++ b/Common/Securities/Future/FuturesExpiryFunctions.cs @@ -3698,6 +3698,63 @@ Dec listed in June return lastFriday.Add(new TimeSpan(15, 0, 0)); }) + }, + // BTIC on Micro Ether Futures (MRB): https://www.cmegroup.com/markets/cryptocurrencies/ether/micro-ether.contractSpecs.html + {Symbol.Create(Futures.Currencies.BTICMicroEther, SecurityType.Future, Market.CME), (time => + { + // Monthly contracts listed for 6 consecutive months and 2 additional Dec contract months. + + // Trading terminates at 4:00 p.m. London time on the last Friday of the contract month. + // If this is not both a London and U.S. business day, trading terminates on the prior + // London and the U.S. business day. + + // BTIC: Trading terminates at 4:00 p.m. London time on the last Thursday of the contract + // month.If this is not both a London and U.S. business day, trading terminates on the prior + // London and the U.S. business day. + + var lastThursday = FuturesExpiryUtilityFunctions.LastThursday(time); + + var holidays = MarketHoursDatabase.FromDataFolder() + .GetEntry(Market.CME, Futures.Currencies.BTICMicroEther, SecurityType.Future) + .ExchangeHours + .Holidays; + + while (holidays.Contains(lastThursday)) + { + lastThursday = FuturesExpiryUtilityFunctions.AddBusinessDays(lastThursday, -1, holidays); + } + + return lastThursday.Add(new TimeSpan(15, 0, 0)); + }) + }, + // BTIC on Micro Bitcoin Futures (MIB): https://www.cmegroup.com/markets/cryptocurrencies/bitcoin/micro-bitcoin.contractSpecs.html + {Symbol.Create(Futures.Currencies.BTICMicroBTC, SecurityType.Future, Market.CME), (time => + { + // Monthly contracts listed for 6 consecutive months and 2 additional Dec contract months. + // If the 6 consecutive months includes Dec, list only 1 additional Dec contract month. + + // Trading terminates at 4:00 p.m. London time on the last Friday of the contract month. + // If this is not both a London and U.S. business day, trading terminates on the prior + // London and the U.S. business day. + + // BTIC: Trading terminates at 4:00 p.m. London time on the last Thursday of the contract + // month.If this is not both a London and U.S. business day, trading terminates on the prior + // London and the U.S. business day. + + var lastThursday = FuturesExpiryUtilityFunctions.LastThursday(time); + + var holidays = MarketHoursDatabase.FromDataFolder() + .GetEntry(Market.CME, Futures.Currencies.BTICMicroBTC, SecurityType.Future) + .ExchangeHours + .Holidays; + + while (holidays.Contains(lastThursday)) + { + lastThursday = FuturesExpiryUtilityFunctions.AddBusinessDays(lastThursday, -1, holidays); + } + + return lastThursday.Add(new TimeSpan(15, 0, 0)); + }) } }; } diff --git a/Data/market-hours/market-hours-database.json b/Data/market-hours/market-hours-database.json index 9d23f84076d6..ae2a8dc4417c 100644 --- a/Data/market-hours/market-hours-database.json +++ b/Data/market-hours/market-hours-database.json @@ -120778,6 +120778,260 @@ "12/25/2025": "18:00:00" } }, + "Future-cme-MRB": { + "dataTimeZone": "UTC", + "exchangeTimeZone": "America/New_York", + "sunday": [ + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "premarket" + } + ], + "monday": [ + { + "start": "00:00:00", + "end": "09:30:00", + "state": "premarket" + }, + { + "start": "09:30:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "tuesday": [ + { + "start": "00:00:00", + "end": "09:30:00", + "state": "premarket" + }, + { + "start": "09:30:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "wednesday": [ + { + "start": "00:00:00", + "end": "09:30:00", + "state": "premarket" + }, + { + "start": "09:30:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "thursday": [ + { + "start": "00:00:00", + "end": "09:30:00", + "state": "premarket" + }, + { + "start": "09:30:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "postmarket" + } + ], + "friday": [ + { + "start": "00:00:00", + "end": "09:30:00", + "state": "premarket" + }, + { + "start": "09:30:00", + "end": "17:00:00", + "state": "market" + } + ], + "saturday": [], + "holidays": [ + "4/10/2009", + "12/25/2009", + "1/1/2010", + "4/2/2010", + "12/24/2010", + "1/1/2011", + "4/22/2011", + "12/26/2011", + "4/6/2012", + "12/25/2012", + "1/2/2013", + "3/29/2013", + "12/25/2013", + "1/1/2014", + "4/18/2014", + "12/25/2014", + "1/1/2015", + "12/25/2015", + "1/1/2016", + "3/25/2016", + "12/26/2016", + "1/2/2017", + "4/14/2017", + "12/25/2017", + "1/1/2018", + "3/30/2018", + "12/25/2018", + "1/1/2019", + "4/19/2019", + "12/25/2019", + "1/1/2020", + "4/10/2020", + "12/25/2020", + "1/1/2021", + "12/24/2021", + "1/1/2022", + "4/15/2022", + "12/25/2022", + "12/26/2022", + "1/1/2023", + "1/2/2023" + ], + "earlyCloses": { + "1/19/2009": "10:30:00", + "2/16/2009": "10:30:00", + "5/25/2009": "10:30:00", + "7/3/2009": "10:30:00", + "9/7/2009": "10:30:00", + "11/26/2009": "10:30:00", + "11/27/2009": "12:15:00", + "12/24/2009": "12:15:00", + "1/18/2010": "10:30:00", + "2/15/2010": "10:30:00", + "5/31/2010": "10:30:00", + "7/5/2010": "10:30:00", + "9/6/2010": "10:30:00", + "11/25/2010": "10:30:00", + "11/26/2010": "12:15:00", + "1/17/2011": "10:30:00", + "2/21/2011": "10:30:00", + "5/30/2011": "10:30:00", + "7/4/2011": "10:30:00", + "9/5/2011": "10:30:00", + "11/24/2011": "10:30:00", + "11/25/2011": "12:15:00", + "1/16/2012": "10:30:00", + "2/20/2012": "10:30:00", + "5/28/2012": "10:30:00", + "7/3/2012": "12:15:00", + "7/4/2012": "10:30:00", + "9/3/2012": "10:30:00", + "11/22/2012": "10:30:00", + "11/23/2012": "12:15:00", + "12/24/2012": "12:15:00", + "1/21/2013": "10:30:00", + "2/18/2013": "10:30:00", + "5/27/2013": "10:30:00", + "7/3/2013": "12:15:00", + "7/4/2013": "10:30:00", + "7/5/2013": "15:15:00", + "9/2/2013": "10:30:00", + "11/28/2013": "10:30:00", + "11/29/2013": "12:15:00", + "12/24/2013": "12:15:00", + "12/26/2013": "15:15:00", + "1/2/2014": "15:15:00", + "1/20/2014": "10:30:00", + "2/17/2014": "10:30:00", + "5/26/2014": "12:00:00", + "7/3/2014": "12:00:00", + "9/1/2014": "12:00:00", + "11/27/2014": "12:00:00", + "11/28/2014": "12:15:00", + "12/24/2014": "12:15:00", + "1/19/2015": "12:00:00", + "2/16/2015": "12:00:00", + "4/3/2015": "08:15:00", + "5/25/2015": "12:00:00", + "7/3/2015": "12:00:00", + "9/7/2015": "12:00:00", + "11/26/2015": "12:00:00", + "11/27/2015": "12:15:00", + "12/24/2015": "12:15:00", + "1/18/2016": "12:00:00", + "2/15/2016": "12:00:00", + "5/30/2016": "12:00:00", + "7/4/2016": "12:00:00", + "9/5/2016": "12:00:00", + "11/24/2016": "12:00:00", + "11/25/2016": "12:15:00", + "1/16/2017": "12:00:00", + "2/20/2017": "12:00:00", + "5/29/2017": "12:00:00", + "7/3/2017": "12:15:00", + "7/4/2017": "12:00:00", + "9/4/2017": "12:00:00", + "11/23/2017": "12:00:00", + "11/24/2017": "12:15:00", + "1/15/2018": "12:00:00", + "2/19/2018": "12:00:00", + "5/28/2018": "12:00:00", + "7/3/2018": "12:15:00", + "7/4/2018": "12:00:00", + "9/3/2018": "12:00:00", + "11/22/2018": "12:00:00", + "11/23/2018": "12:15:00", + "12/24/2018": "12:15:00", + "1/21/2019": "12:00:00", + "2/18/2019": "12:00:00", + "5/27/2019": "12:00:00", + "7/3/2019": "12:15:00", + "7/4/2019": "12:00:00", + "9/2/2019": "12:00:00", + "11/28/2019": "12:00:00", + "11/29/2019": "12:15:00", + "12/24/2019": "12:15:00", + "1/20/2020": "12:00:00", + "2/17/2020": "12:00:00", + "5/25/2020": "12:00:00", + "7/3/2020": "12:00:00", + "9/7/2020": "12:00:00", + "11/26/2020": "12:00:00", + "11/27/2020": "12:15:00", + "12/24/2020": "12:15:00", + "1/18/2021": "12:00:00", + "2/15/2021": "12:00:00", + "4/2/2021": "8:15:00", + "5/31/2021": "12:00:00", + "7/5/2021": "12:00:00", + "9/6/2021": "12:00:00", + "11/25/2021": "12:00:00", + "11/26/2021": "12:15:00", + "1/17/2022": "12:00:00", + "2/21/2022": "12:00:00", + "5/30/2022": "12:00:00", + "6/20/2022": "12:00:00", + "7/4/2022": "12:00:00", + "9/5/2022": "12:00:00", + "11/24/2022": "12:00:00", + "11/25/2022": "12:15:00" + } + }, "Future-nymex-PAM": { "dataTimeZone": "UTC", "exchangeTimeZone": "America/New_York", @@ -121133,6 +121387,235 @@ "12/25/2025": "18:00:00" } }, + "Future-cme-MIB": { + "dataTimeZone": "UTC", + "exchangeTimeZone": "America/New_York", + "sunday": [ + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "market" + } + ], + "monday": [ + { + "start": "00:00:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "market" + } + ], + "tuesday": [ + { + "start": "00:00:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "market" + } + ], + "wednesday": [ + { + "start": "00:00:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "market" + } + ], + "thursday": [ + { + "start": "00:00:00", + "end": "17:00:00", + "state": "market" + }, + { + "start": "18:00:00", + "end": "1.00:00:00", + "state": "market" + } + ], + "friday": [ + { + "start": "00:00:00", + "end": "17:00:00", + "state": "market" + } + ], + "saturday": [], + "holidays": [ + "4/10/2009", + "12/25/2009", + "1/1/2010", + "4/2/2010", + "12/24/2010", + "1/1/2011", + "4/22/2011", + "12/26/2011", + "4/6/2012", + "12/25/2012", + "1/2/2013", + "3/29/2013", + "12/25/2013", + "1/1/2014", + "4/18/2014", + "12/25/2014", + "1/1/2015", + "12/25/2015", + "1/1/2016", + "3/25/2016", + "12/26/2016", + "1/2/2017", + "4/14/2017", + "12/25/2017", + "1/1/2018", + "3/30/2018", + "12/25/2018", + "1/1/2019", + "4/19/2019", + "12/25/2019", + "1/1/2020", + "4/10/2020", + "12/25/2020", + "1/1/2021", + "12/24/2021", + "1/1/2022", + "4/15/2022", + "12/25/2022", + "12/26/2022", + "1/1/2023", + "1/2/2023" + ], + "earlyCloses": { + "1/19/2009": "10:30:00", + "2/16/2009": "10:30:00", + "5/25/2009": "10:30:00", + "7/3/2009": "10:30:00", + "9/7/2009": "10:30:00", + "11/26/2009": "10:30:00", + "11/27/2009": "12:15:00", + "12/24/2009": "12:15:00", + "1/18/2010": "10:30:00", + "2/15/2010": "10:30:00", + "5/31/2010": "10:30:00", + "7/5/2010": "10:30:00", + "9/6/2010": "10:30:00", + "11/25/2010": "10:30:00", + "11/26/2010": "12:15:00", + "1/17/2011": "10:30:00", + "2/21/2011": "10:30:00", + "5/30/2011": "10:30:00", + "7/4/2011": "10:30:00", + "9/5/2011": "10:30:00", + "11/24/2011": "10:30:00", + "11/25/2011": "12:15:00", + "1/16/2012": "10:30:00", + "2/20/2012": "10:30:00", + "5/28/2012": "10:30:00", + "7/3/2012": "12:15:00", + "7/4/2012": "10:30:00", + "9/3/2012": "10:30:00", + "11/22/2012": "10:30:00", + "11/23/2012": "12:15:00", + "12/24/2012": "12:15:00", + "1/21/2013": "10:30:00", + "2/18/2013": "10:30:00", + "5/27/2013": "10:30:00", + "7/3/2013": "12:15:00", + "7/4/2013": "10:30:00", + "7/5/2013": "15:15:00", + "9/2/2013": "10:30:00", + "11/28/2013": "10:30:00", + "11/29/2013": "12:15:00", + "12/24/2013": "12:15:00", + "12/26/2013": "15:15:00", + "1/2/2014": "15:15:00", + "1/20/2014": "10:30:00", + "2/17/2014": "10:30:00", + "5/26/2014": "12:00:00", + "7/3/2014": "12:00:00", + "9/1/2014": "12:00:00", + "11/27/2014": "12:00:00", + "11/28/2014": "12:15:00", + "12/24/2014": "12:15:00", + "1/19/2015": "12:00:00", + "2/16/2015": "12:00:00", + "4/3/2015": "08:15:00", + "5/25/2015": "12:00:00", + "7/3/2015": "12:00:00", + "9/7/2015": "12:00:00", + "11/26/2015": "12:00:00", + "11/27/2015": "12:15:00", + "12/24/2015": "12:15:00", + "1/18/2016": "12:00:00", + "2/15/2016": "12:00:00", + "5/30/2016": "12:00:00", + "7/4/2016": "12:00:00", + "9/5/2016": "12:00:00", + "11/24/2016": "12:00:00", + "11/25/2016": "12:15:00", + "1/16/2017": "12:00:00", + "2/20/2017": "12:00:00", + "5/29/2017": "12:00:00", + "7/3/2017": "12:15:00", + "7/4/2017": "12:00:00", + "9/4/2017": "12:00:00", + "11/23/2017": "12:00:00", + "11/24/2017": "12:15:00", + "1/15/2018": "12:00:00", + "2/19/2018": "12:00:00", + "5/28/2018": "12:00:00", + "7/3/2018": "12:15:00", + "7/4/2018": "12:00:00", + "9/3/2018": "12:00:00", + "11/22/2018": "12:00:00", + "11/23/2018": "12:15:00", + "12/24/2018": "12:15:00", + "1/21/2019": "12:00:00", + "2/18/2019": "12:00:00", + "5/27/2019": "12:00:00", + "7/3/2019": "12:15:00", + "7/4/2019": "12:00:00", + "9/2/2019": "12:00:00", + "11/28/2019": "12:00:00", + "11/29/2019": "12:15:00", + "12/24/2019": "12:15:00", + "1/20/2020": "12:00:00", + "2/17/2020": "12:00:00", + "5/25/2020": "12:00:00", + "7/3/2020": "12:00:00", + "9/7/2020": "12:00:00", + "11/26/2020": "12:00:00", + "11/27/2020": "12:15:00", + "12/24/2020": "12:15:00", + "1/18/2021": "12:00:00", + "2/15/2021": "12:00:00", + "4/2/2021": "8:15:00", + "5/31/2021": "12:00:00", + "7/5/2021": "12:00:00", + "9/6/2021": "12:00:00", + "11/25/2021": "12:00:00", + "11/26/2021": "12:15:00", + "1/17/2022": "12:00:00", + "2/21/2022": "12:00:00", + "5/30/2022": "12:00:00", + "6/20/2022": "12:00:00", + "7/4/2022": "12:00:00", + "9/5/2022": "12:00:00", + "11/24/2022": "12:00:00", + "11/25/2022": "12:15:00" + } + }, "Future-comex-MGT": { "dataTimeZone": "UTC", "exchangeTimeZone": "America/New_York", diff --git a/Data/symbol-properties/symbol-properties-database.csv b/Data/symbol-properties/symbol-properties-database.csv index c7039e76c291..c491ff765475 100644 --- a/Data/symbol-properties/symbol-properties-database.csv +++ b/Data/symbol-properties/symbol-properties-database.csv @@ -284,6 +284,8 @@ cme,MBT,future,Micro Bitcoin Futures,USD,0.1,5,1,,1 cme,MCD,future,Micro Canadian Dollar/U.S.Dollar(CAD/USD) Futures,USD,10000,0.0001,1,,1 cme,MES,future,Micro E-mini Standard and Poor's 500 Stock Price Index Futures,USD,5,0.25,1,,1 cme,MET,future,Micro Ether Futures,USD,0.1,0.5,1,,1 +cme,MIB,future,BTIC on Micro Bitcoin Futures,USD,0.1,5,1 +cme,MRB,future,BTIC on Micro Ether Futures,USD,0.1,0.5,1 cme,MIR,future,Micro INR/USD Futures,USD,1000000,0.01,100,,1,100 cme,MJY,future,Micro Japanese Yen/U.S. Dollar (JPY/USD) Futures,USD,1250000,1e-06,1,,1 cme,MNH,future,Micro USD/CNH Futures,USD,10000,0.0001,1 diff --git a/Tests/Common/Orders/Fees/InteractiveBrokersFeeModelTests.cs b/Tests/Common/Orders/Fees/InteractiveBrokersFeeModelTests.cs index d6201a4ad4e6..2e3fd72b2ea0 100644 --- a/Tests/Common/Orders/Fees/InteractiveBrokersFeeModelTests.cs +++ b/Tests/Common/Orders/Fees/InteractiveBrokersFeeModelTests.cs @@ -381,12 +381,16 @@ private static TestCaseData[] USAFuturesFeeTestCases() new { Symbol = Futures.Currencies.BTC, Type = SecurityType.Future, ExpectedFee = 11.02m }, new { Symbol = Futures.Currencies.ETH, Type = SecurityType.Future, ExpectedFee = 7.02m }, new { Symbol = Futures.Currencies.MicroBTC, Type = SecurityType.Future, ExpectedFee = 4.77m }, + new { Symbol = Futures.Currencies.BTICMicroBTC, Type = SecurityType.Future, ExpectedFee = 4.77m }, new { Symbol = Futures.Currencies.MicroEther, Type = SecurityType.Future, ExpectedFee = 0.42m }, + new { Symbol = Futures.Currencies.BTICMicroEther, Type = SecurityType.Future, ExpectedFee = 0.42m }, // Cryptocurrency future options new { Symbol = Futures.Currencies.BTC, Type = SecurityType.FutureOption, ExpectedFee = 10.02m }, new { Symbol = Futures.Currencies.ETH, Type = SecurityType.FutureOption, ExpectedFee = 7.02m }, new { Symbol = Futures.Currencies.MicroBTC, Type = SecurityType.FutureOption, ExpectedFee = 3.77m }, + new { Symbol = Futures.Currencies.BTICMicroBTC, Type = SecurityType.FutureOption, ExpectedFee = 3.77m }, new { Symbol = Futures.Currencies.MicroEther, Type = SecurityType.FutureOption, ExpectedFee = 0.32m }, + new { Symbol = Futures.Currencies.BTICMicroEther, Type = SecurityType.FutureOption, ExpectedFee = 0.32m }, // E-mini FX (currencies) Futures new { Symbol = Futures.Currencies.EuroFXEmini, Type = SecurityType.Future, ExpectedFee = 1.37m }, new { Symbol = Futures.Currencies.JapaneseYenEmini, Type = SecurityType.Future, ExpectedFee = 1.37m }, diff --git a/Tests/Engine/DataFeeds/UniverseSelectionTests.cs b/Tests/Engine/DataFeeds/UniverseSelectionTests.cs index 0c5448f9ea43..5f2e47d43625 100644 --- a/Tests/Engine/DataFeeds/UniverseSelectionTests.cs +++ b/Tests/Engine/DataFeeds/UniverseSelectionTests.cs @@ -38,8 +38,8 @@ public void CreatedEquityIsNotAddedToSymbolCache() { SymbolCache.Clear(); var algorithm = new AlgorithmStub(new MockDataFeed()); - algorithm.SetEndDate(Time.EndOfTime); - algorithm.SetStartDate(DateTime.UtcNow.Subtract(TimeSpan.FromDays(10))); + algorithm.SetEndDate(new DateTime(2024, 12, 13)); + algorithm.SetStartDate(algorithm.EndDate.Subtract(TimeSpan.FromDays(10))); algorithm.AddUniverse(CoarseSelectionFunction, FineSelectionFunction); // OnEndOfTimeStep will add all pending universe additions algorithm.OnEndOfTimeStep(); @@ -125,8 +125,8 @@ public void RemovalFromUniverseAndDataFeedMakesSecurityNotTradable() public void CoarseFundamentalHasFundamentalDataFalseExcludedInFineUniverseSelection() { var algorithm = new AlgorithmStub(new MockDataFeed()); - algorithm.SetEndDate(Time.EndOfTime); - algorithm.SetStartDate(DateTime.UtcNow.Subtract(TimeSpan.FromDays(10))); + algorithm.SetEndDate(new DateTime(2024, 12, 13)); + algorithm.SetStartDate(algorithm.EndDate.Subtract(TimeSpan.FromDays(10))); algorithm.AddUniverse( coarse => coarse.Select(c => c.Symbol), diff --git a/ToolBox/AlgoSeekFuturesConverter/AlgoSeek.US.Futures.PriceMultipliers.1.1.csv b/ToolBox/AlgoSeekFuturesConverter/AlgoSeek.US.Futures.PriceMultipliers.1.1.csv index a3e0cca6a591..aecb03e0951a 100644 --- a/ToolBox/AlgoSeekFuturesConverter/AlgoSeek.US.Futures.PriceMultipliers.1.1.csv +++ b/ToolBox/AlgoSeekFuturesConverter/AlgoSeek.US.Futures.PriceMultipliers.1.1.csv @@ -158,6 +158,7 @@ MFF,Coal (API4) FOB Richards Bay (ARGUS-McCloskey) Futures,1, MGB,Mini Gasoil 0.1 Barges FOB Rdam (Platts) vs. Low Sulphur Gasoil Futures,0.1, MGC,E-micro Gold Futures,10, MGT,Micro Gold TAS,1, +MIB,BTIC on Micro Bitcoin Futures,1, MIR,E-micro Indian Rupee/USD Futures,1, MJN,Mini Japan C&F Naphtha (Platts) Futures,0.1, MJY,E-micro Japanese Yen/American Dollar Futures,100, @@ -167,6 +168,7 @@ MNC,Mini European Naphtha CIF NWE (Platts) Futures,0.1, MNH,Micro USD/CNH Futures,100, MNQ,Micro E-mini Nasdaq-100 Index Futures,1, MPS,Mini European Propane CIF ARA (Argus) Futures,2, +MRB,BTIC on Micro Ether Futures,1, MSF,E-micro Swiss Franc/American Dollar Futures,100, MSG,Mini Singapore Gasoil (Platts) Futures,0.1, MTB,Mini Singapore Fuel Oil 380 cst (Platts) BALMO Futures,3,