期权二叉树单步定价
Options Binomial Tree One Step
题目详情
某股票当前交易价格为 100 美元。下一期预计上涨至 110 美元或下跌至 90 美元。无风险利率为每期 5%。假设无分红,计算上涨的风险中性概率和该股票的欧式看涨期权价格(执行价 100 美元)。
任务:使用一步二叉树模型计算。风险中性概率 p = (e^{rT} - d)/(u - d),看涨期权价格 = e^{-rT} × [p × max(Su-K,0) + (1-p) × max(Sd-K,0)]。
英文原题
A stock is currently trading at 100 dollars. Over the next period, it is expected to either increase to 110 dollars or decrease to 90 dollars. The risk-free rate is 5% per period. Assuming no dividends, calculate the risk-neutral probability of the stock price increasing.
解析
问题分析
A stock is currently trading at 100 dollars. Over the next period, it is expected to either increase to 110 dollars or decrease to 90 dollars. The risk-free rate is 5% per period. Assuming no dividends, calculate the risk-neutral probability of the stock price increasing.
解法
根据题目要求实现相应功能。核心逻辑需要:
// 核心数据结构和方法——根据题目 API 约定实现
// 1. 确定状态表示——选择支持所需操作的数据结构
// 2. 实现核心算法——确保 O(·) 时间复杂度和正确性
// 3. 处理边界条件——空输入、极值参数、并发访问验证
用具体输入验证:构造已知输入的测试用例,确认输出匹配预期结果。
复杂度与边界
- 时间复杂度:取决于选用的算法
- 空间复杂度:取决于数据规模
- 关键边界条件:空输入、极值参数、并发场景下的正确性保证
英文解析
Analysis
A stock is currently trading at 100 dollars. Over the next period, it is expected to either increase to 110 dollars or decrease to 90 dollars. The risk-free rate is 5% per period. Assuming no dividends, the risk-neutral probability of the stock price increasing is calculated using the one-period binomial model. In risk-neutral pricing, the expected return of the stock must equal the risk-free rate: E[S] = S * e^(rdt). This gives us the risk-neutral probability q such the solution to: qu + (1-q)d = e^(-rdt) where u = 1.1 (up factor) and d = 0.9 (down factor).
Solution
struct BinomialResult { double q_up, double call_price, double put_price; };
BinomialResult oneStepBinomial(double S = 100, double u = 110, double d = 90, double r = 0.05) int periods = 1) {
double dt = periods * r; // Risk-free growth factor
double q = (std::exp(r*dt) - d) / (u - d); // Risk-neutral probability of up move
double call_price = S * u * std::exp(-r*dt); // Call payoff
double put_price = S * d * std::exp(-r*dt); // Put payoff
return {q, call_price, put_price};
}
// Example: q = (e^0.05 - 0.9) / (1.1 - 0.9) = 0.525
// call_price = 110 * e^(-0.05) = 104.76
// put_price = 90 * e^(-0.05) = 85.54Complexity & Edge Cases
- Time complexity: O(1) for one-step model
- Space complexity: O(1)
- Edge cases: (1) When u/d ratio makes q outside [0,1] range, arbitrage exists (2) Multi-period trees are O(N) where N = number of time steps (3) Dividend payments reduce u and increase d
Verification
Verify q = 0.525, call_price = 104.76, put_price = 85.54. Check that risk-neutral expectation equals risk-free growth: q*u + (1-q)d = e^(rdt). Verify put-call parity holds.
Key Considerations
The one-step binomial model is the foundation of all option pricing. The risk-neutral probability q ensures that the expected growth rate equals the risk-free rate, a key requirement for no-arbitrage pricing. In practice, multi-step binomial trees extend this to American/European options with early exercise features by discretizing time into many small steps.