2010-06-19 1 views
1

나는 미래의 다양한 시간에 짧은 전화의 이익/손실을 계산하려고 시도하고 있지만 올바른 것은 아닙니다. 만료 시점과 비교해 볼 때, 시간이 남은 기업은 파업 가격보다 적은 이익을 가지지 만 파업 아래 어느 시점에서는 t = 0 선만큼 빨리 가치를 잃지 않습니다. 아래는 의사 코드의 수식입니다. 내가 뭘 잘못하고 있니?Black-Scholes 공식으로 간단한 옵션 호출의 가치를 계산하는 방법은 무엇입니까?

profit(stockprice) = -1 * (black_scholes_price_of_call(stockPrice,optionStrike,daysTillExpiration) - premium); 

리얼 MATLAB 코드 :

감사

function [ x ] = sell_call(current,strike,price,days) 
if (days > 0) 
    Sigma = .25; 
    Rates = 0.05; 
    Settle = today; 
    Maturity = today + days; 

    RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, 'EndDates',... 
     Maturity, 'Rates', Rates, 'Compounding', -1); 

    StockSpec = stockspec(Sigma, current); 

    x = -1 * (optstockbybls(RateSpec, StockSpec, Settle, Maturity, 'call', strike) - price); 
else 
    x = min(price,strike-current-price); 
end 

끝, CP

답변

1

문제를 발견했습니다. RateSpec 인수와 관련이 있습니다. 이자율을 내면 옵션 가격에 영향을 미칩니다.

3

귀하의 공식은 옳지 않다. 매우 간단

profit(stockprice) = premium - black_scholes_price_of_call(stockPrice,optionStrike,daysTillExpiration); 

을 : 당신은 내가 "공식"그것을 배포 할 때 주요 -1 승수에 대한 간단한 하나이기 때문에 것을해야하는 이유를 알고 싶습니다. 즉, 문제는 전화 가격에 해당 기능에 묻혀 있음을 의미합니다.

내가 수식을 위키 피 디아의 정의로 보는 것과 비교할 때, 나는 서신을 전혀 볼 수 없습니다. 귀하의 MATLAB 코드도 도움이되지 않습니다. 기능을 파헤 치고 잘못 된 곳을 확인하십시오.

작성 했습니까? 이 큰 기능으로 조립하기 전에 어떻게 테스트 했습니까? 더 큰 블록으로 조립하기 전에 작은 블록을 테스트하십시오.

어떤 기준선을 테스트하고 있습니까? 어떤 알려진 상황에서 계산을 비교하고 있습니까? 사용할 수있는 B-S 계산기가 많이 있습니다. 어쩌면 그 중 하나를 사용할 수 있습니다.

나는 MATLAB이 아니라 코드에 오류가 있다고 가정합니다. 또는 전달중인 매개 변수의 의미를 잘못 이해 한 것입니다. 당신의 물건을 더 조심스럽게보고, 그 기능에 대한 문서를 다시 읽으십시오.

+0

함수 optstockbybls는 matlab 도구 상자의 일부입니다. – CptanPanic

+0

나는 그것이 MATLAB보다는 당신의 코드에 오류라고 가정하고 싶다. 당신의 물건을 더 조심스럽게보고, 좋은 사례 세트를 얻으십시오. – duffymo

+0

다음은 블랙 숄즈 계산기 http://www.seleno.us/options.php입니다. 이거 한번 해봐. – JTHouseCat

관련 문제