Strategi penjejakan arah aliran RSI berbilang jangka masa dinamik

RSI EMA ATR
Tarikh penciptaan: 2024-12-05 16:25:17 Akhirnya diubah suai: 2024-12-05 16:25:17
Salin: 0 Bilangan klik: 432
1
fokus pada
1617
Pengikut

Strategi penjejakan arah aliran RSI berbilang jangka masa dinamik

Gambaran keseluruhan

Strategi ini menggunakan kawalan risiko 1.5% dan menggabungkan leverage untuk meningkatkan keuntungan. Inti strategi ini adalah untuk mengkonfirmasi trend dengan menggunakan kombinasi pelbagai indikator teknikal, sambil menggunakan stop loss yang dinamik untuk melindungi dana. Strategi ini dirancang dengan mempertimbangkan ciri-ciri akaun modal kecil, sesuai untuk perdagangan cepat dan kerap.

Prinsip Strategi

Strategi ini menggunakan tiga petunjuk teknikal utama: RSI (indicator yang agak kuat), EMA (indicator yang bergerak rata-rata) dan ATR (rata-rata gelombang sebenar). Isyarat masuk disahkan oleh EMA pendek (siklus 9) dan EMA panjang (siklus 21), sambil meminta RSI dalam julat yang munasabah (RSI berbilang kepala <70, RSI kosong >30). Strategi ini menggunakan stop loss dinamik berasaskan ATR, dengan posisi henti sebanyak 4 kali lipat dari stop loss, yang boleh mengawal risiko sambil menjamin keuntungan.

Kelebihan Strategik

  1. Kawalan risiko yang ketat: Pengurusan risiko perkadaran tetap, risiko terhad kepada 1.5% setiap transaksi
  2. Reka bentuk hentian dinamik: Hentian dinamik berasaskan ATR dapat menyesuaikan diri dengan lebih baik dengan turun naik pasaran
  3. Pengesahan pelbagai isyarat: EMA bercampur dengan penapis RSI untuk meningkatkan kebolehpercayaan isyarat
  4. Optimisasi nisbah risiko-keuntungan: Stop loss adalah 4 kali ganda daripada stop loss, yang membantu untuk mendapatkan hasil yang lebih baik
  5. Keupayaan kecil: Mengambil kira ciri-ciri akaun modal kecil, menggunakan leverage yang mencukupi untuk meningkatkan potensi pendapatan
  6. Tingkat automasi yang tinggi: semua parameter boleh disesuaikan untuk memudahkan pengoptimuman mengikut keadaan pasaran

Risiko Strategik

  1. Risiko turun naik pasaran: boleh mencetuskan hentian yang kerap dalam pasaran yang bergolak
  2. Risiko Leverage: Menggunakan Leverage Dua Kali Lebih Besar
  3. Risiko penembusan palsu: EMA mungkin menunjukkan isyarat palsu
  4. Risiko Tergelincir: Pasaran pantas mungkin menghadapi tergelincir yang besar
  5. Risiko pengurusan wang: perlu mengawal jumlah pegangan dengan bijak

Arah pengoptimuman strategi

  1. Menambah penapis trend: penentuan trend untuk kitaran yang lebih panjang
  2. Optimumkan masa kemasukan: boleh menggabungkan penunjuk lalu lintas untuk meningkatkan tempat kemasukan
  3. Parameter penyesuaian dinamik: penyesuaian ATR secara automatik mengikut kadar turun naik
  4. Pengenalan penunjuk sentimen pasaran: penambahan penunjuk sentimen untuk menapis persekitaran pasaran berisiko tinggi
  5. Meningkatkan pengurusan dana: Menambah mekanisme pengurusan kedudukan dinamik

ringkaskan

Ini adalah strategi untuk mengesan trend yang wajar yang dirancang untuk meningkatkan kadar kejayaan perdagangan dengan menggabungkan pelbagai petunjuk teknikal. Mekanisme kawalan risiko strategi adalah sempurna dan sesuai untuk akaun modal kecil. Tetapi dalam perdagangan langsung, perhatian perlu diberikan kepada perubahan keadaan pasaran dan menyesuaikan parameter pada masa yang sesuai untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

Kod sumber strategi
/*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)