Strategi penyempurnaan kemunduran tren


Tanggal Pembuatan: 2023-10-13 15:49:29 Akhirnya memodifikasi: 2023-10-13 15:49:29
menyalin: 1 Jumlah klik: 932
1
fokus pada
1702
Pengikut

Ringkasan

Strategi ini bertujuan untuk menangkap perubahan kecil dalam tren, membuka posisi lebih banyak pada akhir perubahan untuk mendapatkan keuntungan. Ini menggabungkan penggunaan indikator teknis seperti EMA, MACD, dan RSI untuk menentukan tren dan waktu akhir perubahan, dan menggunakan indikator ATR untuk menetapkan harga stop loss.

Prinsip

Strategi ini pertama-tama menghitung EMA, MACD, dan RSI untuk menentukan arah dan kekuatan tren saat ini.

Ini menggunakan 3 garis rata-rata EMA (pendek 21 siklus, menengah 50 siklus, panjang 200 siklus), dan ketika garis rata-rata jangka pendek melewati dua garis tengah panjang, itu dianggap sebagai tren naik.

Indikator MACD menilai kekuatan tren, ketika garis MACD atau pilar histo melewati sumbu 0, menganggap tren naik berubah kuat.

Indikator RSI menilai apakah overheat dan oversold, dan pengurangan bisa berakhir ketika RSI melewati 50.

Kemudian menggunakan indikator SuperTrend untuk menentukan titik beli yang spesifik. Ketika SuperTrend terbalik dari bawah ke atas, sinyal beli dihasilkan.

Akhirnya, harga untuk penarikan stop loss dan stop profit ditetapkan berdasarkan indikator ATR.

Keunggulan

  • Dengan menggunakan kombinasi dari beberapa indikator, sinyal perdagangan menjadi lebih dapat diandalkan.
  • Ini adalah salah satu cara yang paling efektif untuk menangkap peluang dalam tren, dan memiliki tingkat kemenangan yang tinggi.
  • Menetapkan mekanisme penghentian kerusakan untuk mengontrol risiko secara efektif.

Risiko

  • Waktu yang terlalu lama bisa menyebabkan kerugian yang lebih besar.
  • Kombinasi multi-indikator, pengaturan parameter yang lebih kompleks, perlu pengujian berulang dan optimasi.
  • Stop loss setting terlalu longgar, dan kerugian bisa bertambah.

Langkah-langkah manajemen risiko:

  • Optimalkan parameter untuk memastikan indikator digunakan dengan baik.
  • Mengatur titik-titik stop loss dengan tepat untuk mencegah kerugian yang berlebihan.
  • Hindari penyesuaian saham yang terlalu lama.

Arah optimasi

  • Uji kombinasi parameter yang berbeda untuk menemukan nilai kondisi optimal indikator.
  • Ada beberapa hal yang perlu diperhatikan dalam menentukan stop loss, yaitu:
  • Menambahkan indikator kuantitatif untuk menghindari kekurangan kuantitatif.

Meringkaskan

Strategi ini mengintegrasikan penggunaan berbagai indikator teknis untuk menilai tren dan penyesuaian, dengan keandalan yang kuat. Mengontrol risiko dengan mekanisme penghentian yang ketat, penarikan kembali dan penanganan tepat waktu. Berdasarkan parameter dan kolam saham yang terus disesuaikan, pengembalian yang lebih baik dapat diperoleh.

Kode Sumber Strategi
/*backtest
start: 2022-10-06 00:00:00
end: 2023-10-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="pullb", overlay = true, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)

//variables

///emas var
ema_src = input.source(close, "EMA Source")
ema_1 = input.int(21, 'EMA 1 len')
ema_2 = input(50, 'EMA 2 len')
ema_3 = input(200, 'EMA 3 len')

///macd var
mac_src = input.source(close, "MACD Source")
mac_1 = input.int(12, 'MACD Fast')
mac_2 = input.int(26, 'MACD Signal')
mac_3 = input.int(9, 'MACD Histogram')

///rsi var
rsi_src = input.source(close, "RSI Source")
rsi_len = input.int(14, 'RSI Len')

///stoch var
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(3, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(14, "Stochastic Length", minval=1)
stoch_src = input(close, title="RSI Source Stoch")

//usage variables
ema_b = input.bool(true, "Use EMA Filter")
rsi_b = input.bool(true, "Use RSI Filter")
macd_b = input.bool(true, "Use MACD Filter")
//stoch_b = input(title="Use STOCH Filter", type=bool, defval=true)

//emaas
ema1 = ta.ema(ema_src, ema_1)
ema2 = ta.ema(ema_src, ema_2)
ema3 = ta.ema(ema_src, ema_3)

//macd
[macdLine, signalLine, histLine] = ta.macd(mac_src, mac_1, mac_2, mac_3)

//rsi
rsi = ta.rsi(rsi_src, rsi_len)

//stoch
rsi1 = ta.rsi(stoch_src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)

//supertrend
Periods = input.int(14, "ATR Period")
src_st = input.source(close, "Supertrend Source")
Multiplier = input.float(2.0 , "ATR Multiplier")
changeATR= input.bool(true, "Change ATR Calculation Method ?")
showsignals = input.bool(true, "Show Buy/Sell Signals ?")
highlighting = input.bool(true, "Highlighter On/Off ?")
atr2 = ta.sma(ta.tr, Periods)
atr3= changeATR ? ta.atr(Periods) : atr2
up=src_st-(Multiplier*atr3)
up1 = nz(up[1],up)
up := close[1] > up1 ? math.max(up,up1) : up
dn=src_st+(Multiplier*atr3)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1

//conditions
///buy
rsi_cond_b = if rsi_b
    rsi >= 50
else 
    true

macd_cond_b = if macd_b
    (histLine >= 0 or histLine < histLine[1])
else
    true
ema_cond_b = if ema_b
    (ema1 > ema2 and ema2 > ema3)
else 
    true

look_for = input.int(5, "Bars from cross to signal")

stoch_signal_sum = 0
for i = 0 to (look_for)
    if k[i] > d[i] and k[i + 1] < d[i + 1] and (k[i + 1] < 20 and d[i + 1] < 20)
        stoch_signal_sum := stoch_signal_sum + 1
        
stoch_cond_b = if stoch_signal_sum > 0
    if k > 80 and d > 80
        false
    else
        true
else
    false


sup_cond_b = buySignal

buy_sig = (rsi_cond_b and macd_cond_b and ema_cond_b and stoch_cond_b and sup_cond_b)

tp_b = close + (ta.atr(14) * 3)
sl_b = close - (ta.atr(14) * 1.5)

if (buy_sig)
    strategy.entry("long", strategy.long)
    strategy.exit("exit", "long", stop = sl_b, limit = tp_b)
plot(tp_b)
plot(sl_b)