Skip to content

Commit

Permalink
add: remove taiwan futopt institutional investors api, add taiwan_fut… (
Browse files Browse the repository at this point in the history
#225)

* add: remove taiwan futopt institutional investors api, add taiwan_future_institutional_investors and taiwan_option_institutional_investors api

* add:test case for option and future institutional_investors api
  • Loading branch information
machineCYC committed Sep 6, 2022
1 parent be05b7d commit 8788e34
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 8 deletions.
50 changes: 43 additions & 7 deletions FinMind/data/data_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -974,20 +974,20 @@ def taiwan_option_tick(
)
return option_tick

def taiwan_futopt_institutional_investors(
def taiwan_futures_institutional_investors(
self,
data_id: str = "",
start_date: str = "",
end_date: str = "",
timeout: int = None,
) -> pd.DataFrame:
"""get 選擇權, 期貨三大法人買賣
:param data_id: 期貨, 選擇權代號("TXO")
"""get 期貨三大法人買賣
:param data_id: 期貨代號("TX")
:param start_date (str): 起始日期("2018-01-01")
:param end_date (str): 結束日期("2021-03-06")
:param timeout (int): timeout seconds, default None
:return: 選擇權, 期貨三大法人買賣 TaiwanFutOptInstitutionalInvestors
:return: 期貨三大法人買賣 TaiwanFuturesInstitutionalInvestors
:rtype pd.DataFrame
:rtype column name (str)
:rtype column date (str)
Expand All @@ -1001,14 +1001,50 @@ def taiwan_futopt_institutional_investors(
:rtype column short_open_interest_balance_volume (int)
:rtype column short_open_interest_balance_amount (int)
"""
futopt_institutional_investors = self.get_data(
dataset=Dataset.TaiwanFutOptInstitutionalInvestors,
futures_institutional_investors = self.get_data(
dataset=Dataset.TaiwanFuturesInstitutionalInvestors,
data_id=data_id,
start_date=start_date,
end_date=end_date,
timeout=timeout,
)
return futopt_institutional_investors
return futures_institutional_investors

def taiwan_option_institutional_investors(
self,
data_id: str = "",
start_date: str = "",
end_date: str = "",
timeout: int = None,
) -> pd.DataFrame:
"""get 選擇權三大法人買賣
:param data_id: 選擇權代號("TXO")
:param start_date (str): 起始日期("2018-01-01")
:param end_date (str): 結束日期("2021-03-06")
:param timeout (int): timeout seconds, default None
:return: 選擇權三大法人買賣 TaiwanOptionInstitutionalInvestors
:rtype pd.DataFrame
:rtype column name (str)
:rtype column date (str)
:rtype column institutional_investors (str)
:rtype column long_deal_volume (int)
:rtype column long_deal_amount (int)
:rtype column short_deal_volume (int)
:rtype column short_deal_amount (int)
:rtype column long_open_interest_balance_volume (int)
:rtype column long_open_interest_balance_amount (int)
:rtype column short_open_interest_balance_volume (int)
:rtype column short_open_interest_balance_amount (int)
"""
option_institutional_investors = self.get_data(
dataset=Dataset.TaiwanOptionInstitutionalInvestors,
data_id=data_id,
start_date=start_date,
end_date=end_date,
timeout=timeout,
)
return option_institutional_investors

def taiwan_futures_dealer_trading_volume_daily(
self,
Expand Down
3 changes: 2 additions & 1 deletion FinMind/schema/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ class Dataset(str, Enum):
)
TaiwanFutOptTick = "TaiwanFutOptTick"
TaiwanVariousIndicators5Seconds = "TaiwanVariousIndicators5Seconds"
TaiwanFutOptInstitutionalInvestors = "TaiwanFutOptInstitutionalInvestors"
TaiwanFuturesInstitutionalInvestors = "TaiwanFuturesInstitutionalInvestors"
TaiwanOptionInstitutionalInvestors = "TaiwanOptionInstitutionalInvestors"
TaiwanFuturesDealerTradingVolumeDaily = (
"TaiwanFuturesDealerTradingVolumeDaily"
)
Expand Down
45 changes: 45 additions & 0 deletions tests/data/test_data_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -501,3 +501,48 @@ def test_taiwan_stock_total_return_index(data_loader):
"date",
],
)


def test_taiwan_option_institutional_investors(data_loader):
data = data_loader.taiwan_option_institutional_investors(
data_id="TXO", start_date="2019-04-03", end_date="2019-04-04"
)
assert_data(
data,
[
"option_id",
"date",
"call_put",
"institutional_investors",
"long_deal_volume",
"long_deal_amount",
"short_deal_volume",
"short_deal_amount",
"long_open_interest_balance_volume",
"long_open_interest_balance_amount",
"short_open_interest_balance_volume",
"short_open_interest_balance_amount"
],
)


def test_taiwan_futures_institutional_investors(data_loader):
data = data_loader.taiwan_futures_institutional_investors(
data_id="TX", start_date="2019-04-03", end_date="2019-04-04"
)
assert_data(
data,
[
"futures_id",
"date",
"institutional_investors",
"long_deal_volume",
"long_deal_amount",
"short_deal_volume",
"short_deal_amount",
"long_open_interest_balance_volume",
"long_open_interest_balance_amount",
"short_open_interest_balance_volume",
"short_open_interest_balance_amount"
],
)

0 comments on commit 8788e34

Please sign in to comment.