RSI Indikator Grid Trading Strategy

Penulis:ChaoZhang, Tanggal: 2024-01-29 11:42:46
Tag:

img

Gambaran umum

Strategi Perdagangan Grid Indikator RSI mengintegrasikan indikator teknis RSI dan CCI dengan pendekatan perdagangan grid tetap. Ini menggunakan nilai indikator RSI dan CCI untuk menentukan sinyal masuk, dan mengatur pesanan keuntungan dan pesanan grid tambahan berdasarkan rasio keuntungan tetap dan jumlah grid. Strategi ini juga menggabungkan mekanisme lindung nilai terhadap pergerakan harga yang tidak menentu.

Logika Strategi

Ketentuan Masuk

Sinyal panjang dihasilkan ketika RSI 5 menit dan 30 menit berada di bawah nilai ambang, dan CCI 1 jam berada di bawah ambang.

Ambil Kondisi Keuntungan

Tingkat harga take profit dihitung dengan menggunakan harga masuk dan rasio target profit.

Kondisi Masuk Jaringan

Setelah pesanan pertama, pesanan grid berukuran tetap yang tersisa ditempatkan satu per satu sampai jumlah grid yang ditentukan tercapai.

Mekanisme lindung nilai

Jika harga naik melebihi persentase ambang lindung nilai yang ditetapkan sejak masuk, semua posisi terbuka dilindung nilai dengan menutupnya.

Mekanisme Pembalikan

Jika harga turun di luar persentase ambang pembalikan yang ditetapkan dari masuk, semua pesanan yang menunggu dibatalkan untuk menunggu peluang masuk baru.

Analisis Keuntungan

  • Menggabungkan indikator RSI dan CCI untuk meningkatkan profitabilitas
  • Target jaringan tetap penguncian keuntungan untuk meningkatkan kepastian
  • Perlindungan lindung nilai terintegrasi terhadap perubahan harga yang tidak menentu
  • Mekanisme pembalikan mengurangi kerugian

Analisis Risiko

  • Sinyal palsu dari indikator
  • Peningkatan harga menembus ambang lindung nilai
  • Kegagalan untuk masuk kembali pada pembalikan

Ini dapat dikurangi dengan menyesuaikan parameter indikator, memperluas rentang lindung nilai, mengurangi rentang pembalikan.

Bidang Peningkatan

  • Uji lebih banyak kombinasi indikator
  • Penelitian adaptif mengambil keuntungan
  • Mengoptimalkan logika grid

Kesimpulan

Strategi RSI Grid menentukan entri dengan indikator, dan mengunci keuntungan stabil menggunakan grid tetap mengambil keuntungan dan entri. Ini juga menggabungkan lindung nilai volatilitas dan re-entry setelah pembalikan. Integrasi beberapa mekanisme membantu mengurangi risiko perdagangan dan meningkatkan tingkat profitabilitas. Optimasi lebih lanjut dari indikator dan pengaturan dapat meningkatkan kinerja langsung.


/*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

Lebih banyak