Stratégie de négociation en grille de l'indicateur RSI

Auteur:ChaoZhang est là., Date: 2024-01-29 11:42:46 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de négociation de grille de l'indicateur RSI intègre les indicateurs techniques RSI et CCI avec une approche de négociation de grille fixe. Elle utilise les valeurs des indicateurs RSI et CCI pour déterminer les signaux d'entrée, et établit des ordres de profit et des ordres de grille supplémentaires basés sur un ratio de profit fixe et le nombre de grilles.

La logique de la stratégie

Conditions d'entrée

Les signaux longs sont générés lorsque le RSI de 5 minutes et le RSI de 30 minutes sont inférieurs aux valeurs de seuil et que le CCI d'une heure est inférieur au seuil.

Prenez des conditions de profit

Le niveau de prix de prise de profit est calculé en utilisant le prix d'entrée et le ratio de profit cible.

Conditions d'entrée dans le réseau

Après la première commande, les commandes de grille de taille fixe restantes sont passées une par une jusqu'à ce que le nombre de grilles spécifié soit atteint.

Mécanisme de couverture

Si le prix augmente au-delà du pourcentage de seuil de couverture fixé à partir de l'entrée, toutes les positions ouvertes sont couvertes en les clôturant.

Mécanisme d'inversion

Si le prix tombe au-delà du pourcentage de seuil de renversement fixé à partir de l'entrée, tous les ordres en attente sont annulés en attendant de nouvelles opportunités d'entrée.

Analyse des avantages

  • Combine les indicateurs RSI et CCI pour améliorer la rentabilité
  • Objectifs de réseau fixe: verrouillage des bénéfices pour accroître la certitude
  • Protection intégrée contre les fluctuations volatiles des prix
  • Le mécanisme d'inversion réduit les pertes

Analyse des risques

  • Faux signaux des indicateurs
  • Les hausses de prix dépassent les seuils de couverture
  • Ne pas réinscrire sur les renversements

Ces effets peuvent être atténués en ajustant les paramètres de l'indicateur, en élargissant la plage de couverture, en réduisant la plage de renversement.

Les domaines d'amélioration

  • Testez plus de combinaisons d'indicateurs
  • Recherche adaptative et prise de profit
  • Optimiser la logique de la grille

Conclusion

La stratégie de grille RSI détermine les entrées avec des indicateurs, et les verrous dans les bénéfices stables en utilisant le réseau fixe prennent les bénéfices et les entrées. Elle intègre également la couverture de la volatilité et la réentrée après les inversions.


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

Plus de