Strategi Perdagangan Kombinasi Double SuperTend dan MACD


Tanggal Pembuatan: 2023-09-26 17:45:03 Akhirnya memodifikasi: 2023-09-26 17:45:03
menyalin: 0 Jumlah klik: 1606
1
fokus pada
1617
Pengikut

Ringkasan

Strategi perdagangan kombinasi ganda SuperTrend dan MACD menggabungkan dua indikator pemantauan tren (SuperTrend 1 dan SuperTrend 2) dengan satu indikator konvulsi dinamis (MACD) untuk memberikan metode perdagangan sistematis yang konsisten tanpa penilaian subjektif.

Keuntungan utama dari strategi ini adalah:

  • Verifikasi SuperTrend Ganda: Menggunakan dua indikator SuperTrend, dengan siklus dan faktor ATR yang berbeda, arah tren dapat dikonfirmasi, mekanisme verifikasi ganda mengurangi sinyal yang salah.

  • Pengesahan momentum: MACD Column Line berfungsi sebagai filter momentum, mengkonfirmasi masuk dan keluar, menambah tingkat verifikasi.

  • Masuk dan Keluar Objektif: Strategi menghasilkan sinyal beli dan jual berdasarkan arah tren dan kombinasi momentum, tanpa ruang interpretasi subjektif.

  • Manajemen perdagangan otomatis: Komisioner, slippage, dan setelan modal awal yang dibangun dalam strategi, eksekusi perdagangan otomatis.

  • Kustomisasi: Semua parameter dapat dengan mudah disesuaikan untuk memenuhi kebutuhan pedagang yang berbeda dan perubahan lingkungan pasar.

Prinsip

Strategi ini berjalan pada seperangkat aturan yang jelas, terutama berfokus pada arah tren yang dikonfirmasi oleh dua SuperTrend dan momentum yang ditunjukkan oleh garis MACD.

Aturan masuk

  • Masuk multihead: dua indikator SuperTrend multihead dan MACD pilar lebih besar dari 0。

  • Masuk kosong: dua indikator SuperTrend kosong dan MACD pilar kurang dari 0 .

Peraturan pertandingan

  • Binary: salah satu dari SuperTrend overhead atau MACD column line overhead.

  • Posisi kosong: salah satu SuperTrend yang berbalik atau MACD yang berbalik.

Manajemen transaksi

  • Strategi menggunakan rasio komisi tetap dan parameter titik geser.

  • Fungsi manajemen risiko otomatis built-in untuk menghindari over-crowding.

Arah transaksi

Strategi ini memungkinkan banyak perdagangan dua arah kosong. Pengguna dapat memilih arah perdagangan sesuai dengan pendapat pasar mereka sendiri (hanya banyak, hanya kosong atau kosong).

Panduan

  • Periode waktu yang paling cocok untuk tren yang jelas.

  • Pengguna dapat menyesuaikan siklus ATR, faktor dan parameter MACD SuperTrend sesuai kebutuhan.

Parameter default

  • SuperTrend 1 ATR siklus:10

  • SuperTrend 1 Faktor:3.0

  • SuperTrend 2 ATR siklus:20

  • SuperTrend 2 Faktor 5.0

  • Periode MACD: 12

  • Periode MACD: 26

  • Periode MACD: 9

  • Rasio komisi: 0,1%

  • Titik geser: 1

  • Perdagangan arah: dua arah

Parameter default menyediakan metode perdagangan yang seimbang, tetapi dapat disesuaikan sesuai dengan preferensi pribadi.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Verifikasi tren ganda mengurangi sinyal palsu

Menggunakan dua indikator SuperTrend untuk verifikasi tren, dapat mengurangi sinyal salah yang disebabkan oleh satu indikator.

  1. Filter dinamis MACD meningkatkan akurasi

Garis pilar MACD berfungsi sebagai kriteria penilaian tambahan, yang dapat memfilter beberapa sinyal perdagangan yang tidak diinginkan, meningkatkan akurasi entrada.

  1. Kemampuan untuk menarik diri

Kombinasi indikator tren ganda, yang dapat dihentikan dengan cepat saat perubahan tren, membantu mengendalikan mundur.

  1. Tingkat otomatisasi yang tinggi, tanpa penilaian subjektif

