Strategi ini menggunakan persimpangan cerun dua EMA dengan panjang yang berbeza untuk menjana trend mengikuti isyarat.
Keadaan yang membuat strategi memasuki pasaran adalah:
Apabila cerun mudah bersilang ke arah yang bertentangan, ia menutup kedudukan.
Strategi ini berfungsi dengan baik pada Bitcoin dan altcoin yang paling cair dan bermodal, tetapi berfungsi dengan baik pada aset yang tidak menentu juga, terutamanya jika mereka sering menjadi tren. Ia berfungsi dengan baik dalam jangka masa 4 jam.
Terdapat juga penapis Volatiliti pilihan, yang membuka kedudukan hanya jika perbezaan antara dua cerun adalah lebih daripada nilai tertentu.
Nikmatilah!
Inti strategi ini adalah untuk membandingkan cerun dua EMA dengan panjang yang berbeza.
Pertama, EMA dengan panjang 130 dan 400 dikira, kemudian cerun masing-masing dikira, kemudian EMA panjang 3 dikira pada setiap cerun untuk mendapatkan lengkung cerun yang halus.
Apabila cerun EMA cepat melintasi di atas cerun EMA perlahan, isyarat beli dihasilkan.
Untuk menapis bunyi bising, EMA tempoh 200 boleh digunakan sebagai penapis trend, mempertimbangkan isyarat panjang hanya apabila harga di atas EMA, dan isyarat pendek hanya apabila di bawah EMA.
Di samping itu, penapis turun naik boleh digunakan, menghasilkan isyarat hanya apabila perbezaan antara dua cerun lebih besar daripada ambang, untuk mengelakkan kes di mana cerun bersilang tetapi turun naik tidak mencukupi.
Apabila cerun cepat dan perlahan bersilang secara berlawanan, kedudukan ditutup untuk menghentikan keuntungan / kerugian.
Menggunakan persimpangan cerun untuk menjana isyarat boleh dengan berkesan mengesan trend
Penyesuaian gabungan tempoh EMA boleh disesuaikan dengan keadaan pasaran yang berbeza
Penapis trend mengelakkan disesatkan oleh tindakan harga yang bergolak
Penapis turun naik menapis isyarat palsu
Logik yang mudah dan jelas, mudah difahami dan dilaksanakan
Boleh digunakan pada pelbagai jangka masa
Pembukaan dan penutupan yang kerap mungkin berlaku di pasaran yang luas
Tempoh EMA yang tidak sesuai boleh terlepas titik perubahan trend
Parameter harus disesuaikan untuk menyesuaikan diri dengan keadaan pasaran yang berubah
Seperti sistem MA, trend besar boleh berbalik pada melampau
Cuba kombinasi tempoh EMA yang berbeza untuk mencari parameter optimum
Pilih parameter mengikut ciri aset dan keadaan pasaran
Pertimbangkan untuk menambah strategi stop loss untuk mengawal risiko
Pertimbangkan penyesuaian dinamik tempoh EMA
Uji nilai ambang turun naik yang berbeza
Keberkesanan ujian merentasi jangka masa
Strategi ini mempunyai logik yang jelas, mudah difahami, menggunakan persimpangan kemiringan EMA untuk menjana isyarat dan mengesan trend dengan berkesan. Penapis trend dan turun naik mengurangkan perdagangan yang bising. Penyesuaian kombinasi tempoh EMA menyesuaikan dengan keadaan pasaran yang berbeza. Secara keseluruhan strategi trend berikut yang mudah dan praktikal yang bernilai diuji dan dioptimumkan dalam perdagangan langsung.
/*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)