8. Strategien für den Handel mit intertemporalen Arbitrageprodukten (entsprechende Bildungsversion)

Referenzquelle: docs/_joinquant_migration_source/Example_08_intertemporal arbitrage.ipynb Erste Markdown-Zelle.

8.1. Strategie und Ideen

  • Konstruieren Sie Preisspannen mithilfe von Verträgen desselben Typs, aber mit unterschiedlichen Verfallsdaten;

  • Verwenden Sie ein gleitendes Fenster, um den Grad der Preisdifferenzabweichung (z-Score) zu schätzen.

  • Gehen Sie short, wenn der Spread das obere Band nach oben kreuzt, und long, wenn er das untere Band nach unten kreuzt.

  • Schließen Sie die Position, sobald sie wieder im neutralen Bereich ist.

8.2. QtEasy-Implementierungsanleitung

  • Die Strategieklasse in diesem Beispiel ist Example08CalendarSpread;

  • Um Stabilität zu gewährleisten, verwendet das Standardskript die tägliche Indexfrequenz für die logische Annäherung zwischen den Perioden.

  • Wenn Sie auf einen realen Futures-Kontrakt umsteigen, behandeln Sie bitte gleichzeitig die Rollover-Logik und dokumentieren Sie die Rollover-Regeln.

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. Ausführbares Skript

  • examples/strategy_example_08.py