Strategi Mengikuti Tren Konfirmasi Tiga Kali Lipat Didorong oleh Indikator Momentum


Tanggal Pembuatan: 2024-01-05 15:46:21 Akhirnya memodifikasi: 2024-01-05 15:46:21
menyalin: 0 Jumlah klik: 692
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Konfirmasi Tiga Kali Lipat Didorong oleh Indikator Momentum

Ringkasan

Strategi ini menggunakan mekanisme triple confirmation untuk menghasilkan sinyal perdagangan, yaitu indikator momentum untuk mengkonfirmasi tren pasar yang kuat, indikator supertrend untuk mengkonfirmasi arah tren, dan indikator EMA sebagai verifikasi tambahan untuk mengkonfirmasi arah tren. Strategi ini hanya akan menghasilkan sinyal perdagangan over atau under jika ketiga indikator ini memenuhi persyaratan, sehingga memastikan bahwa hanya peluang perdagangan dengan probabilitas tinggi yang dipilih.

Prinsip Strategi

  1. Indikator Momentum (RSI)

    • Indikator RSI dinamika digunakan untuk menilai kekuatan tren pasar. Ketika pembacaan lebih besar dari 60 menunjukkan tren pasar yang kuat.

    • Hanya di tengah bull market dan bear market yang kuat, sinyal perdagangan muncul.

  2. Analisis tren super

    • Garis tren super mewakili arah tren pasar. Hanya pertimbangkan untuk berposisi jika harga melewati garis tren super.

    • Ketika harga dari bawah ke atas menerobos garis tren super, itu berubah menjadi tren multihead; ketika harga dari atas ke bawah menerobos, itu berubah menjadi tren headless.

  3. Strategi EMA

    • EMA dan garis tren bantuannya digunakan untuk mengkonfirmasi arah tren. Sinyal beli hanya muncul ketika EMA menembus garis tren bantuannya ke atas, sedangkan sinyal kosong sebaliknya.

Hanya jika ketiga indikator ini memenuhi persyaratan untuk membangun posisi, sinyal perdagangan yang benar akan dikirim. Ini sangat mengurangi jumlah sinyal palsu dan meningkatkan stabilitas strategi.

Analisis Keunggulan

Strategi ini memiliki stabilitas dan probabilitas keuntungan yang sangat tinggi. Keuntungan utama adalah:

  1. Multiple confirmation mechanism, noise filtering, dan high probability trading.

  2. Garis tren super dinamis untuk melacak stop loss dan mengontrol risiko secara efektif

  3. Perdagangan hanya dalam tren yang kuat, menghindari risiko tambahan.

  4. Verifikasi tambahan pada indikator EMA memastikan bahwa perdagangan berjalan dengan benar.

  5. Ini adalah sistem yang sangat sederhana dan dapat disesuaikan untuk semua jenis trader.

Analisis risiko

Risiko utama dari strategi ini berasal dari sinyal perdagangan yang salah yang disebabkan oleh penembusan yang tidak biasa. Risiko utama dan solusi meliputi:

  1. Bahaya Penembakan Palsu: Meningkatkan mekanisme verifikasi penembakan

  2. Rentang kehancuran menjadi lebih besar risiko: pengaturan yang tepat dari batas kerusakan.

  3. Risiko reversal: mempersingkat periode kepemilikan, menghentikan kerugian tepat waktu.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Parameter optimasi: menyesuaikan parameter indikator untuk lebih banyak varietas.

  2. Menambahkan filter: Meningkatkan kualitas sinyal dengan lebih banyak indikator.

  3. Strategi Komposit: Bergabung dengan strategi lain, saling melengkapi dengan keuntungan.

  4. Parameter dinamika: Parameter disesuaikan secara otomatis sesuai dengan kondisi pasar.

  5. Pembelajaran Mesin: Menggunakan algoritma untuk menemukan parameter optimal secara otomatis.

Meringkaskan

Strategi ini menggunakan kombinasi yang efektif dari indikator dinamis, supertrend, dan EMA untuk mencapai strategi perdagangan probabilitas tinggi yang dikonfirmasi secara berulang. Mekanisme verifikasi terobosan yang ketat juga membuatnya memiliki stabilitas yang sangat kuat.

