Функция Matlab не возвращает значения - PullRequest
0 голосов
/ 05 августа 2020

У меня проблема, которая возникает при расчете цены опциона с использованием биномиальной модели в Matlab.

введите описание изображения здесь

Проблема: я не знаю, почему это вообще не дает результата.

Это мой оригинальный python код:

import numpy as np

def binom_tree_put(S0, r, sigma, K, T, N):
    dt = T/N
    u = np.exp(sigma*numpy.sqrt(dt))
    d = 1 / u
    p = (numpy.exp(r*dt)-d) / (u-d)

    price_tree = np.zeros([N+1, N+1])

    for i in range(N+1):
        for j in range(i+1):
            price_tree[j,i] = S0*(d**j)*(u**(i-j))

    option = np.zeros([N+1, N+1])
    option =[:, N] = np.maximum(numpy.zeros(N+1), price_tree[:,N]-K)

    for i in numpy.arange(N-1, -1, -1):
        for j in numpy.arange(0, i+1):
            option[j,i] + numpy.exp(-r*dt)*(p*option[j,i+1]+(1-p)*option[j+1,i+1])

    return option[0,0]

1 Ответ

1 голос
/ 05 августа 2020

В Matlab вы запускаете сценарий, влекущий за собой функцию. Вам нужно вызвать функцию, чтобы она что-нибудь вернула. Следовательно, в командной строке вы хотите написать

[dt,u,d,p,Pe] = EuroOp(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...