Strategi ini menggunakan prinsip crossover linear, yang dikombinasikan dengan indikator RSI, untuk menentukan arah tren, melakukan operasi beli dan jual.
Strategi ini menggunakan 3 garis rata-rata EMA dengan periode yang berbeda, yaitu garis cepat, garis tengah, dan garis lambat. Ketika garis cepat melintasi garis tengah, itu dianggap sebagai sinyal beli. Ketika garis cepat melintasi garis tengah, itu dianggap sebagai sinyal jual.
Strategi ini juga menggunakan indikator RSI untuk menilai overbought dan oversold. RSI menunjukkan kekuatan relatif dari suatu aset melalui rasio kenaikan rata-rata dan penurunan rata-rata dalam satu periode. Ketika RSI melebihi batas overbought yang ditetapkan, dianggap sebagai overbought; Ketika RSI di bawah batas oversold yang ditetapkan, dianggap sebagai oversold.
Syarat-syarat untuk membeli strategi ini adalah:
Kondisi penjualan adalah:
Strategi ini menggunakan kombinasi strategi perdagangan tren dan perdagangan reversal, yang menggunakan garis rata-rata untuk menilai arah tren besar dan menggabungkan RSI untuk menemukan peluang overbought dan oversold dalam jangka pendek.
Strategi ini menggabungkan crossover rata-rata dan indikator RSI untuk menilai tren dan overbought dan oversold, dan dapat menyaring beberapa perdagangan yang berisik yang disebabkan oleh false breakout. Dengan menggunakan tiga garis rata-rata, Anda dapat menilai status tren dengan lebih jelas.
Pengaturan indikator RSI juga memungkinkan strategi ini untuk menangkap waktu masuk dan keluar yang lebih baik di zona overbought dan oversold.
Strategi ini juga mempertimbangkan biaya transaksi, yang dapat dihindari dengan masuk hanya ketika harga menembus tiga garis rata-rata.
Strategi ini masih memiliki risiko over-fitting. Perubahan lingkungan pasar di real-time dapat menyebabkan parameter tidak lagi beradaptasi dengan kondisi pasar baru.
Strategi ini dapat menghasilkan sinyal palsu yang dapat menyebabkan kerugian pada saat terjadi gempa bumi.
Pengaturan parameter RSI perlu disesuaikan dengan pasar yang berbeda. Jika parameter tidak diatur dengan benar, kemungkinan besar akan menyebabkan peluang yang terlewatkan atau menghasilkan sinyal palsu.
Anda dapat mempertimbangkan untuk memverifikasi kembali sinyal pada grafik dengan periode waktu yang lebih lama untuk menghindari gangguan dari kebisingan pasar jangka pendek.
Anda dapat melakukan uji coba sebelum memasuki pasar, menunggu terobosan atau kembali ke jalur rata dan masuk lagi, untuk memverifikasi sinyal lebih lanjut.
Dapat digabungkan dengan indikator lain, seperti MACD, Brin Belt, dan lain-lain, untuk menggabungkan sinyal dari beberapa indikator, meningkatkan tingkat kematian Entry.
Parameter optimasi dapat dibantu dengan algoritma pembelajaran mesin untuk membuat strategi lebih adaptif.
Anda dapat mempertimbangkan untuk memasukkan strategi stop loss untuk menghentikan kerugian tepat waktu ketika tren tidak pasti.
Strategi ini mengintegrasikan cross-equilibrium dan indikator RSI, dan menemukan peluang reversal tren jangka pendek sambil menilai tren. Ini memanfaatkan keuntungan perdagangan tren dan perdagangan reversal secara efektif, dan dapat memegang peluang garis pendek sambil memegang arah yang baik dalam jangka panjang. Strategi ini memiliki ruang optimasi tertentu, dan dapat membuat strategi lebih stabil dan dapat diandalkan dengan cara verifikasi sinyal, parameter optimasi, penambahan stop loss, dll.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © chadsadachai
//@version=5
strategy("EMA Cross V1", overlay= true)
//rsi
length = input.int(title = "Rsi Lenght" , defval=26 , minval=1, maxval=50)
overS = input.int(title = "Rsi OVS line" , defval=30 , minval=1, maxval=40)
overB = input.int(title = "Rsi OVB line" , defval=70 , minval=1, maxval=100)
mLine = input.int(title = "Rsi Medium line" , defval=42 , minval=1, maxval=60)
price = close
vrsi = ta.rsi(price, length)
co = vrsi >= mLine and vrsi < overB
cu = ta.crossunder(vrsi, overB)
//ema
F = input.int(title = "EMA Fast" , defval=17 , minval=1, maxval=50)
M = input.int(title = "EMA Medium" , defval=35, minval=1, maxval=100)
S = input.int(title = "EMA Slow" , defval=142, minval=1, maxval=200)
emaF = ta.ema(price , F)
emaM = ta.ema(price , M)
emaS = ta.ema(price , S)
//plot
plot(emaF , color = color.green , linewidth=1)
plot(emaM , color = color.yellow , linewidth=1)
plot(emaS , color = color.red , linewidth=1)
//Time Stamp
start = timestamp(input.int(title = "Start Year" , defval=2011 , minval=2011, maxval=2025), input.int(title = "Start Month" , defval=1 , minval=1, maxval=12), input.int(title = "Start Day" , defval=1 , minval=1, maxval=31), 0, 0)
end = timestamp(input.int(title = "End Year" , defval=2025 , minval=2011, maxval=2025), input.int(title = "End Month" , defval=1 , minval=1, maxval=12), input.int(title = "End Day" , defval=1 , minval=1, maxval=31), 0, 0)
// years = input.int(title = "Year" , defval=2018 , minval=2011, maxval=2025)
// months = input.int(title = "Month" , defval=1 , minval=1, maxval=12)
// days = input.int(title = "Day" , defval=1 , minval=1, maxval=31)
//longCondition Default
// longCondition1 = EMA_Fast >= EMA_Slow and EMA_Fast >= EMA_Medium//ta.crossover(EMA_Fast, EMA_Slow) EMA_Fast > EMA_Slow and EMA_Medium > EMA_Slow
// longCondition3 = price >= EMA_Medium and price > EMA_Slow
// longCondition2 = vrsi >= overSold and vrsi <= overBought
//longCondition & shortCondition ETHUSD
// 1.price > emaF > emaM > emaS
// 2.rsi overcross overS
longC1 = price > emaF and price > emaM and price > emaS
// longC1 = ta.crossover(emaF, emaM)
longC2 = if longC1
co
// shortC1 = EMA_Fast < EMA_Medium //and EMA_Fast < EMA_Slow and EMA_Medium < EMA_Slow //and cu
// shortC2 = overBought > vrsi //and vrsi < overBought //overSold < vrsi and vrsi < mediumLine
// exitLong Condition
// 1.price < emaF < emaM < emaS
// 2.rsi overcross mediumLine
exitLong1 = ta.crossunder(emaF, emaM) //or emaF < emaM//and price < emaM and price < emaF
exitLong2 = ta.crossunder(vrsi,mLine)
//exitLong3 = price < emaM
//strategy.entry
if time >=start and time <=end
strategy.entry("Buy", strategy.long , when = longC1 and longC2)
// if(exitLong1 or exitLong2)
strategy.close("Buy" , when = exitLong1 or exitLong2)
// exitShort1 = EMA_Fast > EMA_Medium
// //exitShort2 = ta.crossover(vrsi , mediumLine)
// exitShort2 = ta.crossunder (vrsi,mediumLine)
// strategy.close("Short" , when = exitShort1 or exitShort2)
// //shortCondition = cu
// //if (shortCondition1 and shortCondition2)
// //strategy.entry("My Short Entry Id", strategy.short)