Strategi penambahan kedudukan dinamik berdasarkan RSI


Tarikh penciptaan: 2024-02-06 09:44:05 Akhirnya diubah suai: 2024-02-06 09:44:05
Salin: 1 Bilangan klik: 727
1
fokus pada
1617
Pengikut

Strategi penambahan kedudukan dinamik berdasarkan RSI

Gambaran keseluruhan

Strategi ini menggabungkan indeks yang agak kuat (RSI) dan prinsip penambahan Martingale. Beli dan buka kedudukan pertama apabila RSI berada di bawah garis oversold; kemudian, jika harga terus turun, penambahan akan dilakukan pada indeks 2 untuk mendapatkan keuntungan.

Prinsip Strategi

  1. Menggunakan RSI untuk menilai pasaran oversold, RSI semasa ditetapkan pada 14, oversold pada 30 .
  2. Apabila RSI < 30, anda boleh mengambil kedudukan pertama dengan 5% daripada kepentingan akaun.
  3. Jika harga turun 0.5% daripada harga masuk pertama, anda boleh menambah 2 kali ganda kedudukan anda; jika harga terus turun, anda boleh menambah 4 kali ganda kedudukan anda.
  4. Setiap kenaikan 0.5%, anda akan membayar dengan keuntungan anda.
  5. Ulangi langkah-langkah di atas untuk membuat transaksi pusingan.

Analisis kelebihan

  • Dengan menggunakan RSI untuk menilai pasaran yang terlalu banyak dijual, anda boleh membuat lebih banyak kedudukan di titik yang lebih rendah.
  • Martin Gill menambah stok boleh menyebabkan harga purata untuk membuka stok semakin rendah.
  • Ia boleh menghasilkan keuntungan yang berterusan dan stabil.
  • Perdagangan tunai yang sesuai untuk mata wang bernilai tinggi, risiko boleh dikawal.

Analisis risiko

  • Jika pasaran terus menurun, kerugian pegangan mungkin akan bertambah.
  • Tiada seting stop loss, tiada had kerugian maksimum.
  • Ia juga boleh menyebabkan kerugian yang lebih besar.
  • Dalam perdagangan pelbagai arah, terdapat risiko yang besar untuk terus turun.

Pengoptimuman Strategi

  1. Anda boleh menetapkan titik henti untuk mengehadkan kerugian maksimum.
  2. Mengoptimumkan parameter RSI untuk mencari isyarat jual-beli yang terbaik.
  3. Anda boleh menetapkan had penangguhan yang munasabah berdasarkan turun naik mata wang tertentu.
  4. Anda boleh menetapkan markah kenaikan berdasarkan jumlah aset atau peratusan pegangan individu.

ringkaskan

Strategi ini menggabungkan indikator RSI dan prinsip pegangan Martingale, melakukan pegangan yang sesuai apabila menilai titik oversold, dengan keuntungan kecil. Ia boleh memperoleh keuntungan yang berterusan dan stabil, tetapi juga ada risiko tertentu. Ia boleh dioptimumkan lagi dengan cara menetapkan stop loss, menyesuaikan parameter dan sebagainya.

Kod sumber strategi
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Stavolt

//@version=5
strategy("RSI Martingale Strategy", overlay=true, default_qty_type=strategy.cash, currency=currency.USD)

// Inputs
rsiLength = input(14, title="RSI Length")
oversoldThreshold = input(30, title="Oversold Threshold") // Keeping RSI threshold
profitTargetPercent = input(0.5, title="Profit Target (%)") / 100
initialInvestmentPercent = input(5, title="Initial Investment % of Equity")

// Calculating RSI
rsiValue = ta.rsi(close, rsiLength)

// State variables for tracking the initial entry
var float initialEntryPrice = na
var int multiplier = 1

// Entry condition based on RSI
if (rsiValue < oversoldThreshold and na(initialEntryPrice))
    initialEntryPrice := close
    strategy.entry("Initial Buy", strategy.long, qty=(strategy.equity * initialInvestmentPercent / 100) / close)
    multiplier := 1

// Adjusting for errors and simplifying the Martingale logic
// Note: This section simplifies the aggressive position size adjustments without loops
if (not na(initialEntryPrice))
    if (close < initialEntryPrice * 0.995) // 0.5% drop from initial entry
        strategy.entry("Martingale Buy 1", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 2)
        multiplier := 2 // Adjusting multiplier for the next potential entry

    if (close < initialEntryPrice * 0.990) // Further drop
        strategy.entry("Martingale Buy 2", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 4)
        multiplier := 4

    // Additional conditional entries could follow the same pattern

// Checking for profit target to close positions
if (strategy.position_size > 0 and (close - strategy.position_avg_price) / strategy.position_avg_price >= profitTargetPercent)
    strategy.close_all(comment="Take Profit")
    initialEntryPrice := na // Reset for next cycle