7. Cross-Product-Arbitrage-Handelsstrategien (pädagogische Entsprechung)
Referenzquelle: docs/_joinquant_migration_source/Example_07_跨商品套利.ipynb Erste Markdown-Zelle. Hinweis: Das ursprüngliche Notebook war als „Informationsprobleme müssen korrigiert werden“ gekennzeichnet. Dieses Beispiel basiert auf der reproduzierbaren Implementierung in qteasy.
7.1. Strategie und Ideen
Wählen Sie zwei stark korrelierte Handelsinstrumente und konstruieren Sie einen Preisspread
spread = p1 - p2;Der Mittelwert und die Standardabweichung der Preisdifferenz werden innerhalb eines Scrollfensters berechnet, um den z-Score zu erhalten.
Wenn der Z-Score über dem oberen Schwellenwert liegt, werden Short-Spreads eröffnet (Verkauf des ersten Spreads und Kauf des zweiten Spreads); wenn der Z-Score unter dem unteren Schwellenwert liegt, werden Long-Spreads eröffnet.
Die Position sollte geschlossen werden, sobald der Kurs sich wieder dem Ausstiegsschwellenwert annähert.
7.2. QtEasy-Implementierungsanleitung
Dieser Artikel verwendet das
PT-Signal und die Strategieklasse istExample07CrossSymbolSpread;Um die Datenabhängigkeit zu reduzieren, verwendet das Beispielskript standardmäßig tägliche Indexpaare (näherungsweise zu Lehrzwecken) anstelle der ursprünglichen Minuten-Futures-Kontraktpaare;
Wenn Sie lokale Futures-Minutendaten haben, können Sie
asset_type/asset_pool/freqim Skript durch die Futures-Version ersetzen.
from examples.strategies.example_strategies import Example07CrossSymbolSpread
import qteasy as qt
stg = Example07CrossSymbolSpread()
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,
)
7.3. Ausführbares Skript
examples/strategy_example_07.py