MA Trendline Strategi Terobosan

Penulis:ChaoZhang, Tarikh: 2023-10-30 11:39:31
Tag:

img

Strategi ini mewujudkan keuntungan berterusan di pasaran yang tidak menentu dengan mengesan kejayaan garis purata bergerak.

Logika Strategi

Logik teras strategi ini adalah untuk membuka kedudukan berdasarkan garis terobosan purata bergerak. Ia menggunakan MA untuk mengumpulkan pelbagai purata bergerak untuk membentuk garis purata bergerak utama. Isyarat perdagangan dihasilkan apabila harga memecahkan garis purata bergerak utama.

Secara khusus, strategi ini menggunakan purata bergerak WMA berganda 60 tempoh sebagai garis purata bergerak utama. Pada masa yang sama, ia mengira julat sebenar harga dan menarik jalur atas dan bawah.

Di atas isyarat terobosan, strategi ini juga menggabungkan RSI dan EMA sebagai penunjuk tambahan. Ia memerlukan RSI> 50 dan harga di atas EMA untuk pergi panjang, dan RSI < 50 dan harga di bawah EMA untuk pergi pendek, untuk mengelakkan terobosan palsu.

Di samping itu, strategi ini menggunakan pembentukan purata bergerak tiga kali untuk menentukan titik keluar. Apabila purata bergerak tiga kali berada dalam pembentukan lemah (-1), titik keluar dipilih sebagai terbalik terobosan saluran.

Analisis Kelebihan

  • Menggunakan MA untuk meluruskan perubahan harga, ia dapat mengenal pasti arah trend dengan berkesan
  • Perdagangan berdasarkan penembusan saluran boleh menjana keuntungan yang baik di pasaran terhad
  • Menggabungkan RSI dan EMA mengelakkan isyarat pecah palsu
  • Menggunakan pembentukan MA tiga untuk menentukan titik keluar mengelakkan trend yang habis

Analisis Risiko

  • Garis MA boleh menghasilkan banyak pecah palsu di pasaran yang sangat turun naik
  • Masa keluar MA bertiga mungkin tidak sangat tepat
  • Parameter RSI yang tidak betul boleh membawa kepada perdagangan berlebihan

Risiko ini boleh dikurangkan dengan mengoptimumkan tempoh MA, menyesuaikan tetapan MA tiga kali, menggunakan RSI dengan berhati-hati dll.

Arahan pengoptimuman

  • Mengoptimumkan tempoh MA untuk mencari tetapan yang lebih baik untuk garis purata bergerak utama
  • Cuba penunjuk tambahan yang berbeza untuk menggantikan RSI, contohnya KDJ, MACD dll.
  • Sesuaikan parameter MA tiga untuk mengenal pasti titik pembalikan dengan lebih tepat
  • Tambah stop loss untuk mengawal risiko setiap perdagangan

Ringkasan

Kesimpulannya, ini adalah strategi breakout yang sangat baik untuk pasaran terhad. Idea utama adalah untuk membuka kedudukan berdasarkan breakout MA, disaring oleh penunjuk trend, dan merealisasikan keuntungan yang stabil di pasaran bukan trend. Keluar ditentukan lebih awal menggunakan pembentukan MA tiga. Terdapat ruang yang cukup untuk mengoptimumkan parameter, meningkatkan logik kemasukan / keluar dan lain-lain untuk memaksimumkan prestasi di pasaran berkisar.


/*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')





Lebih lanjut