Spaces:
Build error
Build error
File size: 934 Bytes
12f4bef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # Imports
from enum import Enum
from abc import ABC, abstractclassmethod
class OPTION_TYPE(Enum):
CALL_OPTION = 'Call Option'
PUT_OPTION = 'Put Option'
class OptionPricingModel(ABC):
"""Abstract class defining interface for option pricing models."""
def calculate_option_price(self, option_type):
"""Calculates call/put option price according to the specified parameter."""
if option_type == OPTION_TYPE.CALL_OPTION.value:
return self._calculate_call_option_price()
elif option_type == OPTION_TYPE.PUT_OPTION.value:
return self._calculate_put_option_price()
else:
return -1
@abstractclassmethod
def _calculate_call_option_price(self):
"""Calculates option price for call option."""
pass
@abstractclassmethod
def _calculate_put_option_price(self):
"""Calculates option price for put option."""
pass |