
Стратегия торговли с прицепом 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