
Die Strategie ist ein automatisiertes Handelssystem, das auf einem relativ starken Indikator (RSI) basiert, um potenzielle Bounce-Gelegenheiten zu erfassen, hauptsächlich durch die Identifizierung von Überverkaufszuständen am Markt. Die Strategie verwendet eine progressive Positionserstellung, um mehrere Positionen schrittweise zu erstellen, wenn der RSI niedrig ist, und um das Risiko zu kontrollieren, indem ein Gewinnziel festgelegt wird.
Die Kernlogik der Strategie basiert auf den folgenden Schlüsselelementen:
Die Strategie identifiziert Überverkaufsmöglichkeiten durch den RSI-Indikator, kombiniert mit Pyramiden-Haufen und festen Anteilen, um einen Gewinn zu erzielen und ein vollständiges Handelssystem zu bauen. Der Vorteil der Strategie liegt in der Systematisierung der Operation und der Risikodistribution, aber die Auswirkungen von Markttrends und Parameter-Einstellungen auf die Strategie-Performance müssen beachtet werden. Die Stabilität und Profitabilität der Strategie können durch die Hinzufügung von Optimierungsmaßnahmen wie dynamischen Parameteranpassungen, Stop-Loss-Mechanismen und Marktfiltern weiter verbessert werden.
/*backtest
start: 2024-09-15 00:00:00
end: 2024-12-10 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("RSI Cross Under Strategy", overlay=true, initial_capital=1500, default_qty_type=strategy.percent_of_equity, default_qty_value=6.6)
// Input parameters
rsiLength = input(14, "RSI Length")
rsiOversold = input(28.5, "RSI Oversold Level")
profitTarget = input(900, "Profit Target (%)")
maxPyramiding = input(15, "Max Pyramiding")
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Detect RSI crossunder
rsiCrossunder = ta.crossunder(rsi, rsiOversold)
// Calculate the profit target price
entryPrice = strategy.position_avg_price
targetPrice = entryPrice * (1 + profitTarget / 100)
// Buy condition
if (rsiCrossunder and strategy.position_size <= maxPyramiding * strategy.equity * 0.066)
strategy.entry("Buy", strategy.long)
// Take profit condition
if (strategy.position_size > 0 and high >= targetPrice)
strategy.close("Buy", qty_percent = 50)
// Plot buy signals
plotshape(rsiCrossunder, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
// Plot sell signals (when position is partially closed)
plotshape(strategy.position_size > 0 and high >= targetPrice, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Plot RSI
plot(rsi, "RSI", color=color.blue, linewidth=2)
hline(rsiOversold, "RSI Oversold", color=color.red, linestyle=hline.style_dashed)
// Plot entry and target prices
plot(strategy.position_size > 0 ? entryPrice : na, "Entry Price", color=color.green, linewidth=2, style=plot.style_linebr)
plot(strategy.position_size > 0 ? targetPrice : na, "Target Price", color=color.red, linewidth=2, style=plot.style_linebr)
// Display strategy information
var table infoTable = table.new(position.top_right, 3, 6, border_width=1)
table.cell(infoTable, 0, 0, "Strategy Info", bgcolor=color.blue, text_color=color.white)
table.cell(infoTable, 0, 1, "RSI Length: " + str.tostring(rsiLength))
table.cell(infoTable, 0, 2, "RSI Oversold: " + str.tostring(rsiOversold))
table.cell(infoTable, 0, 3, "Profit Target: " + str.tostring(profitTarget) + "%")
table.cell(infoTable, 0, 4, "Order Size: 6.6% of total")
table.cell(infoTable, 0, 5, "Max Pyramiding: " + str.tostring(maxPyramiding) + " times")