diff --git a/Common/Market.cs b/Common/Market.cs
index e4745023ce2f..4b6c2107a57f 100644
--- a/Common/Market.cs
+++ b/Common/Market.cs
@@ -71,7 +71,8 @@ public static class Market
Tuple.Create(InteractiveBrokers, 39),
Tuple.Create(EUREX, 40),
Tuple.Create(OSE, 41),
- Tuple.Create(DYDX, 42)
+ Tuple.Create(DYDX, 42),
+ Tuple.Create(KRX, 43)
};
static Market()
@@ -267,6 +268,11 @@ static Market()
///
public const string DYDX = "dydx";
+ ///
+ /// Korea Exchange
+ ///
+ public const string KRX = "krx";
+
///
/// Adds the specified market to the map of available markets with the specified identifier.
///
diff --git a/Common/Securities/Future/Futures.cs b/Common/Securities/Future/Futures.cs
index 2c228068d1a4..3e666d5be006 100644
--- a/Common/Securities/Future/Futures.cs
+++ b/Common/Securities/Future/Futures.cs
@@ -1555,6 +1555,12 @@ public static class Indices
/// The symbol
public const string HangSeng = "HSI";
+ ///
+ /// KOSPI 200 Index Futures
+ ///
+ /// The symbol
+ public const string Kospi200 = "KM";
+
///
/// Micro E-mini S&P 500 Index Futures
///
diff --git a/Common/Securities/Future/FuturesExpiryFunctions.cs b/Common/Securities/Future/FuturesExpiryFunctions.cs
index 30d93fc2e437..b63fb8d0a4fc 100644
--- a/Common/Securities/Future/FuturesExpiryFunctions.cs
+++ b/Common/Securities/Future/FuturesExpiryFunctions.cs
@@ -793,6 +793,25 @@ public static Func FuturesExpiryFunction(Symbol symbol)
})
},
+ // KOSPI 200 Index Futures (KM): http://global.krx.co.kr/contents/GLB/05/0503/0503010102/GLB0503010102.jsp
+ {Symbol.Create(Futures.Indices.Kospi200, SecurityType.Future, Market.KRX), (time =>
+ {
+ // Contract months: the four nearest months of the quarterly cycle (March, June, September, December)
+ // Last trading day: the second Thursday of the contract month. Trading terminates at 15:20 KST on that day.
+ // If the second Thursday is a holiday, the last trading day is the preceding business day.
+ var market = Market.KRX;
+ var symbol = Futures.Indices.Kospi200;
+ var holidays = FuturesExpiryUtilityFunctions.GetExpirationHolidays(market, symbol);
+
+ var lastTradingDay = FuturesExpiryUtilityFunctions.NthWeekday(time, 2, DayOfWeek.Thursday);
+ while (holidays.Contains(lastTradingDay) || !lastTradingDay.IsCommonBusinessDay())
+ {
+ lastTradingDay = lastTradingDay.AddDays(-1);
+ }
+ return lastTradingDay.Add(new TimeSpan(15, 20, 0));
+ })
+ },
+
// MSCI Europe Net Total Return (USD) Futures: https://www.theice.com/products/71512951/MSCI-Europe-NTR-Index-Future-USD & https://www.theice.com/publicdocs/futures_us/exchange_notices/ICE_Futures_US_2022_TRADING_HOLIDAY_CALENDAR_20211118.pdf
{Symbol.Create(Futures.Indices.MSCIEuropeNTR, SecurityType.Future, Market.NYSELIFFE), (time =>
{
diff --git a/Data/future/krx/margins/KM.csv b/Data/future/krx/margins/KM.csv
new file mode 100644
index 000000000000..b7e72721e38e
--- /dev/null
+++ b/Data/future/krx/margins/KM.csv
@@ -0,0 +1,3 @@
+# we don't have historical information for this symbol
+date,initial,maintenance
+19900101,7087500,4725000
diff --git a/Data/market-hours/market-hours-database.json b/Data/market-hours/market-hours-database.json
index 0aced1b51097..8bc49574b3a8 100644
--- a/Data/market-hours/market-hours-database.json
+++ b/Data/market-hours/market-hours-database.json
@@ -79805,6 +79805,54 @@
"saturday": [],
"holidays": []
},
+ "Forex-interactivebrokers-[*]": {
+ "dataTimeZone": "UTC",
+ "exchangeTimeZone": "America/New_York",
+ "sunday": [
+ {
+ "start": "17:00:00",
+ "end": "1.00:00:00",
+ "state": "market"
+ }
+ ],
+ "monday": [
+ {
+ "start": "00:00:00",
+ "end": "1.00:00:00",
+ "state": "market"
+ }
+ ],
+ "tuesday": [
+ {
+ "start": "00:00:00",
+ "end": "1.00:00:00",
+ "state": "market"
+ }
+ ],
+ "wednesday": [
+ {
+ "start": "00:00:00",
+ "end": "1.00:00:00",
+ "state": "market"
+ }
+ ],
+ "thursday": [
+ {
+ "start": "00:00:00",
+ "end": "1.00:00:00",
+ "state": "market"
+ }
+ ],
+ "friday": [
+ {
+ "start": "00:00:00",
+ "end": "17:00:00",
+ "state": "market"
+ }
+ ],
+ "saturday": [],
+ "holidays": []
+ },
"Forex-fxcm-[*]": {
"dataTimeZone": "UTC-05",
"exchangeTimeZone": "America/New_York",
@@ -123301,6 +123349,928 @@
"earlyCloses": {},
"lateOpens": {}
},
+ "Future-krx-[*]": {
+ "dataTimeZone": "Asia/Seoul",
+ "exchangeTimeZone": "Asia/Seoul",
+ "sunday": [],
+ "monday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "tuesday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "wednesday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "thursday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "friday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "saturday": [],
+ "holidays": [
+ "2/4/2000",
+ "3/1/2000",
+ "4/13/2000",
+ "5/1/2000",
+ "5/5/2000",
+ "5/11/2000",
+ "6/6/2000",
+ "8/15/2000",
+ "9/11/2000",
+ "9/12/2000",
+ "9/13/2000",
+ "10/3/2000",
+ "12/25/2000",
+ "12/29/2000",
+ "1/1/2001",
+ "1/23/2001",
+ "1/24/2001",
+ "1/25/2001",
+ "3/1/2001",
+ "5/1/2001",
+ "6/6/2001",
+ "8/15/2001",
+ "10/1/2001",
+ "10/2/2001",
+ "10/3/2001",
+ "12/25/2001",
+ "12/31/2001",
+ "1/1/2002",
+ "2/11/2002",
+ "2/12/2002",
+ "2/13/2002",
+ "3/1/2002",
+ "5/1/2002",
+ "6/6/2002",
+ "6/13/2002",
+ "8/15/2002",
+ "9/20/2002",
+ "10/3/2002",
+ "12/19/2002",
+ "12/25/2002",
+ "12/31/2002",
+ "1/1/2003",
+ "1/31/2003",
+ "5/1/2003",
+ "5/5/2003",
+ "5/8/2003",
+ "6/6/2003",
+ "8/15/2003",
+ "9/10/2003",
+ "9/11/2003",
+ "9/12/2003",
+ "10/3/2003",
+ "12/25/2003",
+ "12/31/2003",
+ "1/1/2004",
+ "1/21/2004",
+ "1/22/2004",
+ "1/23/2004",
+ "3/1/2004",
+ "4/15/2004",
+ "5/5/2004",
+ "5/26/2004",
+ "9/27/2004",
+ "9/28/2004",
+ "9/29/2004",
+ "12/31/2004",
+ "2/8/2005",
+ "2/9/2005",
+ "2/10/2005",
+ "3/1/2005",
+ "5/5/2005",
+ "6/6/2005",
+ "8/15/2005",
+ "9/19/2005",
+ "10/3/2005",
+ "12/30/2005",
+ "1/30/2006",
+ "3/1/2006",
+ "5/1/2006",
+ "5/5/2006",
+ "5/31/2006",
+ "6/6/2006",
+ "8/15/2006",
+ "10/3/2006",
+ "10/5/2006",
+ "10/6/2006",
+ "12/25/2006",
+ "12/29/2006",
+ "1/1/2007",
+ "2/19/2007",
+ "3/1/2007",
+ "5/1/2007",
+ "5/24/2007",
+ "6/6/2007",
+ "8/15/2007",
+ "9/24/2007",
+ "9/25/2007",
+ "9/26/2007",
+ "10/3/2007",
+ "12/19/2007",
+ "12/25/2007",
+ "12/31/2007",
+ "1/1/2008",
+ "2/6/2008",
+ "2/7/2008",
+ "2/8/2008",
+ "4/9/2008",
+ "5/1/2008",
+ "5/5/2008",
+ "5/12/2008",
+ "6/6/2008",
+ "8/15/2008",
+ "9/15/2008",
+ "10/3/2008",
+ "12/25/2008",
+ "12/31/2008",
+ "1/1/2009",
+ "1/26/2009",
+ "1/27/2009",
+ "5/1/2009",
+ "5/5/2009",
+ "10/2/2009",
+ "12/25/2009",
+ "12/31/2009",
+ "1/1/2010",
+ "2/15/2010",
+ "3/1/2010",
+ "5/5/2010",
+ "5/21/2010",
+ "6/2/2010",
+ "9/21/2010",
+ "9/22/2010",
+ "9/23/2010",
+ "12/31/2010",
+ "2/2/2011",
+ "2/3/2011",
+ "2/4/2011",
+ "3/1/2011",
+ "5/5/2011",
+ "5/10/2011",
+ "6/6/2011",
+ "8/15/2011",
+ "9/12/2011",
+ "9/13/2011",
+ "10/3/2011",
+ "12/30/2011",
+ "1/23/2012",
+ "1/24/2012",
+ "3/1/2012",
+ "4/11/2012",
+ "5/1/2012",
+ "5/28/2012",
+ "6/6/2012",
+ "8/15/2012",
+ "10/1/2012",
+ "10/3/2012",
+ "12/19/2012",
+ "12/25/2012",
+ "12/31/2012",
+ "1/1/2013",
+ "2/11/2013",
+ "3/1/2013",
+ "5/1/2013",
+ "5/17/2013",
+ "6/6/2013",
+ "8/15/2013",
+ "9/18/2013",
+ "9/19/2013",
+ "9/20/2013",
+ "10/3/2013",
+ "10/9/2013",
+ "12/25/2013",
+ "12/31/2013",
+ "1/1/2014",
+ "1/30/2014",
+ "1/31/2014",
+ "5/1/2014",
+ "5/5/2014",
+ "5/6/2014",
+ "6/4/2014",
+ "6/6/2014",
+ "8/15/2014",
+ "9/8/2014",
+ "9/9/2014",
+ "9/10/2014",
+ "10/3/2014",
+ "10/9/2014",
+ "12/25/2014",
+ "12/31/2014",
+ "1/1/2015",
+ "2/18/2015",
+ "2/19/2015",
+ "2/20/2015",
+ "5/1/2015",
+ "5/5/2015",
+ "5/25/2015",
+ "8/14/2015",
+ "9/28/2015",
+ "9/29/2015",
+ "10/9/2015",
+ "12/25/2015",
+ "12/31/2015",
+ "1/1/2016",
+ "2/8/2016",
+ "2/9/2016",
+ "2/10/2016",
+ "3/1/2016",
+ "4/13/2016",
+ "5/5/2016",
+ "5/6/2016",
+ "6/6/2016",
+ "8/15/2016",
+ "9/14/2016",
+ "9/15/2016",
+ "9/16/2016",
+ "10/3/2016",
+ "12/30/2016",
+ "1/27/2017",
+ "1/30/2017",
+ "3/1/2017",
+ "5/1/2017",
+ "5/3/2017",
+ "5/5/2017",
+ "5/9/2017",
+ "6/6/2017",
+ "8/15/2017",
+ "10/2/2017",
+ "10/3/2017",
+ "10/4/2017",
+ "10/5/2017",
+ "10/6/2017",
+ "10/9/2017",
+ "12/25/2017",
+ "12/29/2017",
+ "1/1/2018",
+ "2/15/2018",
+ "2/16/2018",
+ "3/1/2018",
+ "5/1/2018",
+ "5/7/2018",
+ "5/22/2018",
+ "6/6/2018",
+ "6/13/2018",
+ "8/15/2018",
+ "9/24/2018",
+ "9/25/2018",
+ "9/26/2018",
+ "10/3/2018",
+ "10/9/2018",
+ "12/25/2018",
+ "12/31/2018",
+ "1/1/2019",
+ "2/4/2019",
+ "2/5/2019",
+ "2/6/2019",
+ "3/1/2019",
+ "5/1/2019",
+ "5/6/2019",
+ "6/6/2019",
+ "8/15/2019",
+ "9/12/2019",
+ "9/13/2019",
+ "10/3/2019",
+ "10/9/2019",
+ "12/25/2019",
+ "12/31/2019",
+ "1/1/2020",
+ "1/24/2020",
+ "1/27/2020",
+ "4/15/2020",
+ "4/30/2020",
+ "5/1/2020",
+ "5/5/2020",
+ "8/17/2020",
+ "9/30/2020",
+ "10/1/2020",
+ "10/2/2020",
+ "10/9/2020",
+ "12/25/2020",
+ "12/31/2020",
+ "1/1/2021",
+ "2/11/2021",
+ "2/12/2021",
+ "3/1/2021",
+ "5/5/2021",
+ "5/19/2021",
+ "8/16/2021",
+ "9/20/2021",
+ "9/21/2021",
+ "9/22/2021",
+ "10/4/2021",
+ "10/11/2021",
+ "12/31/2021",
+ "1/31/2022",
+ "2/1/2022",
+ "2/2/2022",
+ "3/1/2022",
+ "3/9/2022",
+ "5/5/2022",
+ "6/1/2022",
+ "6/6/2022",
+ "8/15/2022",
+ "9/9/2022",
+ "9/12/2022",
+ "10/3/2022",
+ "10/10/2022",
+ "12/30/2022",
+ "1/23/2023",
+ "1/24/2023",
+ "3/1/2023",
+ "5/1/2023",
+ "5/5/2023",
+ "5/29/2023",
+ "6/6/2023",
+ "8/15/2023",
+ "9/28/2023",
+ "9/29/2023",
+ "10/2/2023",
+ "10/3/2023",
+ "10/9/2023",
+ "12/25/2023",
+ "12/29/2023",
+ "1/1/2024",
+ "2/9/2024",
+ "2/12/2024",
+ "3/1/2024",
+ "4/10/2024",
+ "5/1/2024",
+ "5/6/2024",
+ "5/15/2024",
+ "6/6/2024",
+ "8/15/2024",
+ "9/16/2024",
+ "9/17/2024",
+ "9/18/2024",
+ "10/1/2024",
+ "10/3/2024",
+ "10/9/2024",
+ "12/25/2024",
+ "12/31/2024",
+ "1/1/2025",
+ "1/27/2025",
+ "1/28/2025",
+ "1/29/2025",
+ "1/30/2025",
+ "3/3/2025",
+ "5/1/2025",
+ "5/5/2025",
+ "5/6/2025",
+ "6/3/2025",
+ "6/6/2025",
+ "8/15/2025",
+ "10/3/2025",
+ "10/6/2025",
+ "10/7/2025",
+ "10/8/2025",
+ "10/9/2025",
+ "12/25/2025",
+ "12/31/2025",
+ "1/1/2026",
+ "2/16/2026",
+ "2/17/2026",
+ "2/18/2026",
+ "3/2/2026",
+ "5/1/2026",
+ "5/5/2026",
+ "5/25/2026",
+ "6/3/2026",
+ "7/17/2026",
+ "8/17/2026",
+ "9/24/2026",
+ "9/25/2026",
+ "10/5/2026",
+ "10/9/2026",
+ "12/25/2026",
+ "12/31/2026",
+ "1/1/2027",
+ "2/8/2027",
+ "2/9/2027",
+ "3/1/2027",
+ "5/5/2027",
+ "5/13/2027",
+ "7/19/2027",
+ "8/16/2027",
+ "9/14/2027",
+ "9/15/2027",
+ "9/16/2027",
+ "10/4/2027",
+ "10/11/2027",
+ "12/27/2027",
+ "12/31/2027"
+ ],
+ "earlyCloses": {},
+ "lateOpens": {}
+ },
+ "Future-krx-KM": {
+ "dataTimeZone": "Asia/Seoul",
+ "exchangeTimeZone": "Asia/Seoul",
+ "sunday": [],
+ "monday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "tuesday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "wednesday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "thursday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "friday": [
+ {
+ "start": "08:00:00",
+ "end": "09:00:00",
+ "state": "premarket"
+ },
+ {
+ "start": "09:00:00",
+ "end": "15:45:00",
+ "state": "market"
+ }
+ ],
+ "saturday": [],
+ "holidays": [
+ "2/4/2000",
+ "3/1/2000",
+ "4/13/2000",
+ "5/1/2000",
+ "5/5/2000",
+ "5/11/2000",
+ "6/6/2000",
+ "8/15/2000",
+ "9/11/2000",
+ "9/12/2000",
+ "9/13/2000",
+ "10/3/2000",
+ "12/25/2000",
+ "12/29/2000",
+ "1/1/2001",
+ "1/23/2001",
+ "1/24/2001",
+ "1/25/2001",
+ "3/1/2001",
+ "5/1/2001",
+ "6/6/2001",
+ "8/15/2001",
+ "10/1/2001",
+ "10/2/2001",
+ "10/3/2001",
+ "12/25/2001",
+ "12/31/2001",
+ "1/1/2002",
+ "2/11/2002",
+ "2/12/2002",
+ "2/13/2002",
+ "3/1/2002",
+ "5/1/2002",
+ "6/6/2002",
+ "6/13/2002",
+ "8/15/2002",
+ "9/20/2002",
+ "10/3/2002",
+ "12/19/2002",
+ "12/25/2002",
+ "12/31/2002",
+ "1/1/2003",
+ "1/31/2003",
+ "5/1/2003",
+ "5/5/2003",
+ "5/8/2003",
+ "6/6/2003",
+ "8/15/2003",
+ "9/10/2003",
+ "9/11/2003",
+ "9/12/2003",
+ "10/3/2003",
+ "12/25/2003",
+ "12/31/2003",
+ "1/1/2004",
+ "1/21/2004",
+ "1/22/2004",
+ "1/23/2004",
+ "3/1/2004",
+ "4/15/2004",
+ "5/5/2004",
+ "5/26/2004",
+ "9/27/2004",
+ "9/28/2004",
+ "9/29/2004",
+ "12/31/2004",
+ "2/8/2005",
+ "2/9/2005",
+ "2/10/2005",
+ "3/1/2005",
+ "5/5/2005",
+ "6/6/2005",
+ "8/15/2005",
+ "9/19/2005",
+ "10/3/2005",
+ "12/30/2005",
+ "1/30/2006",
+ "3/1/2006",
+ "5/1/2006",
+ "5/5/2006",
+ "5/31/2006",
+ "6/6/2006",
+ "8/15/2006",
+ "10/3/2006",
+ "10/5/2006",
+ "10/6/2006",
+ "12/25/2006",
+ "12/29/2006",
+ "1/1/2007",
+ "2/19/2007",
+ "3/1/2007",
+ "5/1/2007",
+ "5/24/2007",
+ "6/6/2007",
+ "8/15/2007",
+ "9/24/2007",
+ "9/25/2007",
+ "9/26/2007",
+ "10/3/2007",
+ "12/19/2007",
+ "12/25/2007",
+ "12/31/2007",
+ "1/1/2008",
+ "2/6/2008",
+ "2/7/2008",
+ "2/8/2008",
+ "4/9/2008",
+ "5/1/2008",
+ "5/5/2008",
+ "5/12/2008",
+ "6/6/2008",
+ "8/15/2008",
+ "9/15/2008",
+ "10/3/2008",
+ "12/25/2008",
+ "12/31/2008",
+ "1/1/2009",
+ "1/26/2009",
+ "1/27/2009",
+ "5/1/2009",
+ "5/5/2009",
+ "10/2/2009",
+ "12/25/2009",
+ "12/31/2009",
+ "1/1/2010",
+ "2/15/2010",
+ "3/1/2010",
+ "5/5/2010",
+ "5/21/2010",
+ "6/2/2010",
+ "9/21/2010",
+ "9/22/2010",
+ "9/23/2010",
+ "12/31/2010",
+ "2/2/2011",
+ "2/3/2011",
+ "2/4/2011",
+ "3/1/2011",
+ "5/5/2011",
+ "5/10/2011",
+ "6/6/2011",
+ "8/15/2011",
+ "9/12/2011",
+ "9/13/2011",
+ "10/3/2011",
+ "12/30/2011",
+ "1/23/2012",
+ "1/24/2012",
+ "3/1/2012",
+ "4/11/2012",
+ "5/1/2012",
+ "5/28/2012",
+ "6/6/2012",
+ "8/15/2012",
+ "10/1/2012",
+ "10/3/2012",
+ "12/19/2012",
+ "12/25/2012",
+ "12/31/2012",
+ "1/1/2013",
+ "2/11/2013",
+ "3/1/2013",
+ "5/1/2013",
+ "5/17/2013",
+ "6/6/2013",
+ "8/15/2013",
+ "9/18/2013",
+ "9/19/2013",
+ "9/20/2013",
+ "10/3/2013",
+ "10/9/2013",
+ "12/25/2013",
+ "12/31/2013",
+ "1/1/2014",
+ "1/30/2014",
+ "1/31/2014",
+ "5/1/2014",
+ "5/5/2014",
+ "5/6/2014",
+ "6/4/2014",
+ "6/6/2014",
+ "8/15/2014",
+ "9/8/2014",
+ "9/9/2014",
+ "9/10/2014",
+ "10/3/2014",
+ "10/9/2014",
+ "12/25/2014",
+ "12/31/2014",
+ "1/1/2015",
+ "2/18/2015",
+ "2/19/2015",
+ "2/20/2015",
+ "5/1/2015",
+ "5/5/2015",
+ "5/25/2015",
+ "8/14/2015",
+ "9/28/2015",
+ "9/29/2015",
+ "10/9/2015",
+ "12/25/2015",
+ "12/31/2015",
+ "1/1/2016",
+ "2/8/2016",
+ "2/9/2016",
+ "2/10/2016",
+ "3/1/2016",
+ "4/13/2016",
+ "5/5/2016",
+ "5/6/2016",
+ "6/6/2016",
+ "8/15/2016",
+ "9/14/2016",
+ "9/15/2016",
+ "9/16/2016",
+ "10/3/2016",
+ "12/30/2016",
+ "1/27/2017",
+ "1/30/2017",
+ "3/1/2017",
+ "5/1/2017",
+ "5/3/2017",
+ "5/5/2017",
+ "5/9/2017",
+ "6/6/2017",
+ "8/15/2017",
+ "10/2/2017",
+ "10/3/2017",
+ "10/4/2017",
+ "10/5/2017",
+ "10/6/2017",
+ "10/9/2017",
+ "12/25/2017",
+ "12/29/2017",
+ "1/1/2018",
+ "2/15/2018",
+ "2/16/2018",
+ "3/1/2018",
+ "5/1/2018",
+ "5/7/2018",
+ "5/22/2018",
+ "6/6/2018",
+ "6/13/2018",
+ "8/15/2018",
+ "9/24/2018",
+ "9/25/2018",
+ "9/26/2018",
+ "10/3/2018",
+ "10/9/2018",
+ "12/25/2018",
+ "12/31/2018",
+ "1/1/2019",
+ "2/4/2019",
+ "2/5/2019",
+ "2/6/2019",
+ "3/1/2019",
+ "5/1/2019",
+ "5/6/2019",
+ "6/6/2019",
+ "8/15/2019",
+ "9/12/2019",
+ "9/13/2019",
+ "10/3/2019",
+ "10/9/2019",
+ "12/25/2019",
+ "12/31/2019",
+ "1/1/2020",
+ "1/24/2020",
+ "1/27/2020",
+ "4/15/2020",
+ "4/30/2020",
+ "5/1/2020",
+ "5/5/2020",
+ "8/17/2020",
+ "9/30/2020",
+ "10/1/2020",
+ "10/2/2020",
+ "10/9/2020",
+ "12/25/2020",
+ "12/31/2020",
+ "1/1/2021",
+ "2/11/2021",
+ "2/12/2021",
+ "3/1/2021",
+ "5/5/2021",
+ "5/19/2021",
+ "8/16/2021",
+ "9/20/2021",
+ "9/21/2021",
+ "9/22/2021",
+ "10/4/2021",
+ "10/11/2021",
+ "12/31/2021",
+ "1/31/2022",
+ "2/1/2022",
+ "2/2/2022",
+ "3/1/2022",
+ "3/9/2022",
+ "5/5/2022",
+ "6/1/2022",
+ "6/6/2022",
+ "8/15/2022",
+ "9/9/2022",
+ "9/12/2022",
+ "10/3/2022",
+ "10/10/2022",
+ "12/30/2022",
+ "1/23/2023",
+ "1/24/2023",
+ "3/1/2023",
+ "5/1/2023",
+ "5/5/2023",
+ "5/29/2023",
+ "6/6/2023",
+ "8/15/2023",
+ "9/28/2023",
+ "9/29/2023",
+ "10/2/2023",
+ "10/3/2023",
+ "10/9/2023",
+ "12/25/2023",
+ "12/29/2023",
+ "1/1/2024",
+ "2/9/2024",
+ "2/12/2024",
+ "3/1/2024",
+ "4/10/2024",
+ "5/1/2024",
+ "5/6/2024",
+ "5/15/2024",
+ "6/6/2024",
+ "8/15/2024",
+ "9/16/2024",
+ "9/17/2024",
+ "9/18/2024",
+ "10/1/2024",
+ "10/3/2024",
+ "10/9/2024",
+ "12/25/2024",
+ "12/31/2024",
+ "1/1/2025",
+ "1/27/2025",
+ "1/28/2025",
+ "1/29/2025",
+ "1/30/2025",
+ "3/3/2025",
+ "5/1/2025",
+ "5/5/2025",
+ "5/6/2025",
+ "6/3/2025",
+ "6/6/2025",
+ "8/15/2025",
+ "10/3/2025",
+ "10/6/2025",
+ "10/7/2025",
+ "10/8/2025",
+ "10/9/2025",
+ "12/25/2025",
+ "12/31/2025",
+ "1/1/2026",
+ "2/16/2026",
+ "2/17/2026",
+ "2/18/2026",
+ "3/2/2026",
+ "5/1/2026",
+ "5/5/2026",
+ "5/25/2026",
+ "6/3/2026",
+ "7/17/2026",
+ "8/17/2026",
+ "9/24/2026",
+ "9/25/2026",
+ "10/5/2026",
+ "10/9/2026",
+ "12/25/2026",
+ "12/31/2026",
+ "1/1/2027",
+ "2/8/2027",
+ "2/9/2027",
+ "3/1/2027",
+ "5/5/2027",
+ "5/13/2027",
+ "7/19/2027",
+ "8/16/2027",
+ "9/14/2027",
+ "9/15/2027",
+ "9/16/2027",
+ "10/4/2027",
+ "10/11/2027",
+ "12/27/2027",
+ "12/31/2027"
+ ],
+ "earlyCloses": {},
+ "lateOpens": {}
+ },
"Index-ose-[*]": {
"dataTimeZone": "Asia/Tokyo",
"exchangeTimeZone": "Asia/Tokyo",
diff --git a/Data/symbol-properties/symbol-properties-database.csv b/Data/symbol-properties/symbol-properties-database.csv
index d0abbf743488..8533e008bd35 100644
--- a/Data/symbol-properties/symbol-properties-database.csv
+++ b/Data/symbol-properties/symbol-properties-database.csv
@@ -91,6 +91,7 @@ oanda,XPDUSD,cfd,Palladium,USD,1,0.001,1
oanda,XPTUSD,cfd,Platinum,USD,1,0.001,1
interactivebrokers,[*],cfd,,USD,1,0.01,1
+interactivebrokers,USDKRW,forex,USD/KRW,KRW,1,0.01,1
interactivebrokers,IBUS500,cfd,US 500,USD,1,0.01,1
interactivebrokers,IBUS30,cfd,US 30,USD,1,0.01,1
interactivebrokers,IBUST100,cfd,US Tech 100,USD,1,0.01,1
@@ -415,6 +416,9 @@ hkfe,[*],index,,HKD,1,0.01,1
ose,[*],index,,JPY,1,0.01,1
+krx,KM,future,KOSPI 200 Index Futures,KRW,250000,0.05,1.0
+krx,[*],index,,KRW,1,0.01,1
+
# Futures options -- will default to Futures contract specs in case no entry exists
cbot,OZB,futureoption,U.S. Treasury Bond American Futures Options,USD,1000.0,0.015625,1.0
cbot,OZC,futureoption,Corn American Futures Options,USD,5000.0,0.00125,1.0,,,100
diff --git a/Tests/Common/Securities/Futures/FuturesExpiryFunctionsTests.cs b/Tests/Common/Securities/Futures/FuturesExpiryFunctionsTests.cs
index 4bf4d3959d91..4c37b061ace5 100644
--- a/Tests/Common/Securities/Futures/FuturesExpiryFunctionsTests.cs
+++ b/Tests/Common/Securities/Futures/FuturesExpiryFunctionsTests.cs
@@ -56,6 +56,7 @@ public class FuturesExpiryFunctionsTests
private const string OneFortyFivePM = "13:45:00";
private const string ThreeThirtyPM = "15:30:00";
private const string FourFifteenPM = "16:15:00";
+ private const string ThreeTwentyPMKoreaTime = "15:20:00";
private readonly SymbolPropertiesDatabase _symbolPropertiesDatabase = SymbolPropertiesDatabase.FromDataFolder();
[OneTimeSetUp]
@@ -396,6 +397,7 @@ public void FinancialsExpiryDateFunction_WithDifferentDates_ShouldFollowContract
[TestCase(QuantConnect.Securities.Futures.Indices.VIX, EightOClockChicagoTime)]
[TestCase(QuantConnect.Securities.Futures.Indices.VIXMini, EightOClockChicagoTime)]
[TestCase(QuantConnect.Securities.Futures.Indices.Nikkei225Yen, TwoThirtyPM)]
+ [TestCase(QuantConnect.Securities.Futures.Indices.Kospi200, ThreeTwentyPMKoreaTime)]
[TestCase(QuantConnect.Securities.Futures.Indices.MSCITaiwanIndex, OneFortyFivePM)]
[TestCase(QuantConnect.Securities.Futures.Indices.Nifty50, ThreeThirtyPM)]
[TestCase(QuantConnect.Securities.Futures.Indices.BankNifty, ThreeThirtyPM)]
diff --git a/Tests/TestData/FuturesExpiryFunctionsTestData.xml b/Tests/TestData/FuturesExpiryFunctionsTestData.xml
index eeac9d8ec128..24e92306d4fd 100644
Binary files a/Tests/TestData/FuturesExpiryFunctionsTestData.xml and b/Tests/TestData/FuturesExpiryFunctionsTestData.xml differ