Strategi penambahan posisi dinamis berdasarkan RSI


Tanggal Pembuatan: 2024-02-06 09:44:05 Akhirnya memodifikasi: 2024-02-06 09:44:05
menyalin: 1 Jumlah klik: 729
1
fokus pada
1621
Pengikut

Strategi penambahan posisi dinamis berdasarkan RSI

Ringkasan

Strategi ini menggabungkan indeks relatif kuat (RSI) dan prinsip Martingale overbought. Ketika RSI berada di bawah garis oversold, pertama kali membeli dan membuka posisi; kemudian, jika harga terus turun, akan melakukan overbought dengan indeks 2 untuk mendapatkan keuntungan. Strategi ini berlaku untuk perdagangan langsung dengan mata uang dengan nilai pasar tinggi, dan dapat memperoleh keuntungan yang stabil dalam jangka panjang.

Prinsip Strategi

  1. Menggunakan indikator RSI untuk menilai pasar oversold, selama RSI disetel ke 14, oversold diletakkan pada 30 .
  2. Jika RSI < 30, maka 5% dari ekuitas akun akan digunakan untuk membuka posisi pertama.
  3. Jika harga turun 0,5% dari harga masuk pertama, maka Anda harus melakukan 2 kali lebih banyak; jika harga terus turun, maka Anda harus melakukan 4 kali lebih banyak lagi.
  4. Setiap kenaikan sebesar 0,5% akan melunasi posisi dengan cara stop loss.
  5. Ulangi langkah-langkah di atas untuk melakukan transaksi berputar.

Analisis Keunggulan

  • Menggunakan RSI untuk menilai titik oversold pasar, Anda dapat melakukan lebih banyak posisi di titik relatif rendah.
  • Martin Gill menambahkan bahwa harga rata-rata untuk membuka gudang bisa menjadi lebih rendah.
  • Penghentian kecil dapat menghasilkan keuntungan yang stabil dan berkelanjutan.
  • Untuk transaksi langsung dengan mata uang dengan nilai pasar tinggi, risiko dapat dikontrol.

Analisis risiko

  • Jika kondisi pasar terus menurun, maka kerugian yang didapatkan bisa bertambah.
  • Tidak ada pengaturan stop loss, tidak ada batasan kerugian maksimum.
  • Terlalu banyak penimbunan juga akan memperparah kerugian.
  • Perdagangan multi-arah masih memiliki risiko besar untuk terus turun.

Optimasi Strategi

  1. Anda dapat mengatur stop loss untuk membatasi kerugian maksimum.
  2. Optimalkan parameter RSI untuk mencari sinyal oversold terbaik.
  3. Anda dapat mengatur batas yang masuk akal berdasarkan fluktuasi mata uang tertentu.
  4. Anda dapat mengatur margin berdasarkan total aset atau rasio kepemilikan posisi individu.

Meringkaskan

Strategi ini menggabungkan indikator RSI dan prinsip Martingale, melakukan penambahan posisi yang tepat saat menilai titik oversold, dan mendapatkan keuntungan dengan stop loss kecil. Ini dapat memperoleh keuntungan yang stabil dan berkelanjutan, tetapi juga ada risiko tertentu.

Kode 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