
Strategi ini menggunakan prinsip persilangan linear, digabungkan dengan indikator RSI, untuk menentukan arah trend, melakukan operasi beli dan jual.
Strategi ini menggunakan 3 garis purata EMA yang berbeza, iaitu garis cepat, garis tengah dan garis perlahan. Apabila garis cepat melintasi garis tengah, ia dianggap sebagai tanda beli; apabila garis cepat melintasi garis tengah, ia dianggap sebagai tanda jual.
Pada masa yang sama, strategi ini juga menggunakan indikator RSI untuk menilai keadaan overbought dan oversold. RSI menunjukkan kekuatan relatif aset melalui nisbah kenaikan rata-rata dan penurunan rata-rata dalam satu kitaran. Apabila RSI melebihi garis overbought yang ditetapkan, ia dianggap berada dalam keadaan overbought; Apabila RSI berada di bawah garis oversold yang ditetapkan, ia dianggap berada dalam keadaan oversold.
Syarat pembelian untuk strategi ini adalah:
Syarat untuk dijual ialah:
Strategi ini menggunakan gabungan strategi perdagangan trend dan perdagangan pembalikan untuk menilai arah trend besar dengan menggunakan garis rata-rata dan menggabungkan RSI untuk mencari peluang jual beli jangka pendek.
Strategi ini menggabungkan crossover rata-rata dan RSI untuk menilai trend dan overbought dan oversold, untuk menyaring beberapa urus niaga bising yang disebabkan oleh pecah palsu. Dengan menggunakan tiga garis rata-rata, anda dapat menilai keadaan trend dengan lebih jelas.
Tetapan RSI juga membolehkan strategi ini untuk mengambil peluang masuk dan keluar yang lebih baik di kawasan yang lebih banyak dibeli dan dijual.
Strategi ini juga mengambil kira kos dagangan, dan mengelakkan tergesa-gesa dengan hanya masuk apabila harga menembusi tiga garis purata.
Strategi ini masih mempunyai risiko untuk menyesuaikan diri. Perubahan dalam keadaan pasaran dalam talian akan menyebabkan parameter tidak lagi sesuai dengan keadaan pasaran baru.
Dalam keadaan gegaran, strategi ini mudah menghasilkan isyarat palsu yang boleh menyebabkan kerugian.
Tetapan parameter RSI perlu disesuaikan dengan pasaran yang berbeza, jika parameter tidak ditetapkan dengan betul, ia mudah menyebabkan peluang yang terlewat atau menghasilkan isyarat palsu.
Anda boleh mempertimbangkan untuk mengesahkan semula isyarat pada carta jangka masa yang lebih lama untuk mengelakkan gangguan oleh bunyi pasaran jangka pendek.
Ia boleh diuji sebelum memasuki pasaran, menunggu untuk memecahkan atau kembali ke garis biasa dan masuk semula, untuk mengesahkan isyarat lebih lanjut.
Ia boleh digabungkan dengan petunjuk lain, seperti MACD, Brin Belt, dan lain-lain, untuk menggabungkan isyarat pelbagai petunjuk dan meningkatkan kadar kematian Entry.
Anda boleh menggunakan algoritma pembelajaran mesin untuk membantu parameter pengoptimuman dan menjadikan strategi lebih mudah disesuaikan.
Anda boleh pertimbangkan untuk memasukkan strategi berhenti kerugian, berhenti tepat pada masanya apabila trend tidak pasti.
Strategi ini mengintegrasikan cross-equilibrium dan RSI, dan pada masa yang sama menilai trend, mencari peluang pembalikan trend jangka pendek. Ia menggunakan kelebihan perdagangan trend dan perdagangan pembalikan dengan berkesan, dan dapat memegang peluang garis pendek sambil memegang arah yang baik dalam jangka panjang. Strategi ini mempunyai ruang pengoptimuman tertentu, dengan cara mengesahkan isyarat, parameter pengoptimuman, dan tambahan berhenti, strategi ini dapat dibuat lebih stabil dan boleh dipercayai.
/*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)