Strategi Mengikuti Trend Persilangan Cerun Purata Pergerakan


Tarikh penciptaan: 2023-10-17 17:02:30 Akhirnya diubah suai: 2023-10-17 17:02:30
Salin: 0 Bilangan klik: 848
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Persilangan Cerun Purata Pergerakan

Gambaran keseluruhan

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!

Prinsip Strategi

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.

Analisis kelebihan

  1. Menerbitkan isyarat dengan menggunakan persilangan slope untuk mengesan trend dengan berkesan

  2. Sesuaikan kombinasi parameter kitaran EMA untuk menyesuaikan diri dengan keadaan pasaran yang berbeza

  3. Penapis trend boleh mengelakkan diri daripada tertipu oleh pergerakan goyah

  4. Penapis kadar lonjakan boleh menapis isyarat palsu

  5. Peraturan mudah, jelas dan mudah difahami

  6. Boleh digunakan pada pelbagai bingkai masa

Analisis risiko

  1. Open dan Close mungkin berlaku dalam keadaan gegaran yang kuat

  2. Parameter kitaran EMA yang tidak betul mungkin terlepas titik perubahan trend

  3. Pengaturan set parameter yang sesuai untuk menyesuaikan diri dengan keadaan pasaran yang berubah

  4. Sama seperti sistem MA, kerugian boleh dibalikkan pada akhir trend besar

Arah pengoptimuman

  1. Cuba pelbagai EMA kitaran kombinasi parameter untuk mencari parameter yang terbaik

  2. Parameter pilihan berdasarkan ciri-ciri mata wang yang berbeza dan keadaan pasaran

  3. Anda boleh mempertimbangkan untuk menambah strategi kawalan risiko untuk menghentikan kerugian

  4. Parameter kitaran EMA yang boleh dipertimbangkan untuk disesuaikan secara dinamik

  5. Cuba parameter penurunan kadar turun naik yang berbeza

  6. Uji keserasian dalam pelbagai tempoh masa

ringkaskan

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.

Kod 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)