options-backtesting/backtesting/credit_targeting.py

34 lines
1.1 KiB
Python

from dataclasses import dataclass
from .option_spread_strategy import OptionSpreadStrategy
from .option_type import OptionType
@dataclass
class CreditTargetStrategy(OptionSpreadStrategy):
credit_target: float
def iron_condor_strategy(credit_target: float) -> str:
return f'${credit_target:.2f} Iron Condor'
def create_strategies(credit_target: float, entry_time: str, number_of_contracts: int = 1):
call_spread_strategy = CreditTargetStrategy(
credit_target = credit_target,
option_type = OptionType.CALL,
number_of_contracts = number_of_contracts,
spread_width = 50,
stop_loss_multiple = 1.00,
trade_entry_time = entry_time,
entry_slippage = 0.10,
exit_slippage = 0.20
)
put_spread_strategy = CreditTargetStrategy(
credit_target = credit_target,
option_type = OptionType.PUT,
number_of_contracts = number_of_contracts,
spread_width = 50,
stop_loss_multiple = 1.00,
trade_entry_time = entry_time,
entry_slippage = 0.10,
exit_slippage = 0.20
)
return call_spread_strategy, put_spread_strategy