RSI 지표 흡수판 거래 전략은 RSI와 CCI 기술 지표를 통합한 고정 격자 거래 방법이다. 이 전략은 RSI와 CCI 지표의 값에 따라 입시 시기를 판단하고, 고정 수익률 비율과 고정 격자 수를 사용하여 정지 주문과 승화 주문을 설정한다. 동시에 전략은 파격적인 가격 변화에 대한 헤지 메커니즘을 통합한다.
5분 및 30분 RSI가 설정된 기준보다 낮고 1시간 CCI가 설정된 기준보다 낮을 때, 더 많은 신호가 발생한다. 이 때 현재 클로즈 가격을 입상 가격으로 기록하고 계정 권익 및 격자 수에 따라 첫 번째 포지션을 계산한다.
입시 가격을 기준으로 설정된 목표 수익률 비율에 따라 수익률을 계산하고, 그 가격 수준에 정지 주문을 설정한다.
첫 번째 주문을 제외한 나머지 고정된 포지션 부가 주문은 입력 신호에 따라 설정된 격자 수에 도달 할 때까지 하나씩 발송됩니다.
입시 가격에 비해 가격이 상승하면 설정된 헤지브레지 값의 비율을 초과하면 모든 지분을 헤지브레지한다.
입시 가격에 비해 가격이 설정된 반전 임계값의 비율을 초과하는 경우, 모든 미완성된 주문을 취소하고 새로운 입시 기회를 기다립니다.
이러한 위험은 지표 매개 변수를 조정하고, 헤드리지 범위를 확장하고, 반전 범위를 줄임으로써 감소될 수 있다.
RSI 지표 흡수판 거래 전략은 지표가 입시 시기를 판단하여 고정된 격자 차단 및 상승을 사용하여 안정적인 수익을 잠금합니다. 동시에 전략은 큰 변동과 반전 후 재입시 장치를 헤지핑합니다. 이러한 여러 장치를 통합하는 전략은 거래 위험을 줄이고 수익률을 높이기 위해 사용될 수 있습니다. 지표와 매개 변수 설정을 추가로 최적화하여 더 나은 실제 거래 효과를 얻을 수 있습니다.
/*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