Каскадирование товарных фьючерсов в Python

Я новичок в количественных финансах в Python, поэтому, пожалуйста, потерпите меня. У меня есть следующий набор данных:

      > head(df, 20)
# A tibble: 20 × 15
  deal_id book   counterparty   commodity_name commodity_code executed_date       first_delivery_date last_delivery_date  last_trading_date   volume buy_sell trading_unit tenor   delivery_window strategy  
 <int> <chr>  <chr>          <chr>          <chr>          <dttm>              <dttm>              <dttm>              <dttm>               <int> <chr>    <chr>        <chr>   <chr>           <chr>     
 1       0 Book_7 Counterparty_3 api2coal       ATW            2021-03-07 11:50:24 2022-01-01 00:00:00 2022-12-31 00:00:00 2021-12-31 00:00:00  23000 sell     MT           year    Cal 22          NA        
 2       1 Book_7 Counterparty_3 oil            B              2019-11-10 18:33:39 2022-01-01 00:00:00 2022-12-31 00:00:00 2021-11-30 00:00:00  16000 sell     bbl          year    Cal 22          NA        
 3       2 Book_4 Counterparty_3 oil            B              2021-02-25 11:44:20 2021-04-01 00:00:00 2021-04-30 00:00:00 2021-02-26 00:00:00   7000 buy      bbl          month   Apr 21          NA        
 4       3 Book_3 Counterparty_3 gold           GC             2022-05-27 19:28:48 2022-11-01 00:00:00 2022-11-30 00:00:00 2022-10-31 00:00:00    200 buy      oz           month   Nov 22          NA        
 5       4 Book_2 Counterparty_3 czpower        CZ             2022-09-26 13:14:31 2023-03-01 00:00:00 2023-03-31 00:00:00 2023-02-27 00:00:00      2 buy      MW           quarter Mar 23          NA        
 6       5 Book_1 Counterparty_3 depower        DE             2022-08-29 10:28:34 2022-10-01 00:00:00 2022-10-31 00:00:00 2022-09-30 00:00:00     23 buy      MW           month   Oct 22          NA        
 7       6 Book_3 Counterparty_1 api2coal       ATW            2022-12-08 08:17:11 2023-01-01 00:00:00 2023-01-31 00:00:00 2022-12-30 00:00:00  29000 sell     MT           quarter Jan 23          NA        
 8       7 Book_3 Counterparty_2 depower        DE             2020-10-16 17:36:13 2022-03-01 00:00:00 2022-03-31 00:00:00 2022-02-25 00:00:00      3 sell     MW           quarter Mar 22          NA        
 9       8 Book_7 Counterparty_1 api2coal       ATW            2020-10-13 09:35:24 2021-02-01 00:00:00 2021-02-28 00:00:00 2021-01-29 00:00:00   1000 sell     MT           quarter Feb 21          NA        
10       9 Book_2 Counterparty_1 api2coal       ATW            2020-05-19 11:04:39 2022-01-01 00:00:00 2022-12-31 00:00:00 2021-12-31 00:00:00  19000 sell     MT           year    Cal 22          NA        
11      10 Book_6 Counterparty_1 oil            B              2022-03-03 08:04:04 2022-08-01 00:00:00 2022-08-31 00:00:00 2022-06-30 00:00:00  26000 buy      bbl          month   Aug 22          NA        
12      11 Book_3 Counterparty_1 gold           GC             2021-05-09 18:08:31 2022-05-01 00:00:00 2022-05-31 00:00:00 2022-04-29 00:00:00   1600 sell     oz           month   May 22          NA        
13      12 Book_5 Counterparty_2 oil            B              2020-08-20 11:54:34 2021-04-01 00:00:00 2021-04-30 00:00:00 2021-02-26 00:00:00   6000 buy      bbl          month   Apr 21          Strategy_3
14      13 Book_6 Counterparty_2 gold           GC             2020-12-23 16:28:55 2021-12-01 00:00:00 2021-12-31 00:00:00 2021-11-30 00:00:00   1700 sell     oz           month   Dec 21          NA        
15      14 Book_2 Counterparty_1 depower        DE             2021-08-11 12:54:23 2024-01-01 00:00:00 2024-12-31 00:00:00 2023-12-28 00:00:00     15 buy      MW           year    Cal 24          NA        
16      15 Book_5 Counterparty_1 czpower        CZ             2022-02-15 07:45:24 2022-12-01 00:00:00 2022-12-31 00:00:00 2022-11-30 00:00:00     28 buy      MW           month   Dec 22          Strategy_3
17      16 Book_7 Counterparty_2 oil            B              2021-05-19 07:37:05 2022-02-01 00:00:00 2022-02-28 00:00:00 2021-12-31 00:00:00  11000 buy      bbl          quarter Feb 22          Strategy_3
18      17 Book_4 Counterparty_3 depower        DE             2022-02-01 12:34:49 2022-06-01 00:00:00 2022-06-30 00:00:00 2022-05-31 00:00:00     14 sell     MW           month   Jun 22          NA        
19      18 Book_2 Counterparty_3 czpower        CZ             2022-06-02 09:39:16 2023-02-01 00:00:00 2023-02-28 00:00:00 2023-01-30 00:00:00     21 buy      MW           quarter Feb 23          NA        
20      19 Book_3 Counterparty_1 czpower        CZ             2021-10-28 12:41:11 2022-09-01 00:00:00 2022-09-30 00:00:00 2022-08-31 00:00:00      3 sell     MW           month   Sep 22          NA        

И меня просят извлечь из него некоторую информацию, применяя то, что называется каскадированием годовых и квартальных фьючерсов, чего я не знаю. Вопрос заключается в следующем:

Вычислите размер позиции (контрактный объем) для комбинации книг и товаров для выбранного периода истории. Формат вывода должен быть фреймом данных с будущими периодами доставки в качестве индекса (здесь идет каскадирование за год и квартал), товары в качестве имен столбцов и общий объем в качестве значений. Укажите отрицательные значения, когда весь объем за данный период был продан, и положительные значения, когда он был куплен.

Я прочитал некоторые материалы в Интернете о каскадных фьючерсах здесь и здесь , но это дало мне лишь смутное представление о том, что они из себя представляют, и не помогло решить проблему. и примеров кодирования на Python не существует.

Может кто-нибудь, пожалуйста, дайте мне подсказку, как подойти к этой проблеме? Я новичок в области количественных финансов, и любая помощь будет очень признательна.

0 ответов

Другие вопросы по тегам