Strategi Penjejakan Purata Pergerakan Terobosan Berayun


Tarikh penciptaan: 2023-10-30 11:39:31 Akhirnya diubah suai: 2023-10-30 11:39:31
Salin: 1 Bilangan klik: 629
1
fokus pada
1617
Pengikut

Strategi Penjejakan Purata Pergerakan Terobosan Berayun

Strategi ini bertujuan untuk menjana keuntungan yang berterusan dalam pasaran yang bergolak dengan menjejaki penembusan garis rata.

Prinsip Strategi

Strategi ini berpusat pada prinsip penembusan garisan rata, menggunakan MA yang mengumpul banyak garisan rata untuk membentuk garisan rata utama. Ia menghasilkan isyarat perdagangan apabila harga menembusi garisan rata utama.

Khususnya, strategi ini menggunakan purata bergerak WMA ganda 60 kitaran sebagai garis rata-rata utama. Pada masa yang sama, mengira julat pergerakan sebenar harga, dan memetakan saluran ke atas ke bawah.

Pada asas penembusan, strategi ini juga memperkenalkan penunjuk RSI dan penunjuk EMA untuk penilaian tambahan, yang memerlukan RSI> 50 dan harga lebih tinggi daripada EMA untuk melakukan lebih banyak, dan RSI < 50 dan harga lebih rendah daripada EMA untuk melakukan kosong, untuk mengelakkan penembusan palsu.

Di samping itu, strategi menggunakan kedudukan yang kuat dan lemah dalam formasi tiga rata-rata untuk menentukan kedudukan akhir. Apabila formasi tiga rata-rata adalah lemah (−1), pilih titik keluar sebagai saluran penembusan terbalik.

Kelebihan Strategik

  • Menggunakan MA (Multiple Mean Line) untuk meluruskan pergerakan harga dan mengenal pasti arah trend
  • Perdagangan terobosan corong untuk mendapatkan wang dalam keadaan yang tidak menentu
  • Pertimbangan tambahan yang digabungkan dengan RSI dan EMA untuk menyaring isyarat pecah palsu
  • Menggunakan keadaan garis tengah tiga kali untuk menentukan titik keluar yang sesuai, untuk mengelakkan kemerosotan

Risiko Strategik

  • Dalam keadaan goncangan yang besar, garis purata utama MA mungkin menghasilkan lebih banyak pecah palsu
  • Penghakiman Triple Equilibrium mungkin tidak tepat
  • RSI parameter yang tidak betul boleh menyebabkan frekuensi dagangan yang terlalu tinggi

Risiko boleh dikurangkan dengan mengoptimumkan parameter kitaran MA, menyesuaikan tetapan triple mean line, dan menggunakan parameter RSI dengan berhati-hati.

Arah pengoptimuman strategi

  • Optimumkan parameter kitaran MA untuk mencari kitaran purata utama yang lebih sesuai
  • Cubalah dengan pelbagai penunjuk bantuan untuk menggantikan RSI, seperti KDJ, MACD dan sebagainya.
  • Menyesuaikan parameter Triple Mean Line untuk mencari masa pembalikan yang lebih tepat
  • Menambah strategi henti kerugian untuk mengawal risiko perdagangan tunggal

ringkaskan

Strategi ini secara keseluruhannya adalah strategi penembusan yang sangat sesuai untuk keadaan gegaran. Gagasan teras adalah berdasarkan kedudukan penembusan MA, ditambah dengan penapis indikator trend, keuntungan berterusan dalam keadaan gegaran.

Kod sumber strategi
/*backtest
start: 2022-10-23 00:00:00
end: 2023-03-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/



//@version=5

//exapple bot
strategy('RIPO BOT', shorttitle='RIPO BOT', overlay=true, process_orders_on_close=true, calc_on_order_fills=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
sl_inp = input(0.1, title='Stop Loss %') / 100
tp_inp = input(0.33, title='Take Profit %') / 100

length = input(defval=21)
upper = ta.highest(length)
lower = ta.lowest(length)

lengthChop = input.int(14, minval=1)
ci = 100 * math.log10(math.sum(ta.atr(1), lengthChop) / (ta.highest(lengthChop) - ta.lowest(lengthChop))) / math.log10(lengthChop)
offset = input.int(0, "Offset",  minval = -500, maxval = 500)
plot(ci, "CHOP", color=#2962FF, offset = offset)
band1 = hline(61.8, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(50, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(38.2, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color = color.rgb(33, 150, 243, 90), title = "Background")

rsi = ta.rsi(close, 14)

var float entry_price = na

output = 100 * (close - upper) / (upper - lower)
ema = ta.ema(output, input(defval=13, title='EMA'))

ma(src, len) =>
    ta.wma(2 * ta.wma(src, len / 2) - ta.wma(src, len), math.round(math.sqrt(len)))
BBMC = ma(close, 60)
rangema = ta.ema(ta.tr, 60)
upperk = BBMC + rangema * 0.2
lowerk = BBMC - rangema * 0.2
color_bar = close > upperk ? color.blue : close < lowerk ? color.fuchsia : color.gray

ExitHigh = ma(high, 15)
ExitLow = ma(low, 15)
Hlv3 = int(na)
Hlv3 := close > ExitHigh ? 1 : close < ExitLow ? -1 : Hlv3[1]
sslExit = Hlv3 < 0 ? ExitHigh : ExitLow
base_cross_Long = ta.crossover(close, sslExit)
base_cross_Short = ta.crossover(sslExit, close)
codiff = base_cross_Long ? 1 : base_cross_Short ? -1 : na
entry_long = false

entry_short = false

    
if ta.crossover(close, BBMC) and output > ema
    entry_long := true
    
if ta.crossunder(close, BBMC) and output < ema
    entry_short := true

if entry_long and strategy.position_size == 0
    entry_price := close
    strategy.entry('enter long', strategy.long, comment='ENTER-LONG_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
if strategy.position_size > 0
    strategy.exit('Stop Loss/TP long', 'enter long', limit=entry_price * (1 + tp_inp), stop = color_bar == color.fuchsia ? BBMC : na, comment='EXIT-LONG_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
plot(entry_price * (1 + tp_inp), color=color.new(color.green, 0))


//if entry_short and strategy.position_size == 0
    //entry_price := close
    //strategy.entry('enter short', strategy.short, comment='ENTER-SHORT_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
if strategy.position_size < 0
    strategy.exit('Stop Loss/TP short', 'enter short', limit=entry_price * (1 - tp_inp), stop = color_bar == color.blue ? BBMC : na, comment='EXIT-SHORT_BYBIT_MATICUSDT_BOT-NAME_1M_85915e4dc80fb663')
plot(entry_price * (1 + tp_inp), color=color.new(color.green, 0))
// plot(entry_price * (1 - sl_inp), color=color.new(color.red, 0))

plot(rsi, color=color.yellow)

plot(output, title='%R', color=color.new(color.yellow, 0), linewidth=2)
plot(ema, title='EMA', color=color.new(color.aqua, 0), linewidth=2)

plotarrow(codiff, colorup=color.new(color.blue, 35), colordown=color.new(color.fuchsia, 35), title='Exit Arrows', maxheight=20, offset=0)
plot(BBMC, color=color_bar, linewidth=4, title='MA Trendline')