Strategi ini menggunakan persilangan lereng dua EMA dengan panjang yang berbeda untuk menghasilkan tren mengikuti sinyal.
Kondisi yang membuat strategi masuk ke pasar adalah:
Ketika lereng sederhana bersilang ke arah yang berlawanan, posisi ditutup.
Strategi ini bekerja dengan baik pada Bitcoin dan altcoin yang paling likuid dan dikapitalisasi, tetapi juga sangat baik pada aset yang tidak stabil, terutama jika mereka sering menjadi tren. Berfungsi dengan baik dalam jangka waktu 4 jam.
Ada juga filter Volatilitas opsional, yang membuka posisi hanya jika perbedaan antara dua kemiringan lebih dari nilai tertentu.
Nikmatilah!
Inti dari strategi ini adalah membandingkan kemiringan dua EMA dengan panjang yang berbeda.
Pertama, EMA dengan panjang 130 dan 400 dihitung, kemudian kemiringan masing-masing dihitung, kemudian EMA dengan panjang 3 dihitung pada setiap kemiringan untuk mendapatkan kurva kemiringan yang halus.
Ketika kemiringan EMA cepat melintasi di atas kemiringan EMA lambat, sinyal beli dihasilkan.
Untuk menyaring kebisingan, 200 periode EMA dapat digunakan sebagai filter tren, mempertimbangkan sinyal panjang hanya ketika harga di atas EMA, dan sinyal pendek hanya ketika di bawahnya.
Selain itu, filter volatilitas dapat digunakan, menghasilkan sinyal hanya ketika perbedaan antara dua kemiringan lebih besar dari ambang batas, untuk menghindari kasus di mana kemiringan bersilang tetapi volatilitas tidak cukup.
Ketika lereng cepat dan lambat bersilang secara berlawanan, posisi ditutup untuk menghentikan keuntungan/kerugian.
Menggunakan persilangan lereng untuk menghasilkan sinyal dapat secara efektif melacak tren
Penyesuaian kombinasi periode EMA dapat beradaptasi dengan kondisi pasar yang berbeda
Filter tren menghindari tertipu oleh aksi harga bergolak
Filter volatilitas menyaring sinyal palsu
Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan
Dapat digunakan pada beberapa kerangka waktu
Pembukaan dan penutupan yang sering dapat terjadi di pasar dengan kisaran besar
Periode EMA yang tidak tepat dapat melewatkan titik balik tren
Parameter harus disesuaikan dengan perubahan kondisi pasar
Seperti sistem MA, tren besar dapat berbalik pada ekstrem
Cobalah kombinasi periode EMA yang berbeda untuk menemukan parameter optimal
Pilih parameter sesuai dengan karakteristik aset dan kondisi pasar
Pertimbangkan untuk menambahkan strategi stop loss untuk mengendalikan risiko
Pertimbangkan untuk menyesuaikan periode EMA secara dinamis
Uji nilai ambang volatilitas yang berbeda
Efektivitas pengujian di seluruh kerangka waktu
Strategi ini memiliki logika yang jelas, mudah dimengerti, menggunakan persimpangan kemiringan EMA untuk menghasilkan sinyal dan melacak tren secara efektif. Filter tren dan volatilitas mengurangi perdagangan yang bising. Penyesuaian kombinasi periode EMA menyesuaikan dengan berbagai kondisi pasar. Secara keseluruhan, strategi tren sederhana dan praktis yang layak diuji dan dioptimalkan 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)