Strategi ini menghasilkan sinyal perdagangan dengan menggunakan rata-rata bergerak ganda. Ini mengirim sinyal beli ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, dan sinyal jual ketika sebaliknya terjadi. Strategi ini menggabungkan kemampuan mengikuti tren rata-rata bergerak untuk secara efektif menangkap tren harga dan menerapkan perdagangan tren.
Strategi ini memanfaatkan dua rata-rata bergerak eksponensial (EMA) dengan periode yang berbeda. EMA1 adalah MA jangka pendek dengan periode yang ditetapkan menjadi 9, sementara EMA2 adalah MA jangka panjang dengan periode yang ditetapkan menjadi 21. Strategi ini menghasilkan sinyal beli ketika EMA1 melintasi di atas EMA2, dan sinyal jual ketika melintasi di bawahnya.
Dengan demikian, strategi ini memanfaatkan kemampuan pelacakan tren dari moving average untuk menangkap sinyal ketika harga memulai arah tren baru. Misalnya, ketika harga bangkit dari penurunan, MA jangka pendek akan naik lebih awal daripada MA jangka panjang. Perpindahan di atas menghasilkan sinyal awal bahwa tren naik dimulai.
Kekuatan terbesar dari strategi ini terletak pada kemampuannya untuk secara efektif mengidentifikasi tren harga, terutama cocok untuk pasar dengan tren tren yang kuat. moving average sendiri memiliki fitur trend-mengikuti yang besar, dan mekanisme MA ganda lebih meningkatkannya.
Risiko terbesar adalah bahwa ketika harga berfluktuasi secara dramatis, sifat keterlambatan MAs dapat menyebabkan kehilangan titik masuk atau keluar terbaik.
Untuk mengurangi risiko, parameter seperti periode MA dapat disesuaikan sesuai, atau filter tambahan dapat ditambahkan.
Ruang pengoptimalan terutama terletak pada aspek berikut:
Strategi ini menghasilkan sinyal dengan rata-rata bergerak eksponensial ganda, dengan kekuatan dalam kemampuan pelacakan tren harga untuk mendeteksi pembalikan tren. tetapi keterbatasan seperti MA lag memang ada. langkah selanjutnya adalah meningkatkan kualitas sinyal, waktu masuk dan stop loss dari berbagai dimensi.
/*backtest start: 2024-01-18 00:00:00 end: 2024-02-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © technicalTruff99446 //@version=4 strategy("AhmetMSA", overlay=true, initial_capital = 10000, commission_value = 0.002, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, calc_on_order_fills = true) //2. DEĞERDEN SONRA GEÇMİŞ HESAPLAMA DEĞERİ, KOMİSYON ORANI, PARANIN TAMAMI, DEĞERLERİ EKLEMDİ emaShPD = input (title="EMA KISA PERİYOT", defval=9, minval=1) emaLngPD = input (title="EMA UZUN PERİYOT", defval=21, minval=1) //input DEĞİŞKEN DEĞER ATAMA ema1 = ema (close,emaShPD) ema2 = ema (close,emaLngPD) //EMALAR ARASINI BOYAMA upTrend downTrend upTrend = plot (ema1, color=#4DFF00, linewidth=2, title= "EMA KISA", transp=0) downTrend = plot (ema2, color=#FF0C00, linewidth=3, title= "EMA UZUN", transp=0) //linewidth ÇİZGİ KALINLIĞI //title İSİM VERME //BACKTESTİN BAŞLANGIÇ TARİHİNİ BELİRLEME yearin = input(2024, title = "Backtest Başlangıç Tarihi") //longCondition = crossover(ema1, ema2) //shortCondition = crossover(ema2, ema1) buy = crossover(ema1, ema2) and yearin >= year sell = crossover(ema2, ema1) and yearin >= year //ta.crossunder KESİŞİM KODU //Barları BOYAMA barbuy = ema1 >= ema2 barsell = ema2 < ema1 //AL SAT AŞK KUTUCUKLU EKRANA YAZMA plotshape(buy, title = "AL AŞK", text = 'AL AŞK', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny) plotshape(sell, title = "SAT AŞK", text = 'SAT AŞK', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny) //Barları BOYAMA KOŞULU barcolor(barbuy? #4DFF00: barsell? #FF0C00: #FF0C00) fill(upTrend, downTrend, color = ema1 >= ema2?#4DFF00 : #FF0C00, transp = 80, title = "bgcolor") //longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) //shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) //14 GÜNLÜĞÜN KAPANIŞDEĞERİNİN 28 GÜNLÜK KAPANIŞ DEĞERİNİ KESMESİ KOŞULU if (buy) strategy.entry("AL AŞK", strategy.long) if (sell) strategy.entry("SAT AŞK", strategy.short)