Dynamische Strategie zum Hinzufügen von Positionen basierend auf RSI


Erstellungsdatum: 2024-02-06 09:44:05 zuletzt geändert: 2024-02-06 09:44:05
Kopie: 1 Klicks: 727
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Strategie zum Hinzufügen von Positionen basierend auf RSI

Überblick

Die Strategie kombiniert den relativ starken Index (RSI) mit dem Martingale-Handelsprinzip. Beim ersten Kauf wird eine Position eröffnet, wenn der RSI unter der Überselllinie liegt. Wenn der Preis weiter sinkt, wird eine Position mit einem Index von 2 eröffnet, um einen Gewinn zu erzielen.

Strategieprinzip

  1. Der RSI-Indikator wird verwendet, um einen Überverkauf zu bestimmen. Der RSI-Zeitraum ist auf 14 eingestellt, der Überverkauf ist auf 30 eingestellt.
  2. Wenn der RSI < 30 ist, wird die erste Position mit 5% der Kontogewinnspanne aufgenommen.
  3. Wenn der Preis um 0,5% niedriger als der erste Einstiegspreis ist, erhöhen Sie die Position um das Zweifache. Wenn der Preis weiter sinkt, erhöhen Sie die Position um das Vierfache.
  4. Jeder Anstieg um 0,5% wird mit einem Ertragsstop ausgeglichen.
  5. Wiederholen Sie die oben genannten Schritte und führen Sie eine Kreislaufgeschäft durch.

Analyse der Stärken

  • Der RSI kann als Überverkaufsmoment genutzt werden, um einen positiven Wert zu erlangen, der relativ niedrig ist.
  • Die Einführung von Martingale-Warehouses könnte dazu führen, dass die durchschnittlichen Preise für die Eröffnung von Ware immer niedriger werden.
  • Kleine Einbußen können zu einem dauerhaften und stabilen Gewinn führen.
  • Es handelt sich dabei um einen Cash-Trading für hochwertige Währungen mit kontrollierbarem Risiko.

Risikoanalyse

  • Wenn die Marktlage langfristig niedrig ist, können die Verluste bei der Bilanzierung weiter zunehmen.
  • Es gibt keine Stop-Loss-Einstellungen und keine Einschränkung für die maximale Verlustmenge.
  • Die Verluste werden durch eine Überlagerung noch verstärkt.
  • Es besteht ein hohes Risiko, dass der Markt weiter sinkt, wenn man mehrere Wege handelt.

Strategieoptimierung

  1. Es ist möglich, einen Stop-Loss-Punkt einzurichten, um den maximalen Verlust zu begrenzen.
  2. Optimieren Sie den RSI-Parameter und suchen Sie nach dem besten Überverkauf-Überkaufsignal.
  3. Ein vernünftiger Stop-Range kann je nach der Volatilität der jeweiligen Währung festgelegt werden.
  4. Die Zinsspanne kann je nach Gesamtvermögen oder je nach Positionsanteil festgelegt werden.

Zusammenfassen

Diese Strategie kombiniert den RSI-Indikator mit dem Martingale-Haufsatzprinzip, um bei Überverkaufsschlüsseln angemessen zu erhöhen und mit einem kleinen Stop-Loss zu profitieren. Sie kann nachhaltig stabile Gewinne erzielen, aber auch ein gewisses Risiko mit sich bringen. Sie kann weiter optimiert werden, indem Sie einen Stop-Loss festlegen, die Parameter anpassen und so weiter.

Strategiequellcode
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Stavolt

//@version=5
strategy("RSI Martingale Strategy", overlay=true, default_qty_type=strategy.cash, currency=currency.USD)

// Inputs
rsiLength = input(14, title="RSI Length")
oversoldThreshold = input(30, title="Oversold Threshold") // Keeping RSI threshold
profitTargetPercent = input(0.5, title="Profit Target (%)") / 100
initialInvestmentPercent = input(5, title="Initial Investment % of Equity")

// Calculating RSI
rsiValue = ta.rsi(close, rsiLength)

// State variables for tracking the initial entry
var float initialEntryPrice = na
var int multiplier = 1

// Entry condition based on RSI
if (rsiValue < oversoldThreshold and na(initialEntryPrice))
    initialEntryPrice := close
    strategy.entry("Initial Buy", strategy.long, qty=(strategy.equity * initialInvestmentPercent / 100) / close)
    multiplier := 1

// Adjusting for errors and simplifying the Martingale logic
// Note: This section simplifies the aggressive position size adjustments without loops
if (not na(initialEntryPrice))
    if (close < initialEntryPrice * 0.995) // 0.5% drop from initial entry
        strategy.entry("Martingale Buy 1", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 2)
        multiplier := 2 // Adjusting multiplier for the next potential entry

    if (close < initialEntryPrice * 0.990) // Further drop
        strategy.entry("Martingale Buy 2", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 4)
        multiplier := 4

    // Additional conditional entries could follow the same pattern

// Checking for profit target to close positions
if (strategy.position_size > 0 and (close - strategy.position_avg_price) / strategy.position_avg_price >= profitTargetPercent)
    strategy.close_all(comment="Take Profit")
    initialEntryPrice := na // Reset for next cycle