Trend Mengikuti Strategi EMA dan RSI


Tarikh penciptaan: 2023-09-26 15:39:48 Akhirnya diubah suai: 2023-09-26 15:39:48
Salin: 0 Bilangan klik: 978
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini memanfaatkan kelebihan rata-rata bergerak dan petunjuk yang agak kuat untuk mengenal pasti dan menjejaki trend. Ia hanya memerlukan dua petunjuk untuk membuat keputusan mengenai trend dan memilih masa masuk / keluar. Strategi ini bertujuan untuk menangkap trend harga dalam garis panjang dan panjang dan mengelakkan gangguan pasaran jangka pendek.

Prinsip Strategi

Strategi ini menggunakan garis rata-rata EMA dari tiga kitaran yang berbeza, EMA-A adalah kitaran terpendek, EMA-B seterusnya, EMA-C adalah yang terpanjang. Apabila kitaran pendek EMA-A di atas EMA-B yang mempunyai kitaran yang lebih panjang, ini menunjukkan bahawa harga berada dalam trend menaik, yang boleh dilakukan lebih banyak; sebaliknya, apabila EMA-A di bawah EMA-B, ini menunjukkan bahawa harga beralih ke trend menurun, yang boleh dilakukan kosong.

Strategi ini juga digabungkan dengan RSI untuk menentukan titik keluar. Apabila memegang posisi berganda, jika RSI melintasi 70 garis maka ia akan ditutup; apabila memegang posisi kosong, jika RSI melintasi 30 garis maka ia akan ditutup. Ini dapat mengunci keuntungan trend dan mencegah kerugian daripada berkembang lebih jauh.

Analisis kelebihan

  • Menggunakan EMA untuk mengenal pasti arah trend
  • RSI membantu menentukan titik masuk dan keluar
  • Hanya memerlukan 2 petanda, strategi mudah
  • Gaya dasar penunjuk parameter yang boleh dikonfigurasi
  • Menerima keuntungan pada permulaan, pertengahan dan akhir trend

Analisis risiko

  • Kemunculan semula dalam trend utama mungkin memberi isyarat palsu
  • Keadaan yang tidak menentu
  • RSI parameter yang tidak betul mungkin terlambat berhenti
  • Tetapan kitaran EMA perlu berhati-hati, terlalu pendek adalah bunyi sensitif, terlalu lama adalah kehilangan trend

Risiko ini dapat dikurangkan dengan mengoptimumkan parameter RSI, atau menambah syarat penapisan tambahan. Ia juga boleh digabungkan dengan kaedah analisis teknikal seperti trend, sokongan dan rintangan untuk meningkatkan prestasi strategi.

Arah pengoptimuman

  • Mengoptimumkan parameter RSI, mengimbangi stop loss
  • Uji kombinasi kitaran EMA yang berbeza
  • Pengesahan peningkatan tenaga atau penunjuk lain
  • Stop loss mode boleh disesuaikan dengan ATR
  • Boleh cuba turunkan kedudukan di tengah trend
  • Optimumkan masa kemasukan, seperti titik tinggi / rendah, atau penyerapan tenaga
  • Mempertimbangkan untuk menyertai mekanisme kemasukan semula

ringkaskan

Strategi ini menggabungkan trend tracking dan overbought oversold indicator, hanya memerlukan dua indikator mudah untuk membuat keputusan dan menangkap trend. Dengan pengoptimuman parameter dan pengoptimuman peraturan, anda dapat meningkatkan keberkesanan dengan ketara sambil tetap sederhana. Ia adalah templat strategi trend tracking yang sangat praktikal, sesuai untuk pelabur garis tengah dan panjang.

Kod sumber strategi
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
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/
//@author Alorse

//@version=5
// strategy(title='Tendency EMA + RSI [Alorse]', shorttitle='Tendece EMA + RSI [Alorse]', overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)

// Bollinger Bands
len = input.int(14, minval=1, title='Length', group='RSI')
src = input.source(close, 'Source', group='RSI')
rsi = ta.rsi(src, len)

// Moving Averages
len_a = input.int(10, minval=1, title='EMA A Length', group='Moving Averages')
out_a = ta.ema(close, len_a)
plot(out_a, title='EMA A', color=color.purple)

len_b = input.int(20, minval=1, title='EMA B Length', group='Moving Averages')
out_b = ta.ema(close, len_b)
plot(out_b, title='EMA B', color=color.orange)

len_c = input.int(100, minval=1, title='EMA C Length', group='Moving Averages')
out_c = ta.ema(close, len_c)
plot(out_c, title='EMA B', color=color.green)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
closeAfterXBars = input.bool(true, title='Close after X # bars', tooltip='If trade is in profit', group=stratGroup)
xBars = input.int(24, title='# bars')

entryLong = ta.crossover(out_a, out_b) and out_a > out_c and close > open
exitLong = rsi > 70

entryShort = ta.crossunder(out_a, out_b) and out_a < out_c and close < open
exitShort = rsi < 30


bought = strategy.opentrades[0] == 1 and strategy.position_size[0] > strategy.position_size[1]
entry_price = ta.valuewhen(bought, open, 0)
var int nPastBars = 0
if strategy.position_size > 0
    nPastBars := nPastBars + 1
    nPastBars
if strategy.position_size == 0
    nPastBars := 0
    nPastBars
if closeAfterXBars
    exitLong := nPastBars >= xBars and close > entry_price ? true : exitLong
    exitLong
    exitShort := nPastBars >= xBars and close < entry_price ? true : exitShort
    exitShort

// Long Entry
strategy.entry('Long', strategy.long, when=entryLong and showLong)
strategy.close('Long', when=exitLong)

// Short Entry
strategy.entry('Short', strategy.short, when=entryShort and showShort)
strategy.close('Short', when=exitShort)