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