Strategi ini menggunakan salib emas dan salib kematian garis EMA berganda untuk menentukan masa masuk dan keluar. Khususnya, apabila garis EMA pantas melintasi di atas garis EMA perlahan dari bawah, isyarat salib emas dihasilkan untuk masuk panjang. Apabila garis EMA pantas melintasi di bawah garis EMA perlahan dari atas, isyarat salib kematian dihasilkan untuk masuk pendek. Strategi ini mudah dan mudah dilaksanakan, dan merupakan strategi perdagangan yang sangat biasa.
Kod teras strategi ini adalah seperti 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 mula-mula menetapkan dua garis EMA, dengan tempoh EMA pantas sebagai 25 dan tempoh EMA perlahan sebagai 75. Ia kemudian mengira nilai kedua-dua garis EMA. Apabila EMA pantas melintasi di atas EMA perlahan, longCondition menjadi benar. Apabila EMA pantas melintasi di bawah EMA perlahan, shortCondition menjadi benar. Apabila keadaan yang sepadan benar, ia menjadi panjang atau pendek.
Strategi ini menggunakan ciri pelusukan EMA untuk menapis bunyi bising pasaran, sambil dapat menangkap perubahan trend dengan cepat.
Kelebihan strategi ini termasuk:
Logiknya mudah dan intuitif, mudah difahami dan dilaksanakan.
EMA menyelaraskan turun naik pasaran dan menapis isyarat palsu dengan berkesan.
Salib emas dan salib kematian adalah isyarat perdagangan yang kuat untuk mengawal risiko.
Tempoh EMA yang fleksibel sesuai dengan persekitaran pasaran yang berbeza.
Mudah digabungkan dengan penunjuk teknikal lain.
Parameter EMA boleh dioptimumkan untuk hasil yang lebih baik.
Risiko strategi ini termasuk:
Isyarat tidak berkesan yang kerap di pasaran yang terhad pada julat kerana EMA sering melintasi.
Kelemahan EMA mungkin kehilangan peluang jangka pendek.
EMA crossover sahaja tidak dapat mengenal pasti pembalikan trend, mengehadkan potensi keuntungan.
Tempoh EMA tetap tidak dapat disesuaikan dengan perubahan pasaran.
Menghendaki modal yang besar, jika tidak meningkatkan risiko.
Memerlukan stop loss yang ketat, jika tidak, kerugian tunggal boleh menjadi besar.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Mengoptimumkan tempoh EMA untuk keadaan pasaran yang berbeza.
Tambah penapis lain seperti MACD, Bollinger Bands untuk meningkatkan kualiti isyarat.
Tambah indikator penilaian trend seperti ATR, ADX untuk mengurangkan perdagangan yang tidak berkesan.
Menggabungkan analisis pelbagai jangka masa untuk menentukan arah trend.
Gunakan pembelajaran mesin untuk mengoptimumkan tempoh EMA secara dinamik.
Mengoptimumkan saiz kedudukan untuk mengawal risiko.
Mengoptimumkan strategi stop loss untuk mengehadkan kerugian tunggal.
Strategi ini menggunakan dua EMA golden cross dan death cross sebagai isyarat perdagangan, membentuk strategi trend berikut klasik. Ia mudah dan mudah dilaksanakan, dan boleh digabungkan dengan penunjuk lain, sesuai dengan pelabur dengan keperluan yang agak rendah pada penilaian trend. Tetapi ia juga mempunyai had keuntungan dan risiko, yang memerlukan pengoptimuman yang betul untuk persekitaran pasaran yang berbeza. Secara keseluruhan, ia menyediakan asas yang sangat baik untuk pembangunan strategi dan penyelidikan 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)