Strategi ini menggunakan dua indeks bergerak rata-rata ((EMA) yang memiliki panjang yang berbeda untuk menghasilkan sinyal trend. Secara default, EMA dengan panjang 130 dan 400 bekerja dengan baik dalam kombinasi.
Ketika garis cepat EMA bersilang di atas garis lambat EMA bersilang dan harga lebih tinggi dari 200 siklus EMA melakukan lebih banyak; Ketika garis cepat EMA bersilang di bawah garis lambat EMA bersilang dan harga lebih rendah dari 200 siklus EMA melakukan kosong.
Persentase saat berlawanan dengan arah kemiringan.
Strategi ini bekerja paling baik pada Bitcoin dan Altcoin dengan nilai pasar yang kuat dan likuid, tetapi juga bekerja dengan baik pada aset yang lebih berfluktuasi, terutama ketika aset-aset ini sering mengalami tren.
Waktu yang paling tepat adalah 4 jam.
Ada juga filter fluktuasi yang dapat dipilih, yang hanya dibuka ketika selisih antara dua kemiringan lebih besar dari nilai terendah tertentu, untuk menghindari pergerakan harga yang lebih keras dari sinyal.
Nikmatilah, Ini Manfaatnya!
Inti dari strategi ini adalah membandingkan kemiringan antara dua panjang EMA yang berbeda.
Pertama menghitung EMA dengan panjang 130 dan 400, kemudian menghitung kemiringan masing-masing, kemudian menghitung kemiringan masing-masing dengan EMA dengan panjang 3 untuk mendapatkan kurva kemiringan yang halus.
Sinyal beli dihasilkan ketika garis pendek melewati garis pendek EMA di atas kemiringan EMA; Sinyal jual dihasilkan ketika garis pendek melewati EMA di bawah kemiringan EMA.
Untuk memfilter getaran, Anda dapat memilih EMA 200 siklus sebagai filter tren, hanya jika harga lebih tinggi dari EMA pertimbangkan untuk melakukan sinyal lebih banyak, kurang dari itu pertimbangkan untuk melakukan sinyal kosong.
Selain itu, Anda juga dapat memilih untuk dilengkapi dengan filter tingkat fluktuasi, yang hanya menghasilkan sinyal ketika perbedaan antara dua kecenderungan lebih besar dari nilai ambang yang telah ditentukan, sehingga memfilter situasi yang memiliki persilangan kecenderungan tetapi tidak cukup fluktuasi.
Posisi ini akan berhenti menjadi rugi ketika laju dan kemiringan terbalik berlawanan.
Dengan menggunakan slope crossing menghasilkan sinyal yang dapat secara efektif melacak tren
Menyesuaikan kombinasi parameter siklus EMA untuk menyesuaikan dengan kondisi pasar yang berbeda
Trending Filter Menghindarkan Diri dari Kesesatan
Filter tingkat fluktuasi dapat memfilter sinyal palsu
Aturan sederhana, jelas, dan mudah dipahami
Dapat digunakan pada beberapa kerangka waktu
Open dan Close mungkin sering terjadi pada saat terjadi gempa besar.
Parameter siklus EMA yang tidak tepat dapat melewatkan titik perubahan tren
Kombinasi parameter harus disesuaikan dengan perubahan lingkungan pasar
Sama seperti sistem MA, kerugian di akhir tren besar dapat dibalik
Mencoba berbagai EMA siklus kombinasi parameter untuk menemukan yang terbaik
Parameter pilihan berdasarkan karakteristik mata uang yang berbeda dan kondisi pasar
Anda dapat mempertimbangkan untuk menambahkan strategi stop loss untuk mengontrol risiko.
Parameter siklus EMA yang dapat dipertimbangkan untuk disesuaikan secara dinamis
Mencoba parameter nilai terendah fluktuasi yang berbeda
Uji coba pada kerangka waktu yang berbeda
Strategi ini secara keseluruhan ide yang jelas dan mudah dipahami, menggunakan EMA yang bersilang menghasilkan sinyal, yang dapat secara efektif melacak tren; penyaring tren yang dilengkapi dengan filter tingkat fluktuasi dapat mengurangi perdagangan noise. Dengan menyesuaikan EMA siklus kombinasi parameter dapat disesuaikan dengan lingkungan pasar yang berbeda. Secara keseluruhan merupakan strategi pelacakan tren yang sederhana dan praktis, layak untuk diuji dan dioptimalkan di lapangan.
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// strategy(title="Slopes",initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.06, slippage = 2, default_qty_value=30, overlay=false)
//definizione input
start = timestamp(input(2018, "start year"), input(1, "start month"), input(1, "start day"), 00, 00)
end = timestamp(input(2020, "end year"), input(1, "end month"), input(1, "end day"), 00, 00)
average = input (title="Source MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])
len1=input(130,title="Fast MA Length")
len2=input(400,title="Slow MA Length")
smoothingavg = input (title="Smoothing MAs Type", type=input.string, defval="EMA",options=["EMA","SMA"])
smoothingavglen = input (3,title="Smoothing MAs Length")
trendfilter=input(true,title="Trend Filter")
trendfilterperiod=input(200,title="Trend Filter MA Period")
trendfiltertype=input (title="Trend Filter MA Type", type=input.string, defval="EMA",options=["EMA","SMA"])
volatilityfilter=input(false,title="Volatility Filter")
volatilitydelta=input(0.0003,step=0.0001,title="Delta Slopes EMA")
//variabili
m1 = if average == "EMA"
ema(close,len1)
else
sma(close,len1)
m2=if average == "EMA"
ema(close,len2)
else
sma(close,len2)
slp1=(m1-m1[1])/m1
slp2=(m2-m2[1])/m2
e1=if smoothingavg == "EMA"
ema(slp1,smoothingavglen)
else
sma(slp1,smoothingavglen)
e2=if smoothingavg == "EMA"
ema(slp2,smoothingavglen)
else
sma(slp2,smoothingavglen)
plot(e1,color=color.yellow)
plot(e2,color=color.red)
//plot (abs(e1-e2),color=color.white)
//plot (ema(e1-e2,9),color=color.yellow)
//variabili accessorie e condizioni
TrendConditionL=if trendfiltertype =="EMA"
close>ema(close,trendfilterperiod)
else
close>sma(close,trendfilterperiod)
TrendConditionS=if trendfiltertype =="EMA"
close<ema(close,trendfilterperiod)
else
close<sma(close,trendfilterperiod)
VolatilityCondition = abs(e1-e2) > volatilitydelta
ConditionEntryL= if trendfilter == true
if volatilityfilter == true
e1>e2 and TrendConditionL and VolatilityCondition
else
e1>e2 and TrendConditionL
else
if volatilityfilter == true
e1>e2 and VolatilityCondition
else
e1>e2
ConditionEntryS= if trendfilter == true
if volatilityfilter == true
e1<e2 and TrendConditionS and VolatilityCondition
else
e1<e2 and TrendConditionS
else
if volatilityfilter == true
e1<e2 and VolatilityCondition
else
e1<e2
ConditionExitL=crossunder(e1,e2)
ConditionExitS=crossover(e1,e2)
if true
if ConditionExitS
if strategy.position_size < 0
strategy.close("SLPShort")
if true
if ConditionExitL
if strategy.position_size > 0
strategy.close("SLPLong")
if true
if ConditionEntryL
strategy.entry ("SLPLong",long=true)
if true
if ConditionEntryS
strategy.entry("SLPShort",long=false)