Стратегия торговли кроссоверными опционами EMA/MA

Автор:Чао Чжан, Дата: 2024-01-16 14:14:42
Тэги:

img

Обзор

Это краткосрочная стратегия торговли опционами, основанная на экспоненциальной скользящей средней (EMA) и скользящей средней (MA) перекрестности для генерации торговых сигналов.

Логика стратегии

Стратегия использует два EMA/MA с различными параметрами, один быстрый EMA и один медленный MA. Период быстрой EMA установлен на 50 и медленный MA установлен на 100.

Когда краткосрочный скачок цен ускоряется, быстрая EMA проникает в медленную MA снизу, генерируя сигналы покупки. Это указывает на увеличение бычьего настроения, что делает его подходящим для рассмотрения покупки или покупки опционов на покупку.

Когда краткосрочное падение цен ускоряется, быстрая EMA пройдет ниже медленной MA, создавая сигналы продажи. Это показывает растущее медвежье настроение, указывающее на возможности продажи или покупки опционов.

Захватывая перекрестки между быстрой и медленной EMA/MA для определения краткосрочной тенденции и эмоций рынка, операции с опционами могут быть выполнены своевременно, чтобы извлечь выгоду из относительно краткосрочных колебаний цен.

Анализ преимуществ

Основными преимуществами этой стратегии являются:

  1. Быстрое реагирование для улавливания краткосрочных колебаний.

  2. Простая в реализации. Нужно только отслеживать перекрёстку двух скользящих средних без сложных расчетов.

  3. Гибкое приложение для торговли опционами или акциями.

  4. Контролируемый риск с четким стоп-лосом.

Анализ рисков

Некоторые риски:

  1. Потенциальные сигналы и рыночные диапазоны могут привести к чрезмерной торговле и увеличению затрат.

  2. Уязвимость к длительному снижению рынка с последовательными остановками потерь.

  3. Взлеты цен от значительных новостных событий могут преждевременно остановить позиции или существенно увеличить убытки.

Возможности для расширения

Некоторые способы улучшения стратегии:

  1. Динамическая остановка потери на основе волатильности.

  2. Интегрируйте несколько временных EMA. Добавьте ежедневные и еженедельные EMA для оценки общей тенденции, чтобы избежать контратендентных сделок.

  3. Используйте RSI, чтобы определить уровни перекупа и перепродажи, чтобы отфильтровать некоторые звуковые сигналы.

  4. Предсказание волатильности машинного обучения. Используйте модели LSTM для прогнозирования волатильности цен и риска, динамически регулируя размер позиций и стоп-лосс.

Заключение

Эта краткосрочная стратегия перекрестка EMA/MA охватывает краткосрочные изменения тренда и эмоции рынка для своевременной торговли путем мониторинга быстрой EMA и медленной перекрестки MA. Несмотря на ее простоту внедрения, риски включают чрезмерные сбои и устойчивые снижения. Улучшения в области оптимизации стоп-лосса, множественных временных рамок, фильтрации сигналов и прогнозирования машинного обучения могут помочь в управлении рисками и улучшении прибыльности.


/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Backtest single EMA cross", overlay=true)

qty = input(100000, "Buy quantity")

testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   #00FF00 : na
testPeriod() => true


ema1 = input(50, title="Select EMA 1")
ema2 = input(100, title="Select EMA 2")

expo = ema(close, ema1)
ma = ema(close, ema2)

avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)

p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)


longCondition = crossover(expo, ma)

shortCondition = crossunder(expo, ma)

exitlongCondition = crossunder(expo, ma)

exitshortCondition = crossover(expo, ma) 


if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)

plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor = #FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)




Больше