Arah Aliran Berbilang Penunjuk Mengikuti Dagangan Pilihan EMA Crossover Strategy

EMA SMA VWAP MACD RSI TP
Tarikh penciptaan: 2024-12-20 14:49:04 Akhirnya diubah suai: 2024-12-20 14:49:04
Salin: 2 Bilangan klik: 432
1
fokus pada
1617
Pengikut

Arah Aliran Berbilang Penunjuk Mengikuti Dagangan Pilihan EMA Crossover Strategy

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan opsyen yang mengesan trend berdasarkan gabungan pelbagai petunjuk teknikal. Strategi ini menggunakan EMA crossover sebagai isyarat utama, digabungkan dengan SMA, VWAP untuk mengesahkan arah trend, dan menggunakan MACD dan RSI sebagai penapis isyarat tambahan. Strategi ini menggunakan pengurusan risiko titik berhenti tetap untuk meningkatkan kadar kejayaan perdagangan melalui syarat masuk dan pengurusan kedudukan yang ketat.

Prinsip Strategi

Strategi menggunakan persilangan 8 kitaran dan 21 kitaran EMA sebagai isyarat dagangan utama, apabila EMA jangka pendek melintasi EMA jangka panjang dan memenuhi syarat-syarat berikut, ia akan mencetuskan beberapa isyarat: harga berada di atas 100 dan 200 kitaran SMA, MACD di atas garis isyarat, RSI lebih besar daripada 50. Syarat mencetuskan isyarat penyingkiran adalah sebaliknya. Strategi memperkenalkan VWAP sebagai rujukan berat harga untuk membantu menentukan kedudukan harga semasa.

Kelebihan Strategik

  1. Kerjasama berbilang indikator, meningkatkan kebolehpercayaan isyarat melalui pengesahan silang pelbagai kitaran dan jenis indikator
  2. Menggunakan gabungan trend-tracking dan momentum indicator untuk menangkap trend dan memberi perhatian kepada momentum jangka pendek
  3. Titik tolak tetap membantu melindungi keuntungan dan mengelakkan keserakahan yang berlebihan
  4. Pengurusan pegangan yang ketat, mengelakkan pembukaan semula dan mengurangkan pendedahan risiko
  5. Kesan visual yang jelas, termasuk pergerakan EMA, SMA, VWAP dan penanda isyarat

Risiko Strategik

  1. Isyarat palsu yang kerap mungkin berlaku dalam pasaran yang tidak menentu
  2. Penetapan titik berhenti tetap boleh menyebabkan kehilangan peluang keuntungan yang lebih besar
  3. Tidak ada setup stop loss yang boleh menyebabkan kerugian yang lebih besar dalam keadaan yang melampau
  4. Penggunaan pelbagai indikator boleh menyebabkan kelewatan isyarat
  5. Risiko slippage mungkin berlaku dalam kontrak opsyen yang kurang cair

Arah pengoptimuman strategi

  1. Memperkenalkan mekanisme stop-loss yang menyesuaikan diri, menyesuaikan diri dengan dinamik turun naik pasaran
  2. Tambah modul pengurusan jumlah dagangan, menyesuaikan kedudukan secara dinamik mengikut saiz akaun dan keadaan pasaran
  3. Menambah penapis kadar turun naik pasaran untuk menyesuaikan parameter strategi dalam persekitaran yang tinggi
  4. Optimumkan parameter penunjuk, pertimbangkan untuk menggunakan kitaran penyesuaian dan bukannya kitaran tetap
  5. Menambah penapis masa untuk mengelakkan dagangan pada masa-masa yang bergelombang seperti pembukaan dan penutupan pasaran

ringkaskan

Ini adalah strategi perdagangan pilihan binari yang berstruktur, logik dan jelas. Strategi ini meningkatkan kebolehpercayaan isyarat perdagangan dengan menggabungkan beberapa petunjuk teknikal dan menggunakan titik berhenti tetap untuk menguruskan risiko. Walaupun terdapat beberapa risiko yang wujud dalam strategi, strategi ini dapat meningkatkan kestabilan dan keuntungan dengan arah pengoptimuman yang dikemukakan.

Kod 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")