Source code for putcall.formulas.option_payoffs

# -*- coding: utf-8 -*-

# putcall
# -------
# Collection of classical option pricing formulas.
# 
# Author:   sonntagsgesicht, based on a fork of Deutsche Postbank [pbrisk]
# Version:  0.2, copyright Wednesday, 18 September 2019
# Website:  https://github.com/sonntagsgesicht/putcall
# License:  Apache License 2.0 (see LICENSE file)


[docs]def option_payoff(forward_value, strike_value, is_call_bool): """ simple option payoff @param strike_value: strike price @param forward_value: forward price of underlying @param is_call_bool: call -> True, put -> False @return: option payoff value """ if is_call_bool: # call return max(forward_value - strike_value, 0) else: # put return max(strike_value - forward_value, 0)
[docs]def digital_option_payoff(forward_value, strike_value, is_call_bool): """ simple digital option payoff @param strike_value: strike price @param forward_value: forward price of underlying @param is_call_bool: call -> True, put -> False @return: option payoff value """ if is_call_bool: # call return 1.0 if forward_value >= strike_value else 0.0 else: # put return 0.0 if forward_value >= strike_value else 1.0
[docs]def straddle_payoff(forward_value, strike_value, is_call_bool=True): """ simple straddle option payoff @param strike_value: strike price @param forward_value: forward price of underlying @param is_call_bool: obsolete @return: option payoff value """ return option_payoff(forward_value, strike_value, True) + option_payoff(forward_value, strike_value, False)