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

Многоиндикаторная тенденция после торговли опционами

Автор:Чао Чжан, Дата: 2024-12-20 14:49:04
Тэги:ЕМАSMAVWAPMACDРСИТП

img

Обзор

Эта стратегия - это система торговли опционами, которая сочетает в себе несколько технических индикаторов. Она использует EMA кроссовер в качестве основного сигнала, наряду с SMA и VWAP для подтверждения тренда, используя MACD и RSI в качестве дополнительных индикаторов для фильтрации сигналов. Стратегия использует фиксированные уровни получения прибыли для управления рисками и повышает успех торговли посредством строгих условий входа и управления позициями.

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

Стратегия использует перекресток 8-периодических и 21-периодических EMA в качестве основного торгового сигнала. Долгий (Call) сигнал запускается, когда краткосрочная EMA пересекает долгосрочную EMA и отвечает следующим условиям: цена выше 100 и 200-периодических SMA, линия MACD выше линии сигнала, а RSI выше 50. Короткие (Put) сигналы запускаются при противоположных условиях. VWAP включен в качестве ценового сбора, чтобы помочь оценить относительную ценовую позицию. Каждая торговля использует фиксированный размер позиции 1 контракта с уровнем прибыли 5%. Стратегия отслеживает статус позиции, используя флагOpen, чтобы гарантировать, что одновременно удерживается только одна позиция.

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

  1. Многочисленные индикаторы работают в синергии, перекрестно проверяя сигналы в различные периоды и типы индикаторов.
  2. Сочетает в себе индикаторы тренда и импульса, чтобы фиксировать как тренд, так и краткосрочный импульс.
  3. Установленный уровень прибыли помогает защитить прибыль и предотвратить чрезмерную жадность
  4. Строгое управление позициями предотвращает перекрытие позиций и снижает риск
  5. Ясная визуализация, включая тенденции EMA, SMA, VWAP и сигнальные маркеры

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

  1. Может генерировать частые ложные сигналы на различных рынках
  2. Фиксированные уровни получения прибыли могут ограничить потенциал прибыли
  3. Отсутствие стоп-лосса может привести к значительным потерям в экстремальных рыночных условиях
  4. Многочисленные показатели могут привести к задержке сигналов
  5. Риск скольжения в опционных контрактах с низкой ликвидностью

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

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

Резюме

Это хорошо структурированная, логически обоснованная многопоказательная стратегия торговли опционами, следующая за трендом. Она повышает надежность торговых сигналов посредством координации нескольких технических индикаторов и управляет рисками с использованием фиксированных уровней получения прибыли. Хотя стратегия имеет некоторые присущие риски, предложенные направления оптимизации могут еще больше улучшить ее стабильность и прибыльность. Визуализация дизайна стратегии также помогает трейдерам интуитивно понимать и выполнять торговые сигналы.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("OptionsMillionaire Strategy with Take Profit Only", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// Define custom magenta color
magenta = color.rgb(255, 0, 255)  // RGB for magenta

// Input settings for Moving Averages
ema8 = ta.ema(close, 8)
ema21 = ta.ema(close, 21)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)  // Fixed VWAP calculation

// Input settings for MACD and RSI
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
rsi = ta.rsi(close, 14)

// Define trend direction
isBullish = ema8 > ema21 and close > sma100 and close > sma200
isBearish = ema8 < ema21 and close < sma100 and close < sma200

// Buy (Call) Signal
callSignal = ta.crossover(ema8, ema21) and isBullish and macdLine > signalLine and rsi > 50

// Sell (Put) Signal
putSignal = ta.crossunder(ema8, ema21) and isBearish and macdLine < signalLine and rsi < 50

// Define Position Size and Take-Profit Level
positionSize = 1  // Position size set to 1 (each trade will use one contract)
takeProfitPercent = 5  // Take profit is 5%

// Variables to track entry price and whether the position is opened
var float entryPrice = na  // To store the entry price
var bool positionOpen = false  // To check if a position is open

// Backtesting Execution
if callSignal and not positionOpen
    // Enter long position (call)
    strategy.entry("Call", strategy.long, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

if putSignal and not positionOpen
    // Enter short position (put)
    strategy.entry("Put", strategy.short, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

// Only check for take profit after position is open
if positionOpen
    // Calculate take-profit level (5% above entry price for long, 5% below for short)
    takeProfitLevel = entryPrice * (1 + takeProfitPercent / 100)

    // Exit conditions (only take profit)
    if strategy.position_size > 0
        // Long position (call)
        if close >= takeProfitLevel
            strategy.exit("Take Profit", "Call", limit=takeProfitLevel)
    if strategy.position_size < 0
        // Short position (put)
        if close <= takeProfitLevel
            strategy.exit("Take Profit", "Put", limit=takeProfitLevel)

// Reset position when it is closed (this happens when an exit is triggered)
if strategy.position_size == 0
    positionOpen := false  // Reset positionOpen flag

// Plot EMAs
plot(ema8, color=magenta, linewidth=2, title="8 EMA")
plot(ema21, color=color.green, linewidth=2, title="21 EMA")

// Plot SMAs
plot(sma100, color=color.orange, linewidth=1, title="100 SMA")
plot(sma200, color=color.blue, linewidth=1, title="200 SMA")

// Plot VWAP
plot(vwap, color=color.white, style=plot.style_circles, title="VWAP")

// Highlight buy and sell zones
bgcolor(callSignal ? color.new(color.green, 90) : na, title="Call Signal Background")
bgcolor(putSignal ? color.new(color.red, 90) : na, title="Put Signal Background")

// Add buy and sell markers (buy below, sell above)
plotshape(series=callSignal, style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", title="Call Signal Marker")
plotshape(series=putSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", title="Put Signal Marker")


Связанные

Больше