Strategi EMAskeleton

Penulis:ChaoZhang, Tarikh: 2023-12-07 17:20:44
Tag:

img

Ringkasan

Strategi ini menggabungkan penunjuk EMA dan RSI untuk mengenal pasti peluang penyesuaian jangka pendek dalam Bitcoin. Ia terutamanya menggunakan EMA sebagai alat grafik utama dan RSI sebagai penunjuk penghakiman tambahan untuk mencari corak penyesuaian yang jelas. Isyarat perdagangan dihasilkan apabila harga memecahkan di bawah atau memanjat kembali di atas garis EMA. Ia juga mempunyai kawalan hentian kerugian dan mengambil keuntungan yang boleh diparameterkan.

Prinsip Strategi

Strategi ini terutamanya menggunakan garis EMA 50 tempoh dan penunjuk RSI 25 tempoh. Garis EMA dianggap sebagai penunjuk grafik utama dan RSI digunakan untuk menentukan keadaan overbought dan oversold untuk membantu menghasilkan isyarat perdagangan. Isyarat jual dihasilkan apabila harga jatuh di bawah garis EMA, dan isyarat beli dihasilkan apabila harga memecahkan di atas garis EMA dan penunjuk RSI menunjukkan isyarat bukan overbought (nilai RSI kurang dari 70). Untuk mengurangkan kemungkinan entri yang salah, strategi ini juga menggabungkan garis EMA jangka panjang (seperti 70 tempoh) sebagai keadaan penapis tambahan.

Selepas memasuki perdagangan, strategi ini juga menetapkan tahap stop loss dan mengambil keuntungan. Jarak stop loss boleh diselaraskan, lalai menjadi 5.1%; Jarak mengambil keuntungan juga boleh diselaraskan, lalai menjadi 9.6%. Ini secara berkesan mengehadkan kerugian maksimum setiap perdagangan.

Ringkasnya, strategi ini terutamanya bergantung pada corak garis EMA, ditambah dengan penunjuk RSI untuk mengelakkan keadaan overbought dan oversold, sambil mempunyai kawalan stop loss dan mengambil keuntungan.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Isyarat strategi agak jelas tanpa terlalu banyak entri yang salah secara rawak.

  2. Terbina dalam kawalan stop loss dan mengambil keuntungan. Ini berkesan mengehadkan kerugian setiap perdagangan dan merupakan alat kawalan risiko yang sangat penting.

  3. Parameter strategi boleh dioptimumkan. Panjang EMA, panjang RSI dan banyak lagi adalah parameter yang boleh disesuaikan. Pengguna boleh mencari set parameter yang optimum untuk keadaan pasaran yang berbeza.

  4. Backtesting diaktifkan. Strategi ini membolehkan menetapkan julat tarikh backtest secara dalaman untuk mengesahkan prestasi.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko, terutamanya dari:

  1. BT Bitcoin mempunyai pergerakan yang tidak menentu, hentian mungkin dijalankan. Walaupun hentian ditetapkan, BT Bitcoin sering mempunyai perubahan harga yang besar yang boleh mengambil hentian yang membawa kepada kerugian yang lebih besar daripada yang dijangkakan.

  2. Risiko pengambilan. Strategi ini tidak mempertimbangkan kawalan pengambilan keseluruhan. Ia mungkin mengalami pengambilan semasa tempoh penyesuaian yang berpanjangan.

  3. Sinyal yang lebih lemah dalam trend yang kuat. Trend BT Bitcoin boleh menjadi agak meluas semasa keadaan pasaran tertentu. Isyarat jangka pendek cenderung kurang berprestasi yang menyebabkan berhenti dari perdagangan yang baik.

Untuk mengawal dan mengurangkan risiko ini:

  1. Mengizinkan julat stop loss yang lebih luas. Semasa keadaan trend yang kuat, julat stop loss boleh diperluaskan, seperti 10%, untuk mengelakkan berhenti terlalu awal.

  2. Tambah penapis penunjuk lain. Penunjuk yang mengikuti trend boleh ditambah untuk mengelakkan mengambil dagangan semasa tempoh penyatuan yang berpanjangan.

  3. Mengoptimumkan parameter. Parameter ujian ditetapkan dalam keadaan pasaran yang berbeza. Parameter suis ditetapkan apabila trend yang kuat muncul untuk meningkatkan kualiti isyarat.

Arahan pengoptimuman

Terdapat ruang tambahan untuk mengoptimumkan strategi ini:

  1. Tambah kawalan penarikan keseluruhan. Boleh menetapkan peratusan penarikan maksimum, seperti 20%, yang menghentikan perdagangan apabila dicapai untuk mengehadkan kerugian.

  2. Mengehadkan kekerapan kemasukan. Boleh mengehadkan bilangan dagangan setiap unit masa, seperti 2 dagangan setiap jam maksimum, untuk mengelakkan perdagangan berlebihan.

  3. Mengoptimumkan parameter. Uji kombinasi parameter untuk keadaan pasaran yang berbeza. Buat templat parameter untuk beralih antara dalam masa nyata yang sepadan dengan keadaan semasa.

  4. Menggabungkan dengan penunjuk lain. Mengintegrasikan trend, turun naik dan metrik lain untuk mewujudkan peraturan kemasukan sistem dagangan yang lebih komprehensif.

Ringkasan

Secara keseluruhan, strategi ini terutamanya bergantung pada corak penyesuaian jangka pendek BT Bitcoin, menggunakan EMA dan RSI untuk menjana isyarat perdagangan yang jelas, sambil mempunyai kawalan stop loss dan mengambil keuntungan. Ia dapat menangkap peluang keuntungan tergelincir jangka pendek dengan berkesan. Tetapi berfungsi dengan baik dalam kombinasi dengan strategi lain untuk menghasilkan pulangan berlebihan yang lebih konsisten.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 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/
// © mmoiwgg

//@version=4
strategy(title="EMA+RSI Pump & Drop Swing Sniper (With Alerts & SL+TP) - Strategy", shorttitle="EMA+RSI Swing Strategy", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=50, minval=0)
emarsiSource = input(close, title="EMA+RSI Source")
condSource = input(high, title="Long+Short Condition Source")
emaVal = ema(emarsiSource, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(emarsiSource, rsiLength)

//Safety 
emaLength2 = input(title="Safety EMA Length", type=input.integer, defval=70, minval=0)
emaSource2 = input(close, title="Safety EMA Source")
ema = ema(emaSource2, emaLength2)
emaColorSource2 = close
emaBSource2 = close

// Backtest+Dates
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)        // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest end window
window()  => time >= start and time <= finish ? true : false       // create function - add window() to entry/exit/close

// Conditions
exit_long = crossover(emaVal, condSource)
longCond = crossunder(emaVal, condSource) and close > ema

//Stoploss + TakeProfit
sl = input(0.051, step=0.001, title="Stop Loss")
tp = input(0.096, step=0.001, title="Take Profit")

// Plots Colors
colors = emarsiSource > emaVal and rsiVal > 14 ? color.green : color.red
emaColorSource = input(close, title="Line Color Source")
emaBSource = input(close, title="Line Color B Source")

// Plots
plot(ema, color=emaColorSource2[1] > ema and emaBSource2 > ema ? color.green : color.red, linewidth=1)
plot(emaVal, color=emaColorSource[1] > emaVal and emaBSource > emaVal ? color.green : color.red, linewidth=3)
plotcandle(open, high, low, close, color=colors)


//Strategy Entry+Exits
strategy.entry("long",1,when=window() and longCond)
strategy.close("long",when=window() and exit_long)
strategy.exit("long tp/sl", "long", profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick)


Lebih lanjut