Strategi Perdagangan Penyedut Penunjuk RSI


Tarikh penciptaan: 2024-01-29 11:42:46 Akhirnya diubah suai: 2024-01-29 11:42:46
Salin: 0 Bilangan klik: 732
1
fokus pada
1617
Pengikut

Strategi Perdagangan Penyedut Penunjuk RSI

Gambaran keseluruhan

Strategi perdagangan RSI adalah kaedah perdagangan grid tetap yang mengintegrasikan RSI dan CCI sebagai petunjuk teknikal. Strategi ini menilai masa masuk berdasarkan nilai RSI dan CCI, menggunakan nisbah keuntungan tetap dan jumlah grid tetap untuk menetapkan pesanan berhenti dan pesanan kenaikan.

Prinsip Strategi

Syarat kemasukan

Apabila RSI 5 minit dan 30 minit berada di bawah nilai set, dan CCI 1 jam juga di bawah nilai set, ia menghasilkan isyarat melakukan banyak. Pada masa ini, harga tutup semasa direkodkan sebagai harga masuk dan satuan kedudukan pertama dikira berdasarkan kepentingan dan jumlah grid akaun.

Syarat berhenti faedah

Dengan harga masuk sebagai asas, harga keuntungan dikira mengikut peratusan keuntungan sasaran yang ditetapkan, dan menetapkan pesanan berhenti pada tahap harga tersebut.

Syarat pembiayaan

Kecuali untuk satu unit pertama, unit penambahan kedudukan tetap yang lain akan dikeluarkan satu demi satu selepas isyarat masuk sehingga jumlah grid yang ditetapkan dicapai.

Peranti perlindungan

Jika harga meningkat berbanding harga masuk melebihi peratusan nilai terhad yang ditetapkan, semua pegangan yang dipegang akan dilindungi.

Mekanisme pembalikan

Jika harga turun lebih daripada peratusan nilai terbalik yang ditetapkan berbanding harga masuk, semua pesanan yang belum diserahkan akan dibatalkan dan menunggu peluang masuk baru.

Analisis kelebihan

  • Meningkatkan peluang keuntungan dengan menggabungkan RSI dan CCI
  • Menetapkan keuntungan sasaran dengan menggunakan grid tetap, meningkatkan kepastian keuntungan
  • Mekanisme perlindungan bersepadu yang berkesan terhadap risiko turun naik harga yang teruk
  • Menyertai mekanisme pembalikan boleh mengurangkan kerugian

Analisis risiko

  • Probabiliti penunjuk menghasilkan isyarat yang salah
  • Harga yang bergelombang melampaui paras perlindungan.
  • Tidak boleh masuk semula selepas berbalik

Risiko ini dapat dikurangkan dengan menyesuaikan parameter penunjuk, meningkatkan margin risiko dan mengurangkan margin reversal.

Arah pengoptimuman

  • Lebih banyak jenis kombinasi yang boleh diuji
  • Kaedah penangguhan penyesuaian boleh dipelajari
  • Untuk mengoptimumkan logik penambahan

ringkaskan

Strategi perdagangan RSI dengan penarikan indikator menilai masa masuk melalui indikator, menggunakan hentian dan penambahan kedudukan grid tetap untuk mengunci keuntungan yang stabil. Strategi ini juga mempunyai mekanisme masuk semula setelah berbalik dan berbalik. Strategi yang mengintegrasikan beberapa mekanisme ini dapat digunakan untuk mengurangkan risiko perdagangan dan meningkatkan kadar keuntungan.

Kod sumber strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Custom RSI/CCI Strategy with Fixed Grid", shorttitle="INVESTCOIN_RSI_CCI_Fixed_Grid", overlay=true)

// Input parameters
input_rsi_5min_value = 55
input_rsi_30min_value = 65
input_cci_1hr_value = 85
input_profit_target_percent = 0.6 // Target profit in percentage
input_grid_size = 15 // Number of orders in grid
input_hedging_percent = 20 // Percentage price change for hedging
input_first_order_offset = 0.2 // Offset for the first order in percentage
input_reversal_percent = 0.4 // Percentage price change for reversal

// Calculating the RSI and CCI values
rsi_5min = ta.rsi(close, 5)
rsi_30min = ta.rsi(close, 30)
cci_1hr = ta.cci(close, 60)

// Define strategy conditions based on the provided screenshot
long_condition = (rsi_5min < input_rsi_5min_value) and (rsi_30min < input_rsi_30min_value) and (cci_1hr < input_cci_1hr_value)

// Plot signals
plotshape(series=long_condition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Initialize a variable to store the entry price
var float entry_price = na

// Initialize a variable to store the profit target
var float profit_target = na

// Hedge condition based on price change percentage
var float hedge_price = na

// Initialize a variable to count the total number of orders
var int total_orders = 0

// Calculate the initial order size based on account equity and grid size
var float initial_order_size = 1 / input_grid_size / 100

// Entry orders with fixed size
if (long_condition and total_orders < 9000)
    // Place first order with an offset
    if total_orders == 0
        strategy.order("First Long", strategy.long, qty=initial_order_size, limit=close * (1 - input_first_order_offset / 100))
    total_orders := total_orders + 1
    
    // Place remaining grid orders
    for i = 1 to input_grid_size - 1
        if (total_orders >= 9000)
            break // Stop if max orders reached
        strategy.entry("Long_" + str.tostring(i), strategy.long, qty=initial_order_size)
        total_orders := total_orders + 1

// Calculate the profit target in currency
if (long_condition)
    entry_price := close // Store the entry price when the condition is true

if (not na(entry_price))
    profit_target := entry_price * input_profit_target_percent / 100 // Calculate the profit target

// Setting up the profit target
if (not na(profit_target))
    strategy.exit("Take Profit", "Long", limit=entry_price + profit_target)

// Hedge by closing all positions if the price increases by the hedging percentage
if (strategy.position_size > 0)
    hedge_price := close * (1 + input_hedging_percent / 100)

if (not na(hedge_price) and close >= hedge_price)
    strategy.close_all(comment="Hedging")


// Reversal condition based on the price change percentage
var float reversal_price = na

if (strategy.position_size > 0 and total_orders > 1) // Check if at least one grid order has been placed
    reversal_price := entry_price * (1 - input_reversal_percent / 100)

// Cancel trades and wait for a new entry point if the price reverses by the specified percentage
if (not na(reversal_price) and close <= reversal_price)
    strategy.cancel_all()
    total_orders := 0 // Reset the total orders count after cancellation