HistoricalReferenceの欠損について

HistoricalReferenceレポートで、ESc1の満期日を取得しようとしています。

Expiration Dateは未設定であるため、Last Trading Dayを満期日として参照しようとしたのですが、

2021/3/19の満期日の情報が入っていません。

ESc1は3月、6月、9月、12月の第3金曜日が満期日であるため、上記の情報が欠損していると思うのですが、こちらはバグでしょうか?

また、過去データのみで発生しており、今後発生することはないでしょうか?


Best Answer

  • @shiro.chiba

    Thank you for reaching out to us.

    Please try the "ETH Expiry Date" field.

    {
        "ExtractionRequest": {
            "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.HistoricalReferenceExtractionRequest",
            "ContentFieldNames": [
                "RIC",          
                "ETH Expiry Date"
            ],
            "IdentifierList": {
                "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
                "InstrumentIdentifiers": [
                    {
                        "Identifier": "ESc1",
                        "IdentifierType": "Ric"
                    }
                ],
                "ValidationOptions": {
                    "AllowHistoricalInstruments": true
                },
                "UseUserPreferencesForValidationOptions": false
            },
            "Condition": {
                "ReportDateRangeType": "Range",
                "QueryStartDate": "2021-05-01",
                "QueryEndDate": "2023-10-31"
            }
        }
    }

    The output is:

           ...
            {
                "IdentifierType": "Ric",
                "Identifier": "ESc1",
                "RIC": "ESc1",
                "ETH Expiry Date": "2023-03-17"
            },
            {
                "IdentifierType": "Ric",
                "Identifier": "ESc1",
                "RIC": "ESc1",
                "ETH Expiry Date": "2023-06-16"
            },
            {
                "IdentifierType": "Ric",
                "Identifier": "ESc1",
                "RIC": "ESc1",
                "ETH Expiry Date": "2023-06-16"
            },
            {
                "IdentifierType": "Ric",
                "Identifier": "ESc1",
                "RIC": "ESc1",
                "ETH Expiry Date": "2023-09-15"
            },
            {
                "IdentifierType": "Ric",
                "Identifier": "ESc1",
                "RIC": "ESc1",
                "ETH Expiry Date": "2023-09-15"
            },
            {
                "IdentifierType": "Ric",
                "Identifier": "ESc1",
                "RIC": "ESc1",
                "ETH Expiry Date": "2023-12-15"
            },


Answers

  • @Jirapongse ご回答ありがとうございます。

    上記のリクエストを行うと、400エラーが発生しました。


    '{"error":{"message":"Validation Error:\\r\\n\\r\\nInvalid content FieldName \\"ETH Expiry Date\\"V}'

    pythonでリクエストを行ったのですが、Bodyは以下の内容になります。

        url = 'https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/ExtractWithNotes'

    headers =
    'Prefer': 'respond-async
    'Content-Type': 'application/json
    'Authorization': f'Token {token
    }

    data = {
    "ExtractionRequest": {
    "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.HistoricalReferenceExtractionRequest",
    "ContentFieldNames": [
    "RIC",
    "ETH Expiry Date"
    ],
    "IdentifierList":
    "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
    "InstrumentIdentifiers":[
    {
    "Identifier": "ESc1",
    "IdentifierType": "Ric"
    }
    ],
    "ValidationOptions": {"AllowHistoricalInstruments": True},
    "UseUserPreferencesForValidationOptions": False
    },
    "Condition":
    "ReportDateRangeType": "Range",
    "QueryStartDate": {start_date},
    "QueryEndDate": {end_date}
    }
    }
    response = requests.post(url, data=json.dumps(data), headers=headers)

    何か間違ってますでしょうか?



  • @shiro.chiba

    The request message is not a valid JSON.

    1699933354625.png

    The code should look like this:

    import requests
    import json
    url = "https://selectapi.datascope.refinitiv.com/RestApi/v1/Extractions/ExtractWithNotes"
    payload = json.dumps({
      "ExtractionRequest": {
        "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.HistoricalReferenceExtractionRequest",
        "ContentFieldNames": [
          "RIC",
          "ETH Expiry Date"
        ],
        "IdentifierList": {
          "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
          "InstrumentIdentifiers": [
            {
              "Identifier": "ESc1",
              "IdentifierType": "Ric"
            }
          ],
          "ValidationOptions": {
            "AllowHistoricalInstruments": True
          },
          "UseUserPreferencesForValidationOptions": False
        },
        "Condition": {
          "ReportDateRangeType": "Range",
          "QueryStartDate": "2020-01-01",
          "QueryEndDate": "2023-01-01"
        }
      }
    })
    headers = {
      'Prefer': 'respond-async',
      'Content-Type': 'application/json',
      'Authorization': 'Token <token>'
    }
    response = requests.request("POST", url, headers=headers, data=payload)
    print(response.text)
  • @Jirapongse

    Thank you. However, I'm still encountering the same error.

    1699942130413.png

  • @shiro.chiba

    This is strange. This field may be an internal field.

    Please contact the Refinitiv Tick History support team directly via MyRefinitiv to verify this field or get another field that can provide the same data.