Strategi penalaan halus trend tarik balik


Tarikh penciptaan: 2023-10-13 15:49:29 Akhirnya diubah suai: 2023-10-13 15:49:29
Salin: 0 Bilangan klik: 816
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini bertujuan untuk menangkap perubahan kecil dalam trend, membuka lebih banyak kedudukan pada akhir perubahan, untuk mendapatkan keuntungan. Ia menggunakan indikator teknikal seperti EMA, MACD, RSI untuk menentukan trend dan waktu berakhirnya perubahan, dan menggunakan indikator ATR untuk menetapkan harga berhenti rugi.

Prinsip

Strategi ini mulakan dengan mengira EMA, MACD dan RSI untuk menentukan arah dan kekuatan trend semasa.

Ia menggunakan 3 garis purata EMA (pendek 21 kitaran, pertengahan 50 kitaran, panjang 200 kitaran), apabila garis purata jangka pendek merentasi dua garis panjang, ia dianggap sebagai trend ke atas.

Penunjuk MACD menilai kekuatan trend, apabila garis MACD atau tiang histo melewati 0 sumbu, ia menganggap trend menaik menjadi kuat.

Indeks RSI menilai apakah terlalu panas dan terlalu banyak dijual, dan penilaian pemulihan mungkin berakhir apabila nilai RSI melepasi 50.

Kemudian menggunakan indikator SuperTrend untuk menentukan titik pembelian yang tepat. Apabila SuperTrend berbalik dari bawah ke atas, ia menghasilkan isyarat beli.

Akhirnya, harga untuk menghentikan kerugian dan menghentikan keuntungan ditarik berdasarkan petunjuk ATR.

Kelebihan

  • Ini adalah satu-satunya cara untuk meningkatkan kebolehpercayaan isyarat perdagangan dengan menggunakan penilaian gabungan pelbagai indikator.
  • Menangkap peluang garis pendek dalam trend, dengan kadar kemenangan yang tinggi.
  • Menetapkan mekanisme pencegahan kerosakan untuk mengawal risiko dengan berkesan.

Risiko

  • Masa yang terlalu lama boleh menyebabkan kerugian meningkat.
  • Kombinasi pelbagai indikator, parameter yang lebih rumit, memerlukan pengoptimuman ujian berulang.
  • Pengaturan Stop Loss terlalu longgar dan boleh menyebabkan kerugian meningkat.

Langkah pengurusan risiko:

  • Mengoptimumkan parameter untuk memastikan penunjuk digunakan dengan lancar.
  • Sesuai menyesuaikan titik berhenti untuk mengelakkan kerugian yang terlalu besar.
  • Elakkan mengambil stok yang terlalu lama untuk disemak semula.

Arah pengoptimuman

  • Uji kombinasi parameter yang berbeza untuk mencari nilai keadaan terbaik.
  • Mengambil kira pergerakan saham dalam masa sehari, anda boleh menyesuaikan penyekatan kerugian anda.
  • Menambah harga kuantiti untuk mengelakkan kekurangan kuantiti.

ringkaskan

Strategi ini menggunakan pelbagai indikator teknikal untuk menilai trend dan penyesuaian, dengan kebolehpercayaan yang kuat. Dengan mekanisme penangguhan yang ketat, risiko dikendalikan, penarikan balik dilakukan tepat pada masanya.

Kod 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)