Plotando convexidade vs. o fator
Outra forma de verificar o efeito de um determinado fator na convexidade de um título é plotar diretamente um gráfico desse fator em relação à convexidade do título.
Neste exercício, você vai precificar um título de 20 anos com cupom de 6% e valor de face de USD 100 e, em seguida, encontrar a convexidade desse título para diferentes níveis de yield.
numpy, numpy_financial, pandas e matplotlib já foram importados para você como np, npf, pd e plt, respectivamente.
Este exercicio faz parte do curso
Valoração e Análise de Títulos em Python
Instruções do exercicio
- Crie um array de yields do título de 0 a 20, em incrementos de 0,1, e converta para um DataFrame do
pandas. - Encontre o preço do título, desloque os yields para cima e para baixo e reprecifique; depois, calcule a convexidade do título.
- Plote um gráfico com os yields do título no eixo x e a convexidade no eixo y.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Create array of bond yields and covert to pandas DataFrame
bond_yields = np.arange(____, ____, ____)
bond = pd.DataFrame(____, columns=['bond_yield'])
# Find price of bond, reprice for higher and lower yields, calculate convexity
bond['price'] = -npf.pv(rate=bond['____'] / 100, nper=____, pmt=____, fv=____)
bond['price_up'] = ____
bond['price_down'] = ____
bond['convexity'] = (bond['____'] + bond['____'] - 2 * bond['____']) / (bond['____'] * 0.01 ** 2)
# Create plot of bond yields against convexity, add labels to axes, display plot
plt.plot(bond['____'], bond['____'])
plt.xlabel('Yield (%)')
plt.ylabel('Convexity')
____