Strategi Mengikuti Tren Crossover Kemiringan Rata-rata Bergerak


Tanggal Pembuatan: 2023-10-17 17:02:30 Akhirnya memodifikasi: 2023-10-17 17:02:30
menyalin: 0 Jumlah klik: 504
1
fokus pada
1166
Pengikut

Strategi Mengikuti Tren Crossover Kemiringan Rata-rata Bergerak

Ringkasan

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!

Prinsip Strategi

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.

Analisis Keunggulan

  1. Dengan menggunakan slope crossing menghasilkan sinyal yang dapat secara efektif melacak tren

  2. Menyesuaikan kombinasi parameter siklus EMA untuk menyesuaikan dengan kondisi pasar yang berbeda

  3. Trending Filter Menghindarkan Diri dari Kesesatan

  4. Filter tingkat fluktuasi dapat memfilter sinyal palsu

  5. Aturan sederhana, jelas, dan mudah dipahami

  6. Dapat digunakan pada beberapa kerangka waktu

Analisis risiko

  1. Open dan Close mungkin sering terjadi pada saat terjadi gempa besar.

  2. Parameter siklus EMA yang tidak tepat dapat melewatkan titik perubahan tren

  3. Kombinasi parameter harus disesuaikan dengan perubahan lingkungan pasar

  4. Sama seperti sistem MA, kerugian di akhir tren besar dapat dibalik

Arah optimasi

  1. Mencoba berbagai EMA siklus kombinasi parameter untuk menemukan yang terbaik

  2. Parameter pilihan berdasarkan karakteristik mata uang yang berbeda dan kondisi pasar

  3. Anda dapat mempertimbangkan untuk menambahkan strategi stop loss untuk mengontrol risiko.

  4. Parameter siklus EMA yang dapat dipertimbangkan untuk disesuaikan secara dinamis

  5. Mencoba parameter nilai terendah fluktuasi yang berbeda

  6. Uji coba pada kerangka waktu yang berbeda

Meringkaskan

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.

Kode Sumber Strategi
/*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)