2 votos

¿Qué valores del Tesoro han vencido en el SOMA en lo que va de mes?

Hoy es 15 de agosto de 2022.

Digamos que me gustaría saber las tenencias de valores del tesoro SOMA que han vencido en lo que va de mes, así como el total que vencerá este mes.

He aquí un método que he utilizado con PowerShell y la API de la Reserva Federal de Nueva York.

Realice una consulta para la fecha "a partir de" justo antes de agosto:

$result = Invoke-RestMethod ('https://markets.newyorkfed.org/api/soma/tsy/get/all/asof/{0}.json' -f '2022-07-27')

Muestra los títulos que vencen en agosto:

$result.soma.holdings | 
    Where-Object maturityDate -GE '2022-08-01' | 
    Where-Object maturityDate -LE '2022-08-31' | 
    Sort-Object maturityDate | 
    Format-Table *

enter image description here

Indique el importe total que vence en agosto:

'{0:C0}' -f (
    $result.soma.holdings | 
        Where-Object maturityDate -GE '2022-08-01' | 
        Where-Object maturityDate -LE '2022-08-31' | 
        Measure-Object -Property parValue -Sum).Sum

$194,344,004,700

'{0:C0}' -f (
    $result.soma.holdings | 
        Where-Object maturityDate -GE '2022-08-01' | 
        Where-Object maturityDate -LE '2022-08-15' | 
        Measure-Object -Property parValue -Sum).Sum

$128,597,828,300

Pregunta

¿Es éste el mejor enfoque? ¿O hay otro método recomendado?

0voto

Sameet Puntos 783

El planteamiento anterior tiene un inconveniente:

¿Qué ocurre si se compra un valor en agosto y también vence en agosto? La consulta anterior no detectará este valor, ya que utiliza una fecha de vencimiento anterior a agosto.

Múltiples fechas de entrega

Aquí están las fechas a partir de agosto, así como una justo antes de agosto:

2022-07-27
2022-08-03
2022-08-10
2022-08-17
2022-08-24

Podemos recuperar las participaciones para cada fecha y seleccionar valores de cada conjunto.

En PowerShell, vamos a consultar las participaciones en el SOMA para cada una de estas fechas:

$result_0 = Invoke-RestMethod ('https://markets.newyorkfed.org/api/soma/tsy/get/all/asof/{0}.json' -f '2022-07-27')
$result_1 = Invoke-RestMethod ('https://markets.newyorkfed.org/api/soma/tsy/get/all/asof/{0}.json' -f '2022-08-03')
$result_2 = Invoke-RestMethod ('https://markets.newyorkfed.org/api/soma/tsy/get/all/asof/{0}.json' -f '2022-08-10')
$result_3 = Invoke-RestMethod ('https://markets.newyorkfed.org/api/soma/tsy/get/all/asof/{0}.json' -f '2022-08-17')
$result_4 = Invoke-RestMethod ('https://markets.newyorkfed.org/api/soma/tsy/get/all/asof/{0}.json' -f '2022-08-24')

Del primer conjunto (a partir de 2022-07-27), podemos seleccionar los valores que vencen en el intervalo comprendido entre el 1 de agosto y la siguiente fecha de vencimiento, el 3 de agosto.

Del segundo conjunto (a partir de 2022-08-03), podemos seleccionar los valores que vencen en el intervalo comprendido entre el 3 de agosto y la siguiente fecha de vencimiento, el 10 de agosto.

Y así sucesivamente.

Código para esto:

$items = @(
    $result_0.soma.holdings | Where-Object maturityDate -GE '2022-08-01' | Where-Object maturityDate -LE '2022-08-03' 
    $result_1.soma.holdings | Where-Object maturityDate -GT '2022-08-03' | Where-Object maturityDate -LE '2022-08-10' 
    $result_2.soma.holdings | Where-Object maturityDate -GT '2022-08-10' | Where-Object maturityDate -LE '2022-08-17' 
    $result_3.soma.holdings | Where-Object maturityDate -GT '2022-08-17' | Where-Object maturityDate -LE '2022-08-24' 
    $result_4.soma.holdings | Where-Object maturityDate -GT '2022-08-24' | Where-Object maturityDate -LE '2022-08-31'
)

Después de ejecutar lo anterior, podemos mostrar los elementos:

$items | Sort-Object maturityDate | Format-Table *

enter image description here

Y mostrar el valor total madurando:

'{0:C0}' -f ($items | Measure-Object -Property parValue -Sum).Sum

enter image description here

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X