- Quadrat
- Die Avellaneda-Stoikov-Strategie von Khaled Tamim
Die Avellaneda-Stoikov-Strategie von Khaled Tamim
Schriftsteller:
ChaoZhang, Datum: 2024-04-30
Tags:
Übersicht
Die Avellaneda-Stoikov-Strategie von Khaled Tamim ist eine quantitative Handelsstrategie, die auf dem Avellaneda-Stoikov-Modell basiert. Die Strategie bestimmt Kauf- und Verkaufssignale durch Berechnung des mittleren Preises, des Gebotspreises und des Ask-Preises unter Berücksichtigung der Transaktionskosten. Die Hauptidee der Strategie besteht darin, zu kaufen, wenn der Preis um eine bestimmte Schwelle unter dem Gebotspreis liegt, und zu verkaufen, wenn der Preis um eine bestimmte Schwelle über dem Ask-Preis liegt, wodurch der Spread-Gewinn erfasst wird.
Strategieprinzip
Der Kern dieser Strategie ist das Avellaneda-Stoikov-Modell, das die Gebots- und Verkaufspreise in folgenden Schritten berechnet:
- Berechnen Sie den mittleren Preis, der der Durchschnitt des aktuellen Preises und des vorherigen Preises ist.
- Berechnen Sie den Gebotspreis, indem Sie einen Quadratwurzelbegriff subtrahieren, der Gamma, Sigma, T und k aus dem mittleren Preis enthält, und subtrahieren Sie dann die Transaktionskosten.
- Berechnen Sie den Ask-Preis, indem Sie einem Quadratwurzelbegriff mit Gamma, Sigma, T und k zum Mittelkurs hinzufügen und dann die Transaktionskosten addieren.
- Erzeugen eines Kaufsignals, wenn der Preis unter dem Gebotspreis minus dem Schwellenwert M liegt; Erzeugen eines Verkaufssignals, wenn der Preis über dem Kaufpreis plus dem Schwellenwert M liegt.
Strategische Vorteile
- Diese Strategie basiert auf dem Avellaneda-Stoikov-Modell, einem klassischen Marktgestaltungssystem mit einer soliden theoretischen Grundlage.
- Die Strategie berücksichtigt die Auswirkungen der Transaktionskosten und ist damit realistischer für tatsächliche Handelssituationen.
- Durch die Festlegung des Schwellenwerts M kann die Empfindlichkeit der Strategie flexibel an die unterschiedlichen Marktbedingungen angepasst werden.
- Die Strategielogik ist klar und leicht verständlich und umsetzbar.
Strategische Risiken
- Die Leistung der Strategie hängt von der Wahl von Parametern wie Gamma, Sigma, T, k und M ab. Falsche Parameter-Einstellungen können zu schlechter Strategieleistung führen.
- Die Strategie berücksichtigt nicht die Auswirkungen der Liquidität des Marktes.
- Diese Strategie ist eine Hochfrequenz-Handelsstrategie, die eine geringe Handelslatenz und eine hohe Ausführungseffizienz erfordert, was ihre Umsetzung erschwert.
Strategieoptimierungsrichtlinien
- Einführung von Algorithmen für maschinelles Lernen zur dynamischen Anpassung von Strategieparametern an unterschiedliche Marktbedingungen.
- Kombination anderer technischer Indikatoren oder Marktmikrostrukturinformationen zur Verbesserung der Signalgenauigkeit.
- Optimierung des Handelsausführungsalgorithmus zur Senkung der Transaktionskosten und Verbesserung der Strategierenditen.
- Es sollte in Erwägung gezogen werden, ein Risikomanagementmodul einzuführen, um die Strategieentnahmen und das Risikoposition zu kontrollieren.
Zusammenfassung
Die Avellaneda-Stoikov-Strategie von Khaled Tamim ist eine quantitative Handelsstrategie, die auf dem klassischen Market-Making-Modell basiert. Sie erzeugt Handelssignale durch Berechnung der Bid- und Ask-Preise, während sie die Transaktionskosten berücksichtigt. Die Vorteile der Strategie liegen in ihrer soliden theoretischen Grundlage, der klaren Logik und der Berücksichtigung der Transaktionskosten. Die Leistung der Strategie hängt jedoch von der Auswahl der Parameter ab und erfordert eine hohe Ausführungseffizienz. In Zukunft kann die Strategie durch Einführung von Machine-Learning-Algorithmen, Optimierung der Handelsausführung, Einführung von Risikomanagement und anderen Methoden weiter optimiert werden.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Khaled Tamim's Avellaneda-Stoikov Strategy", overlay=true)
// Avellaneda-Stoikov model logic
avellanedaStoikov(src, gamma, sigma, T, k, M) =>
midPrice = (src + src[1]) / 2
sqrtTerm = gamma * sigma * sigma * T
// Add 0.1% fee to bid and ask quotes
fee = 0 // 0.1% fee
bidQuote = midPrice - k * sqrtTerm - (midPrice * fee)
askQuote = midPrice + k * sqrtTerm + (midPrice * fee)
longCondition = src < bidQuote - M
shortCondition = src > askQuote + M
[bidQuote, askQuote]
// Define strategy parameters
gamma = input.float(2, title="Gamma")
sigma = input.float(8, title="Sigma")
T = input.float(0.0833, title="T")
k = input.float(5, title="k")
M = input.float(0.5, title="M")
// Calculate signals
[bidQuote, askQuote] = avellanedaStoikov(close, gamma, sigma, T, k, M)
longCondition = close < bidQuote - M
shortCondition = close > askQuote + M
// Plot signals
plotshape(series=longCondition ? low : na, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition ? high : na, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plot bid and ask prices
plot(bidQuote, title="Bid Price", color=color.blue, linewidth=1)
plot(askQuote, title="Ask Price", color=color.red, linewidth=1)
// Plot inventory level as bars in a separate graph
plot(strategy.netprofit, title="Inventory", color=color.new(color.purple, 80), style=plot.style_columns)
// Strategy logic
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)
Mehr