Kode Sumber Strategi
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('The Flash-Strategy (Momentum-RSI, EMA-crossover, ATR)', shorttitle='The Flash-Strategy (Momentum-RSI, EMA-crossover, ATR)', overlay=true,initial_capital = 1000)
//// author -  Baby_whale_to_moon

// MOM Rsi indicator 
group_mom_rsi = "Rsi Of Momentum "
len = input.int(10, minval=1, title="Length Mom-Rsi", group =group_mom_rsi ,tooltip = 'This ind calculate Rsi value of Momentum we use this ind to determine power of trend')
src2 = close
mom = src2 - src2[len]
rsi_mom = ta.rsi(mom, len)
mom_rsi_val = input.int(60, minval=1, title="Mom-Rsi Limit Val", group =group_mom_rsi, tooltip = "When our Mom-Rsi value more then this we open LONG or Short, with help of this indicator we we determine the status of the trend")

// Super Trend Ind
group_supertrend = "SuperTrend indicator"
atrPeriod = input(10, "ATR Length SuperTrend", group = group_supertrend)
factor = input.float(3.0, "Factor SuperTrend", step = 0.01, group = group_supertrend)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

// Ema Indicator
group_most = "Ema indicator"
src = input(close, 'Source Ema Ind',group = group_most)
AP2 = input.int(defval=12, title='Length Ema Ind', minval=1,group = group_most)
Trail1 = ta.ema(src, AP2) //Ema func
AF2 = input.float(defval=1, title='Percent Ema Ind', minval=0.1,group = group_most) / 100
SL2 = Trail1 * AF2  // Stoploss Ema
Trail2 = 0.0
iff_1 = Trail1 > nz(Trail2[1], 0) ? Trail1 - SL2 : Trail1 + SL2
iff_2 = Trail1 < nz(Trail2[1], 0) and Trail1[1] < nz(Trail2[1], 0) ? math.min(nz(Trail2[1], 0), Trail1 + SL2) : iff_1
Trail2 := Trail1 > nz(Trail2[1], 0) and Trail1[1] > nz(Trail2[1], 0) ? math.max(nz(Trail2[1], 0), Trail1 - SL2) : iff_2

//Bull = ta.barssince(Trail1 > Trail2 and close > Trail2 and low > Trail2) < ta.barssince(Trail2 > Trail1 and close < Trail2 and high < Trail2)

//TS1 = plot(Trail1, 'ExMov', style=plot.style_line, color=Trail1 > Trail2 ? color.rgb(33, 149, 243, 100) : color.rgb(255, 235, 59, 100), linewidth=2)
//TS2 = plot(Trail2, 'ema', style=plot.style_line, color=Trail1 > Trail2 ? color.rgb(76, 175, 79, 30) : color.rgb(255, 82, 82, 30), linewidth=2)
//fill(TS1, TS2, Bull  ? color.green : color.red, transp=90)


// Strategy Sett
group_strategy = "Settings of Strategy"
Start_Time = input(defval=timestamp('01 January 2000 13:30 +0000'), title='Start Time of BackTest', group =group_strategy)
End_Time = input(defval=timestamp('30 April 2030 19:30 +0000'), title='End Time of BackTest', group =group_strategy)
dollar = input.float(title='Dollar Cost Per Position* ', defval=50000, group =group_strategy)
trade_direction = input.string(title='Trade_direction', group =group_strategy, options=['LONG', 'SHORT', 'BOTH'], defval='BOTH')
v1 = input(true, title="Version 1 - Uses SL/TP Dynamically ", group =group_strategy ,tooltip = 'With this settings our stoploss price increase or decrease with price to get better PNL score')

v2 = input(false, title="Version 2 -  Uses SL/TP Statically", group =group_strategy)
v2stoploss_input = input.float(5, title='Static Stop.Loss % Val', minval=0.01, group =group_strategy)/100
v2takeprofit_input = input.float(10, title='Static Take.Prof % Val', minval=0.01, group =group_strategy)/100

