Strategi Konvergensi Batas Intraday Rasio MACD dan R:R

MACD
Tanggal Pembuatan: 2024-06-03 16:47:56 Akhirnya memodifikasi: 2024-06-03 16:47:56
menyalin: 3 Jumlah klik: 611
1
fokus pada
1617
Pengikut

Strategi Konvergensi Batas Intraday Rasio MACD dan R:R

Ringkasan

Strategi ini didasarkan pada indikator MACD convergence dan dispersion untuk menilai sinyal perdagangan. Ketika MACD garis dan garis sinyal terjadi persilangan, dan MACD garis nilai lebih besar dari 1,5 atau kurang dari -1,5, menghasilkan sinyal plus dan minus masing-masing. Pada saat yang sama, strategi ini menetapkan titik stop loss yang tetap, dan memperkenalkan konsep rasio pengembalian risiko (R: R). Selain itu, strategi ini juga menggunakan batas kerugian maksimum dan keuntungan maksimum dalam sehari, dan langkah-langkah stop loss bergerak yang lebih ketat untuk mengendalikan risiko dengan lebih baik.

Prinsip Strategi

  1. Hitung garis MACD dan garis sinyal MACD.
  2. Menilai persimpangan antara jalur MACD dan jalur sinyal, dan pertimbangkan apakah nilai jalur MACD melebihi batas tertentu (,5 dan -1,5) ≠
  3. Ketika muncul sinyal melakukan lebih banyak, buka posisi melakukan lebih banyak, atur harga stop stop menjadi harga tertinggi saat ini + 600 unit perubahan minimum, harga stop loss menjadi harga minimum saat ini - 100 unit perubahan minimum.
  4. Ketika sinyal shorting muncul, buka posisi shorting, set harga stop-loss menjadi harga minimum saat ini - 600 unit perubahan minimum, harga stop-loss menjadi harga maksimum saat ini + 100 unit perubahan minimum.
  5. Memperkenalkan logika stop loss yang bergerak, ketika harga naik ((multihead) atau turun ((blank) lebih dari 300 satuan perubahan minimum relatif terhadap harga open, harga stop loss akan dipindahkan ke harga open + ((closing price-open price-300) ((multihead) atau harga open- ((open price-closing price-300) ((blank))
  6. Tetapkan batas kerugian maksimum dan keuntungan maksimum dalam satu hari, dan tutup semua posisi saat kerugian mencapai 600 unit perubahan minimum atau keuntungan mencapai 1800 unit perubahan minimum.

Analisis Keunggulan

  1. Kombinasi indikator MACD dengan kondisi penurunan harga, secara efektif memfilter beberapa sinyal noise.
  2. Rasio risiko-pengembalian tetap ((R:R), risiko-pengembalian per transaksi dapat dikontrol.
  3. Logika stop loss bergerak dapat melindungi keuntungan setelah tren terbentuk dan mengurangi mundur.
  4. Pembatasan kerugian dan keuntungan maksimum dalam satu hari membantu mengendalikan risiko dalam satu hari dan menghindari kerugian atau keuntungan yang berlebihan setelah penarikan.

Analisis risiko

  1. Indikator MACD memiliki keterlambatan, mungkin terjadi sinyal tertunda atau sinyal salah.
  2. Stop loss yang ditetapkan mungkin tidak dapat beradaptasi dengan kondisi pasar yang berbeda, dan dapat sering memicu stop loss dalam situasi yang bergejolak.
  3. Logika Stop Loss Mobile mungkin tidak dapat berhenti pada waktu yang tepat ketika tren berbalik, menyebabkan laba berbalik.
  4. Pembatasan kerugian dan keuntungan maksimum dalam satu hari dapat menyebabkan strategi untuk melonggarkan posisi terlalu dini dan kehilangan potensi keuntungan ketika tren dalam satu hari jelas.

Arah optimasi

  1. Pertimbangkan untuk menggunakan indikator MACD pada beberapa kerangka waktu untuk mengkonfirmasi sinyal dan meningkatkan akurasi sinyal.
  2. Adaptasi Stop Loss berdasarkan dinamika volatilitas pasar, untuk menyesuaikan dengan kondisi pasar yang berbeda.
  3. Mengoptimalkan logika stop loss bergerak, seperti pengaturan jarak stop loss bergerak berdasarkan indikator ATR, untuk lebih beradaptasi dengan fluktuasi harga.
  4. Optimalkan parameter untuk batas kerugian dan keuntungan maksimum dalam sehari, temukan batas yang sesuai, dan cobalah untuk menangkap tren sambil mengendalikan risiko.

Meringkaskan

Strategi ini menilai sinyal perdagangan melalui konvergensi dan dispersi indikator MACD, dan memperkenalkan langkah-langkah pengendalian risiko seperti rasio pengembalian risiko, stop loss bergerak, dan batas harian. Meskipun strategi ini dapat menangkap tren dan mengendalikan risiko, masih ada ruang untuk beberapa optimasi dan perbaikan. Di masa depan, dapat dipertimbangkan untuk mengoptimalkan dari dimensi seperti konfirmasi sinyal, stop loss, stop loss bergerak, dan batas harian, untuk mendapatkan keuntungan yang lebih kuat dan terlihat.

Kode Sumber Strategi
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DD173838

//@version=5
strategy("MACD Convergence Strategy with R:R, Daily Limits, and Tighter Stop Loss", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// MACD settings
fastLength = input.int(12, title="Fast Length", minval=1)
slowLength = input.int(26, title="Slow Length", minval=1)
signalSmoothing = input.int(9, title="Signal Smoothing", minval=1)
source = input(close, title="Source")

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(source, fastLength, slowLength, signalSmoothing)

// Plot MACD and signal line
plot(macdLine, title="MACD Line", color=color.blue)
plot(signalLine, title="Signal Line", color=color.red)

// Define convergence conditions
macdConvergenceUp = ta.crossover(macdLine, signalLine) and macdLine > 1.5
macdConvergenceDown = ta.crossunder(macdLine, signalLine) and macdLine < -1.5

// Define take profit and stop loss

        
    
takeProfit = 600
stopLoss = 100

// Plot buy and sell signals on the chart
plotshape(series=macdConvergenceDown, title="Short Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")
plotshape(series=macdConvergenceUp, title="Long Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")

// Execute short and long orders with defined take profit and stop loss
if (macdConvergenceDown)
    strategy.entry("Short", strategy.short, qty=1, stop=high + (stopLoss / syminfo.mintick), limit=low - (takeProfit / syminfo.mintick))

if (macdConvergenceUp)
    strategy.entry("Long", strategy.long, qty=1, stop=low - (stopLoss / syminfo.mintick), limit=high + (takeProfit / syminfo.mintick))

// Trailing stop logic
var float entryPrice = na
var float trailingStopPrice = na

if (strategy.position_size != 0)
    entryPrice := strategy.opentrades.entry_price(0)

if (strategy.position_size > 0)  // For long positions
    if (close - entryPrice > 300)
        trailingStopPrice := entryPrice + (close - entryPrice - 300)

if (strategy.position_size < 0)  // For short positions
    if (entryPrice - close > 300)
        trailingStopPrice := entryPrice - (entryPrice - close - 300)

if (strategy.position_size > 0 and not na(trailingStopPrice) and close < trailingStopPrice)
    strategy.close("Long", comment="Trailing Stop")

if (strategy.position_size < 0 and not na(trailingStopPrice) and close > trailingStopPrice)
    strategy.close("Short", comment="Trailing Stop")

// Daily drawdown and profit limits
var float startOfDayEquity = na
if (na(startOfDayEquity) or ta.change(time('D')) != 0)
    startOfDayEquity := strategy.equity

maxDailyLoss = 600
maxDailyProfit = 1800
currentDailyPL = strategy.equity - startOfDayEquity

if (currentDailyPL <= -maxDailyLoss)
    strategy.close_all(comment="Max Daily Loss Reached")

if (currentDailyPL >= maxDailyProfit)
    strategy.close_all(comment="Max Daily Profit Reached")