8. Estrategias comerciales de arbitraje intertemporal (versión educativa equivalente)

Fuente de referencia: docs/_joinquant_migration_source/Example_08_intertemporal arbitrage.ipynb Primera celda de Markdown.

8.1. Estrategia e ideas

  • Construir diferenciales de precios utilizando contratos del mismo tipo pero con diferentes fechas de vencimiento;

  • Utilice una ventana móvil para estimar el grado de desviación del diferencial de precios (zscore).

  • Corto el diferencial cuando cruza por encima de la banda superior y ve largo cuando cruza por debajo de la banda inferior.

  • Cierre la posición cuando regrese al rango neutral.

8.2. QtEasy Instrucciones de implementación

  • La clase de estrategia en este ejemplo es Example08CalendarSpread;

  • En aras de la estabilidad de la enseñanza, el guión predeterminado utiliza la frecuencia del índice diario para una aproximación lógica entre períodos;

  • Si cambia a un contrato de futuros real, maneje la lógica de renovación al mismo tiempo y registre las reglas de renovación en la documentación.

from examples.strategies.example_strategies import Example08CalendarSpread
import qteasy as qt

stg = Example08CalendarSpread()
op = qt.Operator(stg, signal_type='PT')
op.op_type = 'stepwise'
op.set_blender('1.0*s0')
res = qt.run(
    op,
    mode=1,
    asset_type='IDX',
    asset_pool=['000300.SH', '000905.SH'],
    benchmark_asset='000300.SH',
    invest_start='20190101',
    invest_end='20211231',
    invest_cash_amounts=[1000000],
    trade_batch_size=0.01,
    sell_batch_size=0.01,
    allow_sell_short=True,
    trade_log=True,
)

8.3. Script ejecutable

  • examples/strategy_example_08.py