def test_avg_loss_short_singles(): filters = { "start_date": datetime(2018, 1, 1), "end_date": datetime(2018, 2, 28), "entry_dte": 7, "leg1_delta": 0.50, "contract_size": 1, "expr_type": "SPXW", } spread = short_call(DATA, filters) result = spread.avg_loss() print(result) assert result == 0
def test_short_call_midpoint_integration(): filters = { "start_date": datetime(2018, 1, 1), "end_date": datetime(2018, 2, 28), "entry_dte": 31, "leg1_delta": 0.30, "exit_dte": 7, } backtest = short_call(DATA, filters, mode="midpoint") print(backtest) assert backtest["cost"].sum() == 9630.0 assert (backtest.iat[0, 5] == -1 and backtest.iat[0, 9] == 0.31 and backtest.iat[0, 16] == 11055.0) assert (backtest.iat[1, 5] == -1 and backtest.iat[1, 9] == 0.30 and backtest.iat[1, 16] == -1425.0)
def test_short_call(options_data): actual_spread = short_call(options_data) assert actual_spread[0] == OrderAction.STO assert isinstance(actual_spread[1], pd.DataFrame) assert not actual_spread[1].empty assert all(actual_spread[1]['option_type'] == 'c')