v2stoploss_level_long = strategy.position_avg_price * (1 - v2stoploss_input)
v2takeprofit_level_long = strategy.position_avg_price * (1 + v2takeprofit_input)

v2stoploss_level_short = strategy.position_avg_price * (1 + v2stoploss_input)
v2takeprofit_level_short = strategy.position_avg_price * (1 - v2takeprofit_input)

group_line = "Line Settings"
show_sl_tp = input.bool(title='  Show StopLoss - TakeProf Lines',inline = "1", defval=true, group =group_line)
show_trend_line = input.bool(title='  Show Trend Line',inline = '3' ,defval=true, group =group_line)
stoploss_colour = input.color(title='StopLoss Line Colour',inline = '2' ,defval=color.rgb(255, 255, 0), group =group_line)
up_trend_line_colour = input.color(title='Up Trend line Colour',inline = '4' ,defval=color.rgb(0, 255, 0, 30), group =group_line)
down_trend_line_colour = input.color(title='Down Trend line Colour',inline = '4' ,defval=color.rgb(255, 0, 0, 30), group =group_line)

//plot(supertrend ,color = strategy.position_size > 0 and show_sl_tp ? color.rgb(255, 0, 0) :show_sl_tp ? color.rgb(0, 255, 0) : na , style = plot.style_steplinebr,linewidth = 2)
// plot(supertrend ,color = show_sl_tp and v1 ? stoploss_colour : na , style = plot.style_steplinebr,linewidth = 2)

// plot(v2stoploss_level_long ,color = strategy.position_size > 0 and show_sl_tp and v2 ? stoploss_colour : na , style = plot.style_steplinebr,linewidth = 2)
// plot(v2stoploss_level_short ,color = strategy.position_size < 0 and show_sl_tp and v2 ? stoploss_colour : na , style = plot.style_steplinebr,linewidth = 2)
// plot(v2takeprofit_level_long  ,color = strategy.position_size > 0 and show_sl_tp and v2 ? up_trend_line_colour : na , style = plot.style_steplinebr,linewidth = 2)
// plot(v2takeprofit_level_short ,color = strategy.position_size < 0 and show_sl_tp and v2 ? up_trend_line_colour : na , style = plot.style_steplinebr,linewidth = 2)


TS2 = plot(Trail2, 'Ema Strategy', style=plot.style_line, color=show_trend_line and Trail1 < Trail2 ? down_trend_line_colour : show_trend_line ? up_trend_line_colour  : na, linewidth=2)

// bgcolor(buy_signal ? color.rgb(0, 230, 119, 80) : na)
// bgcolor(sell_signal ? color.rgb(255, 82, 82, 80) : na)

Time_interval = true
buy_signal = Trail1 > Trail2 and direction < 0 and rsi_mom > mom_rsi_val and Time_interval
sell_signal =Trail1 < Trail2 and direction > 0 and rsi_mom > mom_rsi_val and Time_interval


// Strategy entries 
if strategy.opentrades == 0 and buy_signal and ( trade_direction == 'LONG' or trade_direction == 'BOTH')
    strategy.entry('Long_0', strategy.long, qty=dollar / close)

if strategy.opentrades == 0 and sell_signal and ( trade_direction == 'SHORT' or trade_direction == 'BOTH')
    strategy.entry('Short_0', strategy.short, qty=dollar / close)


if close < supertrend and v1
    strategy.exit('Long_Close',from_entry = "Long_0", stop=supertrend, qty_percent=100)
if  v2 and strategy.position_size > 0
    strategy.exit('Long_Close',from_entry = "Long_0", stop=v2stoploss_level_long,limit= v2takeprofit_level_long  , qty_percent=100)
    
if close > supertrend and v1
    strategy.exit('Short_Close',from_entry = "Short_0", stop=supertrend, qty_percent=100)
if  v2 and strategy.position_size < 0
    strategy.exit('Short_Close',from_entry = "Short_0", stop=v2stoploss_level_short,limit= v2takeprofit_level_short ,qty_percent=100)