Пример #1
0
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)
Пример #3
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')