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