
Strategi ini menggunakan persilangan salin dua purata bergerak indeks ((EMA) dengan panjang yang berbeza untuk menghasilkan isyarat trend. EMA dengan panjang 130 dan 400 digunakan secara lalai, dan kombinasi kedua-dua parameter berfungsi dengan baik.
Apabila garis cepat EMA bersilang di atas garis perlahan EMA bersilang dan harga lebih tinggi daripada 200 kitaran EMA, buat lebih banyak; apabila garis cepat EMA bersilang di bawah garis perlahan EMA bersilang dan harga lebih rendah daripada 200 kitaran EMA, buat kosong.
Keadaan yang sama berlaku apabila persilangan berlawanan dengan arah kemiringan.
Strategi ini berfungsi dengan baik pada Bitcoin dan Altcoin yang mempunyai nilai pasaran yang tinggi dan kecairan yang tinggi, tetapi juga berfungsi dengan baik pada aset yang lebih bergolak, terutamanya apabila aset-aset ini sering mengalami trend.
Dalam jangka masa 4 jam.
Ia juga dilengkapi dengan penapis kadar turun naik pilihan yang hanya dibuka apabila perbezaan antara dua kemiringan lebih besar daripada nilai terendah tertentu, untuk mengelakkan kedudukan dibuka apabila bunyi bunyi harga lebih besar daripada isyarat.
Menikmati Kesan yang Luar Biasa!
Strategi ini berpusat pada perbandingan kemerosotan dua purata bergerak EMA dengan panjang yang berbeza.
Mula-mula mengira EMA dengan panjang 130 dan 400, kemudian mengira kemiringan masing-masing, dan kemudian EMA dengan panjang 3 untuk kemiringan masing-masing untuk mendapatkan kurva kemiringan yang halus.
Sinyal beli dihasilkan apabila garis pendek EMA bersandar di atas garis pendek EMA bersandar; Sinyal jual dihasilkan apabila garis pendek EMA bersandar di bawah garis pendek EMA bersandar.
Untuk menyaring getaran, EMA 200 kitaran boleh dipilih sebagai penapis trend, hanya apabila harga lebih tinggi daripada EMA pertimbangkan untuk membuat lebih banyak isyarat, dan apabila ia lebih rendah daripada pertimbangkan isyarat kosong.
Di samping itu, penapis kadar lonjakan boleh dipilih, yang menghasilkan isyarat hanya apabila perbezaan antara dua kecenderungan lebih besar daripada nilai tunjangan yang ditetapkan, untuk menyaring kes-kes yang bersilang dengan kecenderungan tetapi tidak mencukupi.
Apabila pendaratan perlahan-lahan terbalik, kedudukan yang dipadamkan berhenti mendapat keuntungan.
Menerbitkan isyarat dengan menggunakan persilangan slope untuk mengesan trend dengan berkesan
Sesuaikan kombinasi parameter kitaran EMA untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
Penapis trend boleh mengelakkan diri daripada tertipu oleh pergerakan goyah
Penapis kadar lonjakan boleh menapis isyarat palsu
Peraturan mudah, jelas dan mudah difahami
Boleh digunakan pada pelbagai bingkai masa
Open dan Close mungkin berlaku dalam keadaan gegaran yang kuat
Parameter kitaran EMA yang tidak betul mungkin terlepas titik perubahan trend
Pengaturan set parameter yang sesuai untuk menyesuaikan diri dengan keadaan pasaran yang berubah
Sama seperti sistem MA, kerugian boleh dibalikkan pada akhir trend besar
Cuba pelbagai EMA kitaran kombinasi parameter untuk mencari parameter yang terbaik
Parameter pilihan berdasarkan ciri-ciri mata wang yang berbeza dan keadaan pasaran
Anda boleh mempertimbangkan untuk menambah strategi kawalan risiko untuk menghentikan kerugian
Parameter kitaran EMA yang boleh dipertimbangkan untuk disesuaikan secara dinamik
Cuba parameter penurunan kadar turun naik yang berbeza
Uji keserasian dalam pelbagai tempoh masa
Strategi ini secara keseluruhan jelas dan mudah difahami, menggunakan EMA untuk menghasilkan isyarat silang, yang dapat mengesan tren dengan berkesan; penapis trend yang disertakan dan penapis kadar turun naik dapat mengurangkan perdagangan bising. Dengan menyesuaikan kombinasi parameter kitaran EMA, ia dapat disesuaikan dengan keadaan pasaran yang berbeza. Secara keseluruhan, ia adalah strategi pengesanan trend yang mudah dan praktikal, yang layak untuk diuji dan dioptimumkan 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)