Strategi Breakout Golden Cross EMA Cepat dan Lambat


Tanggal Pembuatan: 2023-12-01 18:02:24 Akhirnya memodifikasi: 2023-12-01 18:02:24
menyalin: 0 Jumlah klik: 751
1
fokus pada
1619
Pengikut

Strategi Breakout Golden Cross EMA Cepat dan Lambat

Ringkasan

EMA Gold Cross Breakout Strategi EMA Gold Cross Breakout Strategi EMA Gold Cross Breakout Strategi EMA Gold Cross Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi EMA Gold Breakout Strategi

Prinsip Strategi

Strategi ini terutama mengandalkan perbandingan rata-rata EMA 5 siklus, 8 siklus dan 13 siklus untuk menghasilkan sinyal perdagangan.

  1. Hitung 5 siklus EMA, 8 siklus EMA dan 13 siklus EMA.
  2. Ketika 5 siklus EMA melewati 8 siklus EMA dan 13 siklus EMA, menghasilkan sinyal beli.
  3. Ketika 5 siklus EMA melewati 8 siklus dan 13 siklus EMA, menghasilkan sinyal jual.
  4. Selain itu, indikator ADX yang digunakan untuk menilai intensitas tren, hanya menghasilkan sinyal jika tren cukup kuat.

Dengan cara ini, efek dari melacak tren garis panjang tengah tercapai. Ketika garis rata-rata jangka pendek melintasi garis rata-rata jangka panjang, berarti tren jangka pendek berubah menjadi multi-kepala, dan dapat dibeli. Ketika garis rata-rata jangka pendek melintasi garis rata-rata jangka panjang, berarti tren jangka pendek berubah menjadi kosong, dan harus dijual.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan utama:

  1. Operasinya sederhana dan mudah untuk diterapkan.
  2. Menggunakan EMA secara efektif untuk melacak tren.
  3. Mengimplementasikan portfolio EMA multi-kelompok untuk menghindari sinyal palsu.
  4. Dengan kombinasi indikator ADX, sinyal menjadi lebih dapat diandalkan.
  5. Penarikan dan penurunan maksimum tidak terlalu tinggi.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Stop loss mungkin lebih besar ketika tren berbalik secara dramatis.
  2. Frekuensi transaksi lebih tinggi, mudah meningkatkan biaya transaksi. Anda dapat menyesuaikan parameter EMA dengan tepat, mengurangi frekuensi transaksi.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Optimalkan parameter EMA untuk menemukan kombinasi parameter optimal.
  2. Menambahkan filter indikator lain, seperti KDJ, BOLL dan lain-lain, untuk meningkatkan kualitas sinyal.
  3. Adaptasi manajemen posisi, pengendalian risiko yang optimal.
  4. Menggunakan metode pembelajaran mesin untuk menemukan aturan masuk dan keluar yang lebih baik.

Meringkaskan

Secara keseluruhan, strategi EMA Gold Cross Breakthrough berjalan lancar, sinyalnya lebih handal, retracementnya rendah, dan cocok untuk melacak tren garis panjang menengah. Dengan optimasi parameter dan penyempurnaan aturan, dapat diperoleh efek strategi yang lebih baik.

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

//@version=4
// 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
// @It is modified by ttsaadet.
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
// 

//
strategy(title="EMA Crossover Strategy by TTS", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000)

// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")

// === LOGIC ===
short_period = input(type=input.integer,defval=5,minval=1,title="Length")
mid_period = input(type=input.integer,defval=8,minval=1,title="Length")
long_period = input(type=input.integer,defval=13,minval=1,title="Length")
rsi_period = input(type=input.integer,defval=14,minval=1,title="Length")
longOnly = input(type=input.bool,defval=false,title="Long Only")
shortEma = ema(close,short_period)
midEma = ema(close,mid_period)
longEma = ema(close,long_period)

rsi = rsi(close, rsi_period)

[diplus, diminus, adx] = dmi(short_period, short_period)
plot(shortEma,linewidth=2,color=color.red,title="Fast")
plot(midEma,linewidth=2,color=color.orange,title="Fast")
plot(longEma,linewidth=2,color=color.blue,title="Slow")

longEntry = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25)
shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma))

plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    longEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
    crossunder(shortEma,longEma) or crossunder(close, longEma)

strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())


// === STRATEGY - SHORT POSITION EXECUTION ===

enterShort() =>
    not longOnly and shortEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
    crossover(shortEma,longEma)

strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())