- Persegi
- Strategi Avellaneda-Stoikov Khaled Tamim
Strategi Avellaneda-Stoikov Khaled Tamim
Penulis:
ChaoZhang, Tarikh: 2024-04-30 15:54:23
Tag:
Ringkasan
Strategi Avellaneda-Stoikov adalah strategi perdagangan kuantitatif berdasarkan model Avellaneda-Stoikov. Strategi ini menentukan isyarat beli dan jual dengan mengira harga pertengahan, harga tawaran, dan harga tanya sambil mempertimbangkan kos transaksi. Idea utama strategi ini adalah untuk membeli apabila harga di bawah harga tawaran dengan ambang tertentu dan menjual apabila harga di atas harga tanya dengan ambang tertentu, dengan itu menangkap keuntungan spread.
Prinsip Strategi
Inti strategi ini adalah model Avellaneda-Stoikov yang mengira harga tawaran dan permintaan melalui langkah-langkah berikut:
- Mengira harga pertengahan, yang merupakan purata harga semasa dan harga sebelumnya.
- Hitung harga tawaran dengan mengurangkan istilah akar kuadrat yang mengandungi Gamma, Sigma, T, dan k dari harga pertengahan, dan kemudian mengurangkan kos transaksi.
- Mengira harga permintaan dengan menambah istilah akar persegi yang mengandungi Gamma, Sigma, T, dan k kepada harga pertengahan, dan kemudian menambah kos transaksi.
- Menghasilkan isyarat beli apabila harga di bawah harga tawaran dikurangkan ambang M; Menghasilkan isyarat jual apabila harga di atas harga meminta ditambah ambang M.
Kelebihan Strategi
- Strategi ini berdasarkan model Avellaneda-Stoikov, yang merupakan strategi pembuatan pasaran klasik dengan asas teori yang kukuh.
- Strategi ini mengambil kira kesan kos transaksi, menjadikannya lebih realistik untuk situasi perdagangan sebenar.
- Dengan menetapkan ambang M, kepekaan strategi boleh disesuaikan dengan fleksibel untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
- Logik strategi adalah jelas dan mudah difahami dan dilaksanakan.
Risiko Strategi
- Prestasi strategi bergantung pada pilihan parameter seperti Gamma, Sigma, T, k, dan M. Tetapan parameter yang tidak betul boleh menyebabkan prestasi strategi yang buruk.
- Strategi ini tidak mempertimbangkan kesan kecairan pasaran. Dalam kes kecairan yang tidak mencukupi, mungkin tidak mungkin untuk berdagang pada harga yang dijangkakan.
- Strategi ini adalah strategi perdagangan frekuensi tinggi yang memerlukan latensi perdagangan yang rendah dan kecekapan pelaksanaan yang tinggi, menjadikannya sukar dilaksanakan.
Arahan Pengoptimuman Strategi
- Memperkenalkan algoritma pembelajaran mesin untuk menyesuaikan parameter strategi secara dinamik untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
- Menggabungkan penunjuk teknikal lain atau maklumat struktur mikro pasaran untuk meningkatkan ketepatan isyarat.
- Mengoptimumkan algoritma pelaksanaan dagangan untuk mengurangkan kos transaksi dan meningkatkan pulangan strategi.
- Pertimbangkan untuk memperkenalkan modul pengurusan risiko untuk mengawal pengambilan strategi dan pendedahan risiko.
Ringkasan
Strategi Avellaneda-Stoikov Khaled Tamim adalah strategi perdagangan kuantitatif berdasarkan model pembuatan pasaran klasik. Ia menjana isyarat perdagangan dengan mengira harga tawaran dan meminta sambil mempertimbangkan kos transaksi. Kelebihan strategi terletak pada asas teori yang kukuh, logik yang jelas, dan pertimbangan kos transaksi. Walau bagaimanapun, prestasi strategi bergantung pada pemilihan parameter dan memerlukan kecekapan pelaksanaan yang tinggi.
/*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)
Lebih lanjut