Strategi Crossover EMA Perdagangan Opsi Mengikuti Tren Multi-Indikator

EMA SMA VWAP MACD RSI TP
Tanggal Pembuatan: 2024-12-20 14:49:04 Akhirnya memodifikasi: 2024-12-20 14:49:04
menyalin: 2 Jumlah klik: 432
1
fokus pada
1617
Pengikut

Strategi Crossover EMA Perdagangan Opsi Mengikuti Tren Multi-Indikator

Ringkasan

Strategi ini adalah strategi perdagangan opsi yang melacak tren berdasarkan kombinasi beberapa indikator teknis. Strategi ini terutama menggunakan EMA crossover sebagai sinyal inti, yang digabungkan dengan SMA, VWAP untuk mengkonfirmasi arah tren, dan menggunakan MACD dan RSI sebagai indikator tambahan untuk memfilter sinyal. Strategi ini menggunakan manajemen risiko stop loss tetap untuk meningkatkan tingkat keberhasilan perdagangan melalui persyaratan masuk dan manajemen posisi yang ketat.

Prinsip Strategi

Strategi ini menggunakan persilangan 8 siklus dan 21 siklus EMA sebagai sinyal perdagangan utama, dan memicu beberapa sinyal ketika EMA jangka pendek melewati EMA jangka panjang dan memenuhi kondisi berikut: harga berada di atas 100 dan 200 siklus SMA, MACD di atas garis sinyal, RSI lebih besar dari 50. Syarat pemicu sinyal shorting sebaliknya. Strategi ini memperkenalkan VWAP sebagai referensi berat harga untuk membantu menentukan posisi relatif harga saat ini.

Keunggulan Strategis

  1. Koordinasi multi-indikator, meningkatkan keandalan sinyal melalui verifikasi silang berbagai siklus dan jenis indikator
  2. Menggunakan kombinasi dari trend tracking dan momentum indicator untuk menangkap tren dan memperhatikan momentum jangka pendek
  3. Fixed Stop Loss Points Membantu Menjaga Keuntungan dan Mencegah Keserakahan
  4. Manajemen kepemilikan yang ketat, menghindari pembukaan posisi berulang, mengurangi risiko eksposur
  5. Efek visual yang jelas, termasuk pergerakan EMA, SMA, VWAP dan tanda sinyal

Risiko Strategis

  1. Sinyal palsu sering terjadi di pasar yang bergejolak
  2. Stop loss tetap dapat menyebabkan kehilangan peluang keuntungan yang lebih besar
  3. Tidak ada setelan stop loss yang dapat menanggung kerugian lebih besar dalam situasi ekstrem
  4. Penggunaan beberapa indikator dapat menyebabkan keterlambatan sinyal
  5. Pada kontrak opsi yang kurang likuid, risiko slippage mungkin terjadi

Arah optimasi strategi

  1. Memperkenalkan mekanisme stop loss yang dapat disesuaikan dengan dinamika volatilitas pasar
  2. Menambahkan modul manajemen volume transaksi, menyesuaikan posisi secara dinamis sesuai dengan ukuran akun dan kondisi pasar
  3. Tambahkan filter volatilitas pasar untuk menyesuaikan parameter strategi dalam lingkungan volatilitas tinggi
  4. Optimalkan parameter indikator, pertimbangkan untuk menggunakan siklus adaptif dan bukan siklus tetap
  5. Menambahkan filter waktu untuk menghindari perdagangan pada saat-saat bergejolak seperti saat pasar terbuka dan ditutup

Meringkaskan

Ini adalah strategi perdagangan opsi multi-indikator yang terstruktur, logis, dan jelas. Strategi ini meningkatkan keandalan sinyal perdagangan dengan sinkronisasi beberapa indikator teknis, dan menggunakan titik tolak tetap untuk mengelola risiko. Meskipun ada beberapa risiko yang melekat pada strategi, strategi ini dapat ditingkatkan lebih lanjut dengan stabilitas dan profitabilitas melalui arah pengoptimalan yang diusulkan.

Kode Sumber Strategi
/*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")