В процессе загрузки ресурсов... загрузка...

Стратегия Авельянеды-Стоикова Халеда Тамима

Автор:Чао Чжан, Дата: 2024-04-30 15:54:23
Тэги:

img

Обзор

Стратегия Авельянеды-Стоикова - это количественная стратегия торговли, основанная на модели Авельянеды-Стоикова. Стратегия определяет сигналы покупки и продажи путем расчета средней цены, цены предложения и цены запроса при рассмотрении затрат на транзакцию.

Принцип стратегии

Основой этой стратегии является модель Avellaneda-Stoikov, которая рассчитывает цены предложения и спроса в следующих шагах:

  1. Вычислить среднюю цену, которая является средней текущей и предыдущей цены.
  2. Вычислите цену предложения, вычитая из средней цены квадратный корень, содержащий Гамму, Сигму, T и k, а затем вычитая стоимость транзакции.
  3. Вычислите цену спроса, добавив квадратный корень, содержащий Гамму, Сигму, T и k к средней цене, а затем добавив стоимость транзакции.
  4. Создать сигнал покупки, когда цена ниже цены покупки минус порог M; создать сигнал продажи, когда цена выше цены покупки плюс порог M.

Преимущества стратегии

  1. Эта стратегия основана на модели Авельянеды-Стойкова, которая является классической стратегией формирования рынка с прочной теоретической основой.
  2. Стратегия учитывает влияние затрат на транзакции, что делает ее более реалистичной для реальных торговых ситуаций.
  3. Установление порога M позволяет гибко регулировать чувствительность стратегии для адаптации к различным рыночным условиям.
  4. Логика стратегии ясна и легко понятна и реализована.

Стратегические риски

  1. Производительность стратегии зависит от выбора таких параметров, как Гамма, Сигма, T, k и M. Неправильные настройки параметров могут привести к плохой эффективности стратегии.
  2. В случае недостаточной ликвидности может быть невозможно торговать по ожидаемой цене.
  3. Эта стратегия - высокочастотная стратегия торговли, которая требует низкой задержки торговли и высокой эффективности исполнения, что затрудняет ее реализацию.

Направления оптимизации стратегии

  1. Внедрение алгоритмов машинного обучения для динамической корректировки параметров стратегии для адаптации к различным рыночным условиям.
  2. Комбинировать другие технические показатели или информацию о микроструктуре рынка для улучшения точности сигналов.
  3. Оптимизировать алгоритм выполнения торгов для снижения затрат на транзакции и повышения доходности стратегии.
  4. Рассмотреть возможность внедрения модуля управления рисками для контроля использования стратегии и риска.

Резюме

Стратегия Халеда Тамима - количественная торговая стратегия, основанная на классической модели рыночного формирования. Она генерирует торговые сигналы путем расчета цены предложения и запроса при рассмотрении затрат на транзакцию. Преимущества стратегии заключаются в ее прочной теоретической основе, четкой логике и рассмотрении затрат на транзакцию.


/*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)

Больше