Sumber dimuat naik... memuat...

Trend Multi-Indikator Berikutan Pilihan Perdagangan EMA Cross Strategy

Penulis:ChaoZhang, Tarikh: 2024-12-20 14:49:04
Tag:EMASMAVWAPMACDRSITP

img

Ringkasan

Strategi ini adalah sistem perdagangan opsyen trend-mengikut yang menggabungkan pelbagai penunjuk teknikal. Ia menggunakan silang EMA sebagai isyarat teras, bersama dengan SMA dan VWAP untuk pengesahan trend, sementara menggunakan MACD dan RSI sebagai penunjuk tambahan untuk penapisan isyarat. Strategi ini menggunakan tahap mengambil keuntungan tetap untuk pengurusan risiko dan meningkatkan kejayaan perdagangan melalui syarat kemasukan yang ketat dan pengurusan kedudukan.

Prinsip Strategi

Strategi ini menggunakan persilangan EMA 8-period dan 21-period sebagai isyarat perdagangan utama. Isyarat panjang (Call) diaktifkan apabila EMA jangka pendek melintasi di atas EMA jangka panjang dan memenuhi syarat berikut: harga di atas kedua-dua SMA 100 dan 200-period, garis MACD di atas garis isyarat, dan RSI di atas 50. Isyarat pendek (Put) diaktifkan di bawah keadaan bertentangan. VWAP dimasukkan sebagai rujukan berwajaran harga untuk membantu menilai kedudukan harga relatif. Setiap perdagangan menggunakan saiz kedudukan tetap 1 kontrak dengan tahap keuntungan 5%.

Kelebihan Strategi

  1. Pelbagai penunjuk berfungsi secara sinergi, menandakan tanda silang melalui tempoh dan jenis penunjuk yang berbeza
  2. Menggabungkan trend-mengikut dan petunjuk momentum untuk menangkap kedua-dua trend dan momentum jangka pendek
  3. Kadar keuntungan tetap membantu melindungi keuntungan dan mencegah tamak yang berlebihan
  4. Pengurusan kedudukan yang ketat menghalang kedudukan yang bertindih dan mengurangkan pendedahan risiko
  5. Visualisasi yang jelas termasuk EMA, SMA, trend VWAP dan penanda isyarat

Risiko Strategi

  1. Boleh menghasilkan isyarat palsu yang kerap di pasaran yang berbeza
  2. Tahap keuntungan tetap mungkin mengehadkan potensi keuntungan
  3. Ketidakhadiran stop-loss boleh membawa kepada kerugian yang ketara dalam keadaan pasaran yang melampau
  4. Beberapa penunjuk boleh menyebabkan isyarat tertunda
  5. Mungkin menghadapi risiko lipatan dalam kontrak opsyen dengan kecairan yang rendah

Arahan Pengoptimuman Strategi

  1. Melaksanakan mekanisme mengambil keuntungan dan menghentikan kerugian adaptif berdasarkan turun naik pasaran
  2. Tambah modul saiz kedudukan untuk menyesuaikan secara dinamik berdasarkan saiz akaun dan keadaan pasaran
  3. Sertakan penapis turun naik untuk menyesuaikan parameter strategi dalam persekitaran turun naik yang tinggi
  4. Mengoptimumkan parameter penunjuk, mempertimbangkan tempoh penyesuaian dan bukannya tempoh tetap
  5. Tambah penapis masa untuk mengelakkan perdagangan semasa tempoh pembukaan dan penutupan pasaran yang sangat tidak menentu

Ringkasan

Ini adalah strategi perdagangan pilihan yang berstruktur baik dan logik yang baik. Ia meningkatkan kebolehpercayaan isyarat dagangan melalui penyelarasan pelbagai petunjuk teknikal dan menguruskan risiko menggunakan tahap mengambil keuntungan tetap. Walaupun strategi ini mempunyai beberapa risiko yang melekat, arah pengoptimuman yang dicadangkan dapat meningkatkan kestabilan dan keuntungan. Reka bentuk visualisasi strategi ini juga membantu peniaga memahami dan melaksanakan isyarat dagangan secara intuitif.


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


Berkaitan

Lebih lanjut