Aturan masuk dan keluar yang jelas, pengaturan manajemen perdagangan built-in, tanpa penilaian subjektif, mengurangi kesalahan manusia.

  1. Kustomisasi yang Kuat dan Adaptif

Parameter indikator dapat disesuaikan, dapat dioptimalkan untuk berbagai varietas dan preferensi perdagangan, dan digunakan secara luas.

Risiko dan optimasi

Strategi ini juga memiliki risiko sebagai berikut:

  1. Kesulitan konversi dinamis multi-udara

Kombinasi indikator tren ganda, konversi multi-ruang relatif sulit, tidak cocok untuk pasar yang sering bertukar arah.

  1. Kemampuan untuk menarik kembali kontrol terbatas

Dalam situasi tren yang kuat, harga stop loss mungkin tertinggal, menarik kembali risiko ekspansi.

  1. Tidak dapat menangani keadaan darurat

Tidak ada respon cepat terhadap Black Swan, dan ada risiko lebih besar untuk mundur.

Cara Mengoptimalkan:

  1. Optimalkan parameter indikator untuk berbagai varietas.

  2. Menambahkan mekanisme stop loss, seperti stop loss mobile, untuk mengontrol penarikan balik lebih lanjut.

  3. Ini dikombinasikan dengan indikator lain untuk mengidentifikasi insiden yang tidak terduga dan mengurangi penarikan diri.

Meringkaskan

Secara keseluruhan, strategi kombinasi ganda SuperTrend dan MACD menggabungkan keunggulan dari pelacakan tren dan analisis momentum, aturan yang jelas, tingkat otomatisasi yang tinggi, sinyal perdagangan yang berisik yang dapat disaring secara efektif, dan kepraktisan yang sangat kuat. Namun, perhatikan juga masalah pengendalian mundur dan pengoptimalan parameter. Secara keseluruhan, strategi ini adalah salah satu perwakilan terbaik dari perdagangan tren sistemik.

Kode Sumber Strategi
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

//@version=5
// Define the strategy settings
// strategy("Dual-Supertrend with MACD - Strategy [presentTrading]", overlay=true, precision=3, default_qty_type=strategy.cash, 
//  commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
//   currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Trading Direction Dropdown
tradeDirection = input.string("both", "Trading Direction", options=["long", "short", "both"])

// MACD Inputs
fast_length = input(12, "Fast Length")
slow_length = input(26, "Slow Length")
signal_length = input(9, "Signal Smoothing")
sma_source = input.string("EMA", "Oscillator MA Type", options=["SMA", "EMA"])
sma_signal = input.string("EMA", "Signal Line MA Type", options=["SMA", "EMA"])


// MACD Calculation
fast_ma = sma_source == "SMA" ? ta.sma(close, fast_length) : ta.ema(close, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(close, slow_length) : ta.ema(close, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Input Parameters for Supertrend 1
atrPeriod1 = input(10, "ATR Length for Supertrend 1")
factor1 = input.float(3.0, "Factor for Supertrend 1", step=0.01)

// Supertrend Calculation for 1
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)

// Input Parameters for Supertrend 2
atrPeriod2 = input(20, "ATR Length for Supertrend 2")
factor2 = input.float(5.0, "Factor for Supertrend 2", step=0.01)

// Supertrend Calculation for 2
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)

// Combined Conditions
isBullish = direction1 < 0 and direction2 < 0 and hist > 0
isBearish = direction1 > 0 and direction2 > 0 and hist < 0
exitLong = direction1 > 0 or direction2 > 0 or hist < 0
exitShort = direction1 < 0 or direction2 < 0 or hist > 0

// Strategy Entry and Exit based on Trading Direction
if (tradeDirection == "both" or tradeDirection == "long")
    strategy.entry("Buy", strategy.long, when=isBullish)
    strategy.close("Buy", when=exitLong)

if (tradeDirection == "both" or tradeDirection == "short")
    strategy.entry("Sell", strategy.short, when=isBearish)
    strategy.close("Sell", when=exitShort)

bodyMiddle1 = plot((open + close) / 2, display=display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend1 = plot(direction1 < 0? na : supertrend1, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle1, upTrend1, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle1, downTrend1, color.new(color.red, 90), fillgaps=false)

bodyMiddle2 = plot((open + close) / 2, display=display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend2 = plot(direction2 < 0? na : supertrend2, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle2, upTrend2, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle2, downTrend2, color.new(color.red, 90), fillgaps=false)