Strategi Perdagangan Grid Indikator RSI mengintegrasikan penunjuk teknikal RSI dan CCI dengan pendekatan perdagangan grid tetap. Ia menggunakan nilai penunjuk RSI dan CCI untuk menentukan isyarat masuk, dan menetapkan pesanan keuntungan dan pesanan grid tambahan berdasarkan nisbah keuntungan tetap dan bilangan grid. Strategi ini juga menggabungkan mekanisme lindung nilai terhadap pergerakan harga yang tidak menentu.
Isyarat panjang dihasilkan apabila RSI 5 minit dan 30 minit berada di bawah nilai ambang, dan CCI 1 jam berada di bawah ambang.
Tahap harga mengambil keuntungan dikira menggunakan harga kemasukan dan nisbah keuntungan sasaran.
Selepas pesanan pertama, pesanan grid saiz tetap yang tersisa diletakkan satu demi satu sehingga jumlah grid yang ditentukan dicapai.
Jika harga meningkat melebihi peratusan ambang lindung nilai yang ditetapkan dari kemasukan, semua kedudukan terbuka dilindung nilai dengan menutupnya.
Jika harga jatuh melebihi kadar ambang pembalikan yang ditetapkan dari kemasukan, semua pesanan yang menunggu dibatalkan untuk menunggu peluang kemasukan baru.
Ini boleh dikurangkan dengan menyesuaikan parameter penunjuk, memperluaskan julat lindung nilai, mengurangkan julat pembalikan.
Strategi Grid RSI menentukan entri dengan penunjuk, dan kunci dalam keuntungan yang stabil menggunakan grid tetap mengambil keuntungan dan entri. Ia juga menggabungkan lindung nilai turun naik dan masuk semula selepas pembalikan. Integrasi pelbagai mekanisme membantu mengurangkan risiko perdagangan dan meningkatkan kadar keuntungan. pengoptimuman lebih lanjut penunjuk dan tetapan dapat meningkatkan prestasi 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