Double SuperTend dan Strategi Perdagangan Gabungan MACD


Tarikh penciptaan: 2023-09-26 17:45:03 Akhirnya diubah suai: 2023-09-26 17:45:03
Salin: 0 Bilangan klik: 1606
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi perdagangan gabungan SuperTrend dan MACD menggabungkan dua indikator trend-mengikuti ((SuperTrend 1 dan SuperTrend 2) dengan satu indikator goyah dinamik ((MACD)) yang bertujuan untuk menyediakan kaedah perdagangan sistematik yang konsisten tanpa perlu membuat penilaian subjektif.

Kelebihan utama strategi ini:

  • Pengesahan SuperTrend Ganda: Menggunakan dua penunjuk SuperTrend, kitaran dan faktor ATR yang berbeza, arah trend boleh disahkan, mekanisme pengesahan ganda dapat mengurangkan isyarat yang salah.

  • Pengesahan kuasa: MACD Column Line berfungsi sebagai penapis kuasa, mengesahkan masuk dan keluar, menambah tingkatan pengesahan.

  • Masuk dan keluar objektif: Strategi menghasilkan isyarat beli dan jual berdasarkan arah trend dan kombinasi momentum, tanpa ruang untuk tafsiran subjektif.

  • Pengurusan perdagangan automatik: Komisen terbina dalam strategi, seting titik dan modal awal, pelaksanaan perdagangan automatik.

  • Kebolehsuaian: Semua parameter mudah disesuaikan untuk memenuhi keperluan pedagang yang berbeza dan keadaan pasaran yang berubah-ubah.

Prinsip

Strategi ini berjalan pada satu set peraturan yang jelas, dengan tumpuan kepada arah trend yang disahkan oleh dua SuperTrend dan momentum yang ditunjukkan oleh garis-garis MACD.

Peraturan kemasukan

  • Multicore entry: dua indikator SuperTrend adalah multirole dan MACD column lebih besar daripada 0

  • Kemasukan kosong: dua petunjuk SuperTrend kosong dan garis MACD kurang dari 0 .

Peraturan permainan

  • Binari: mana-mana SuperTrend overhead atau MACD garis tiang overhead.

  • Posisi kosong: mana-mana SuperTrend berbalik ke arah yang lebih tinggi atau MACD berbalik ke arah yang lebih baik.

Pengurusan urus niaga

  • Strategi menggunakan nisbah komisen tetap dan parameter titik pergeseran.

  • Fungsi pengurusan risiko automatik terbina dalam untuk mengelakkan penembusan berlebihan.

Arah perdagangan

Strategi ini membolehkan banyak perdagangan dua hala kosong. Pengguna boleh memilih arah perdagangan berdasarkan pandangan pasaran mereka sendiri (hanya lebih, hanya kosong atau kosong).

Panduan penggunaan

  • Tempoh masa yang paling sesuai untuk trend yang jelas.

  • Pengguna boleh menyesuaikan kitaran ATR, faktor dan parameter MACD SuperTrend mengikut keperluan.

Parameter lalai

  • SuperTrend 1 ATR kitaran:10

  • SuperTrend 1 faktor:3.0

  • Tempoh ATR SuperTrend 2:20

  • SuperTrend 2 faktor:5.0

  • MACD jangka pendek: 12

  • Tempoh MACD: 26

  • Tempoh MACD: 9

  • Peratusan komisen: 0.1%

  • Titik geser: 1

  • Arah perdagangan: dua hala

Parameter lalai menyediakan kaedah perdagangan yang seimbang, tetapi boleh disesuaikan mengikut keutamaan peribadi.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Pengesahan trend berganda mengurangkan isyarat palsu

Menggunakan dua petunjuk SuperTrend untuk mengesahkan trend dapat mengurangkan isyarat salah yang disebabkan oleh satu petunjuk.

  1. Penapis dinamik MACD meningkatkan ketepatan

Garis tiang MACD berfungsi sebagai kriteria penilaian tambahan, yang boleh menyaring beberapa isyarat perdagangan yang tidak sesuai, meningkatkan ketepatan entrada.

  1. Kemampuan untuk menarik balik kawalan

Kombinasi indikator trend ganda, yang boleh berhenti dengan cepat apabila trend berubah, membantu mengawal pengunduran.

  1. Tingkat automasi yang tinggi, tiada penilaian subjektif

Peraturan masuk dan keluar yang jelas, pengaturan pengurusan perdagangan terbina dalam, tanpa penilaian subjektif, mengurangkan kesalahan manusia.

  1. Mudah disesuaikan, mudah disesuaikan

Parameter penunjuk boleh disesuaikan, boleh dioptimumkan untuk pelbagai jenis dan keutamaan perdagangan, dan digunakan secara meluas.

Risiko dan pengoptimuman

Strategi ini juga mempunyai risiko:

  1. Kesulitan penukaran dinamik

Kombinasi indikator trend ganda, penukaran ruang yang agak sukar, tidak sesuai untuk pasaran yang sering bertukar arah.

  1. Keupayaan untuk menarik balik kawalan terhad

Dalam keadaan trend yang kuat, harga stop loss mungkin tertinggal dan risiko perluasan akan ditarik balik.

  1. Tidak dapat menangani keadaan kecemasan

Tidak dapat bertindak balas dengan cepat terhadap peristiwa Black Swan, dan ada risiko yang lebih besar untuk menarik balik.

Arah untuk dioptimumkan:

  1. Optimumkan parameter penunjuk untuk menyesuaikan dengan pelbagai jenis.

  2. Menambah mekanisme penangguhan kerugian, seperti penangguhan bergerak, untuk mengawal lebih jauh penarikan balik.

  3. Berkongsi dengan petunjuk lain untuk mengenal pasti kejadian yang tidak dijangka dan mengurangkan penarikan diri.

ringkaskan

Secara keseluruhannya, strategi gabungan SuperTrend dan MACD menggabungkan kelebihan pengesanan trend dan analisis momentum, peraturan jelas, tahap automasi yang tinggi, dapat menyaring isyarat perdagangan bising dengan berkesan, dan mempunyai kegunaan yang sangat kuat. Tetapi juga berhati-hati dengan masalah kawalan penarikan balik dan pengoptimuman parameter. Secara keseluruhannya, strategi ini adalah salah satu wakil yang baik untuk perdagangan tren sistemik.

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