Sumber dimuat naik... memuat...

Trend RSI Berbilang Tempoh Stop-Loss Dinamik Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-12-05 16:25:17
Tag:RSIEMAATR

img

Ringkasan

Ini adalah strategi trend-mengikuti berdasarkan gabungan penunjuk teknikal, terutamanya menggunakan keadaan overbought / oversold RSI, persilangan EMA, dan stop-loss dinamik untuk perdagangan. Strategi ini menggunakan kawalan risiko 1.5% digabungkan dengan leverage untuk memperkuat pulangan. Inti nya terletak pada mengesahkan trend melalui pelbagai penunjuk teknikal sambil menggunakan tahap mengambil keuntungan dan stop-loss dinamik untuk melindungi modal. Strategi ini direka khusus untuk ciri-ciri akaun kecil, sesuai untuk perdagangan cepat dan kerap.

Prinsip Strategi

Strategi ini menggunakan tiga penunjuk teknikal utama: RSI (Relative Strength Index), EMA (Exponential Moving Average), dan ATR (Average True Range). Isyarat kemasukan disahkan oleh persilangan antara EMA jangka pendek (9-periode) dan EMA jangka panjang (21-periode), sementara memerlukan RSI berada dalam julat yang munasabah (RSI panjang <70, RSI pendek>30). Strategi ini menggunakan stop-loss dinamik berasaskan ATR, dengan tahap mengambil keuntungan ditetapkan pada 4 kali stop-loss, yang membolehkan perlindungan keuntungan sambil mengawal risiko.

Kelebihan Strategi

  1. Kawalan risiko yang ketat: Pengurusan risiko peratusan tetap, mengehadkan setiap risiko perdagangan kepada 1.5%
  2. Reka bentuk stop-loss dinamik: Stop dinamik berasaskan ATR lebih sesuai dengan turun naik pasaran
  3. Pengesahan isyarat berbilang: persilangan EMA disaring oleh RSI meningkatkan kebolehpercayaan isyarat
  4. Nisbah risiko-balasan yang dioptimumkan: mengambil keuntungan pada 4x stop-loss memihak kepada pulangan yang diharapkan yang lebih baik
  5. Sesuai untuk akaun kecil: Leverage sederhana meningkatkan potensi pulangan
  6. Automasi tinggi: Semua parameter boleh diselaraskan untuk mengoptimumkan keadaan pasaran

Risiko Strategi

  1. Risiko turun naik pasaran: Kemungkinan stop-loss yang kerap di pasaran turun naik
  2. Risiko leverage: 2x leverage memperbesar kerugian
  3. Risiko pecah palsu: penyeberangan EMA boleh menghasilkan isyarat palsu
  4. Risiko tergelincir: Kemungkinan tergelincir yang ketara di pasaran pantas
  5. Risiko pengurusan wang: Memerlukan kawalan saiz kedudukan yang betul

Arahan Pengoptimuman Strategi

  1. Tambah penapis trend: Sertakan penentuan trend jangka panjang
  2. Mengoptimumkan masa kemasukan: Meningkatkan titik kemasukan menggunakan penunjuk jumlah
  3. Penyesuaian parameter dinamik: Sesuaikan pengganda ATR secara automatik berdasarkan turun naik
  4. Memperkenalkan penunjuk sentimen pasaran: Menapis persekitaran pasaran berisiko tinggi
  5. Pengurusan wang yang lebih baik: Tambah mekanisme saiz kedudukan dinamik

Ringkasan

Ini adalah strategi trend-mengikuti yang direka dengan baik yang menggunakan beberapa penunjuk teknikal untuk meningkatkan kadar kejayaan perdagangan. Strategi ini mempunyai mekanisme kawalan risiko yang komprehensif yang sesuai untuk akaun kecil. Walau bagaimanapun, dalam perdagangan langsung, perhatian mesti diberikan kepada keadaan pasaran yang berubah, dengan penyesuaian parameter tepat pada masanya untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Adalah disyorkan untuk menjalankan pengujian belakang yang menyeluruh sebelum pelaksanaan langsung dan secara beransur-ansur menyesuaikan diri dengan ciri strategi menggunakan kedudukan kecil.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Aggressive Scalper Strategy", overlay=true)

// Parameters
account_balance = input.float(28.37, title="Account Balance", tooltip="Update this with your balance")
risk_per_trade = input.float(0.015, title="Risk per Trade", tooltip="1.5% risk")
leverage = input.int(2, title="Leverage", minval=1)
stop_loss_percentage = input.float(0.015, title="Stop Loss Percentage", tooltip="1.5% stop loss")
take_profit_multiplier = input.float(4, title="Take Profit Multiplier", tooltip="Take Profit is 4x Stop Loss")
stop_loss_multiplier = input.float(2, title="Stop Loss Multiplier", tooltip="Dynamic Stop Loss Multiplier")

// Trade Size Calculation
position_size = account_balance * risk_per_trade / (stop_loss_percentage / leverage)
trade_qty = position_size / close // This gives you the qty in terms of contracts

// Indicators
rsiLength = input.int(14, title="RSI Length")
emaShort = input.int(9, title="Short-term EMA Length")
emaLong = input.int(21, title="Long-term EMA Length")
rsi = ta.rsi(close, rsiLength)
emaShortLine = ta.ema(close, emaShort)
emaLongLine = ta.ema(close, emaLong)

// Entry Conditions
longCondition = ta.crossover(emaShortLine, emaLongLine) and rsi < 70
shortCondition = ta.crossunder(emaShortLine, emaLongLine) and rsi > 30

// ATR for dynamic stop loss and take profit levels
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier")
atr = ta.atr(atrLength)

// Dynamic Take Profit and Stop Loss Levels
longTakeProfitLevel = close + (atr * take_profit_multiplier)
longStopLossLevel = close - (atr * stop_loss_multiplier)
shortTakeProfitLevel = close - (atr * take_profit_multiplier)
shortStopLossLevel = close + (atr * stop_loss_multiplier)

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long, qty=trade_qty)
    strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=longTakeProfitLevel, stop=longStopLossLevel)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=trade_qty)
    strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=shortTakeProfitLevel, stop=shortStopLossLevel)

// Alert Conditions
alertcondition(longCondition, title="Buy Signal", message="Long position entry signal detected.")
alertcondition(shortCondition, title="Sell Signal", message="Short position entry signal detected.")

// Display Information on Chart
var table_info = table.new(position.top_right, 2, 2, frame_color=color.blue, frame_width=1)
if (bar_index == na)
    table.cell(table_info, 0, 0, text="Aggressive Scalper", bgcolor=color.blue)
    table.cell(table_info, 1, 0, text="Account Balance: $" + str.tostring(account_balance), text_color=color.white)
    table.cell(table_info, 1, 1, text="Risk per Trade: " + str.tostring(risk_per_trade * 100) + "%", text_color=color.white)
    table.cell(table_info, 0, 1, text="Leverage: " + str.tostring(leverage) + "x", text_color=color.white)


Berkaitan

Lebih lanjut