Strategi ini menggunakan salib emas dan salib kematian dari garis EMA ganda untuk menentukan waktu masuk dan keluar. Secara khusus, ketika garis EMA cepat melintasi di atas garis EMA lambat dari bawah, sinyal salib emas dihasilkan untuk masuk panjang. Ketika garis EMA cepat melintasi di bawah garis EMA lambat dari atas, sinyal salib kematian dihasilkan untuk masuk pendek. Strategi ini sederhana dan mudah diterapkan, dan merupakan strategi perdagangan yang sangat umum.
Kode inti dari strategi ini adalah sebagai berikut:
fast = input(25, title="Fast")
slow = input(75, title="Slow")
matype1=ema(source, fast)
matype2=ema(source, slow)
longCondition = crossover(matype1, matype2)
shortCondition = crossunder(matype1, matype2)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
Strategi ini pertama-tama menetapkan dua garis EMA, dengan periode EMA cepat sebagai 25 dan periode EMA lambat sebagai 75. Kemudian menghitung nilai dari dua garis EMA. Ketika EMA cepat melintasi di atas EMA lambat, longCondition menjadi benar. Ketika EMA cepat melintasi di bawah EMA lambat, shortCondition menjadi benar. Setelah kondisi yang sesuai benar, itu menjadi panjang atau pendek.
Strategi ini memanfaatkan fitur smoothing dari EMA untuk menyaring kebisingan pasar, sambil dapat dengan cepat menangkap perubahan tren.
Keuntungan dari strategi ini meliputi:
Logikanya sederhana dan intuitif, mudah dimengerti dan diterapkan.
EMA meringankan fluktuasi pasar dan menyaring sinyal palsu secara efektif.
Salib emas dan salib kematian adalah sinyal perdagangan yang kuat untuk mengendalikan risiko.
Periode EMA yang fleksibel sesuai dengan lingkungan pasar yang berbeda.
Mudah dikombinasikan dengan indikator teknis lainnya.
Parameter EMA dapat dioptimalkan untuk hasil yang lebih baik.
Risiko dari strategi ini meliputi:
Sinyal yang sering tidak efektif di pasar yang terikat rentang karena EMA sering melintasi.
Kelewatan EMA dapat kehilangan peluang jangka pendek.
Crossover EMA saja tidak dapat mengidentifikasi pembalikan tren, membatasi potensi keuntungan.
Periode EMA tetap tidak dapat beradaptasi dengan perubahan pasar.
Membutuhkan modal yang signifikan, jika tidak memperbesar risiko.
Membutuhkan stop loss yang ketat, jika tidak kerugian tunggal bisa sangat besar.
Strategi dapat dioptimalkan dalam aspek berikut:
Mengoptimalkan periode EMA untuk kondisi pasar yang berbeda.
Tambahkan filter lain seperti MACD, Bollinger Bands untuk meningkatkan kualitas sinyal.
Tambahkan indikator penilaian tren seperti ATR, ADX untuk mengurangi perdagangan yang tidak efektif.
Menggabungkan analisis multi-frame waktu untuk menentukan arah tren.
Gunakan pembelajaran mesin untuk secara dinamis mengoptimalkan periode EMA.
Mengoptimalkan ukuran posisi untuk mengendalikan risiko.
Mengoptimalkan strategi stop loss untuk membatasi kerugian tunggal.
Strategi ini menggunakan dua EMA golden cross dan death cross sebagai sinyal perdagangan, membentuk strategi trend berikut klasik. Ini sederhana dan mudah diterapkan, dan dapat dikombinasikan dengan indikator lain, yang sesuai dengan investor dengan persyaratan yang relatif rendah pada penilaian tren. Tapi juga memiliki batas keuntungan dan risiko, yang membutuhkan optimasi yang tepat untuk lingkungan pasar yang berbeda. Secara keseluruhan, ini memberikan dasar yang sangat baik untuk pengembangan strategi dan penelitian mendalam.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 1h 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/ // Double EMA CROSS By © EmreE (Emre Ertürk) Also thx for KivancOzbilgic color based bars //@version=4 strategy(title="Double EMA CROSS", shorttitle="DEC", overlay=true) matype = input("ema") hidema = input(false) sourcetype = input(close, title="Source Type") source=close // STEP 1: // Configure backtest start date with inputs startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=231) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2020, minval=1800, maxval=2100) // STEP 2: // See if this bar's time happened on/after start date afterStartDate = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) fast = input(25, title="Fast") slow = input(75, title="Slow") matype1=ema(source, fast) matype2=ema(source, slow) signalcolor = source > matype2 ? color.blue : color.red signal = cross(fast, slow) hizliema=plot(hidema ? na : matype1, color=color.green, linewidth=2,transp=0, title="Fast EMA") yavasema=plot(hidema ? na : matype2, color=color.red, linewidth=2,transp=0, title="Slow EMA") //kesisme=plot(signal, style=cross, color=signalcolor, linewidth=5, title="Kesişme") longCondition = crossover(matype1, matype2) if (afterStartDate and longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(matype1, matype2) if (afterStartDate and shortCondition) strategy.entry("Short", strategy.short) //-------------------------------------------------------- //volume based color bars length=input(21, "length", minval=1) avrg=sma(volume,length) vold1 = volume > avrg*1.5 and close<open vold2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close<open vold3 = volume < avrg *0.5 and close<open volu1 = volume > avrg*1.5 and close>open volu2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close>open volu3 = volume< avrg*0.5 and close>open cold1=#800000 cold2=#FF0000 cold3=color.orange colu1=#006400 colu2=color.lime colu3=#7FFFD4 ac = vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : volu1 ? colu1 : volu2 ? colu2 : volu3 ? colu3 : na barcolor(ac)