Стратегия торговли по сетке показателей РСИ

Автор:Чао Чжан, Дата: 2024-01-29 11:42:46
Тэги:

img

Обзор

Стратегия торговли по сетке показателей RSI объединяет технические индикаторы RSI и CCI с подходом торговли по фиксированной сетке. Она использует значения индикаторов RSI и CCI для определения сигналов входа, и назначает ордера на получение прибыли и дополнительные ордера на получение прибыли на основе фиксированного коэффициента прибыли и количества сеток. Стратегия также включает в себя механизм хеджирования против волатильных движений цен.

Логика стратегии

Условия въезда

Длинные сигналы генерируются, когда 5-минутный и 30-минутный RSI ниже пороговых значений, а 1-часовой CCI ниже порога.

Примите условия прибыли

Уровень цены получения прибыли рассчитывается с использованием входной цены и целевого коэффициента прибыли.

Условия входа в сеть

После первого заказа оставшиеся заказы фиксированного размера сетки размещаются один за другим, пока не будет достигнуто указанное количество сеток.

Механизм хеджирования

Если цены повышаются с момента вступления за пределами установленного порогового процента хеджирования, все открытые позиции хеджируются путем их закрытия.

Механизм обращения

Если цена падает выше установленного порогового процента отступления от входа, все ожидаемые заказы отменяются, ожидая новых возможностей для входа.

Анализ преимуществ

  • Объединяет показатели RSI и CCI для повышения рентабельности
  • Цели фиксированной сети с фиксированной прибылью для повышения уверенности
  • Интегрированные средства хеджирования от колебаний цен
  • Механизм обращения снижает убытки

Анализ рисков

  • Ложные сигналы от показателей
  • Ценовые скачки проникают через пороги хеджирования
  • Невозможность повторного ввода на обратных операциях

Эти риски могут быть смягчены путем корректировки параметров показателей, расширения диапазона хеджирования, сокращения диапазона реверсии.

Области улучшения

  • Проверьте больше комбинаций показателей
  • Исследование адаптивного получения прибыли
  • Оптимизировать логику сетки

Заключение

Стратегия RSI Grid определяет входы с помощью индикаторов, а блокировки в стабильных прибылях с использованием фиксированной сети принимают прибыль и входы. Она также включает хеджирование волатильности и повторное вхождение после обращений. Интеграция нескольких механизмов помогает снизить торговые риски и повысить уровень прибыльности. Дальнейшая оптимизация индикаторов и настроек может улучшить производительность в режиме реального времени.


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

Больше