Die Ressourcen sind geladen. Beförderung...

Doppelindikatoren Bottom-Buy-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-04 17:39:13
Tags:

img

Übersicht

Diese Strategie identifiziert Kaufmöglichkeiten durch Kombination von Handelsvolumen und RSI-Indikatoren. Sie verwaltet Positionen mit abgestuften Take-Profit-Zielen, um Gewinne schrittweise zu erzielen.

Strategie Logik

Die Strategie verwendet zwei Indikatoren, um Kaufsignale zu identifizieren - Handelsvolumen und RSI. Insbesondere geht es lang, wenn das Volumen das 2,5-fache des 70-Tage-Durchschnittsvolumens übersteigt, zusammen mit einem RSI, der unter 30 fällt (Überverkauft).

Nach der Einrichtung einer Long-Position setzen die Strategien 5 Take-Profit-Ziele von 0,4%, 0,6%, 0,8%, 1,0% und 1,2% fest. Sie schließen Positionen schrittweise basierend auf der Positionsquote (20%, 40%, 60%, 80% und 100%) bis zum vollständigen Ausstieg ab.

Durch die Schrittweise Gewinnentnahme zielt es darauf ab, Gewinne inmitten kleiner Aufwärtsbewegungen zu erzielen, anstatt auf größere Läufe zu warten, die sich möglicherweise nicht verwirklichen.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Verwendung von Doppelindikatoren verhindert falsche Ausbrüche. Erhöhtes Volumen bestätigt die Bottom-Überzeugung, während überverkaufte RSI-Signale Rückkehrchancen bedeuten.

  2. Wenn Sie Gewinne in Chargen erzielen, können Sie kleine Aufwärtsgewinne innerhalb von Bandbreiten maximieren.

  3. Es ist in den Märkten mit begrenztem Marktumfang, insbesondere in den Märkten mit institutionell unvollendeten Bereichen, hervorzuheben.

  4. Ein breiter Stop-Loss erlaubt den Märkten Raum für Whipsaws, bevor sie gestoppt werden, und verhindert einen vorzeitigen Ausstieg aus kurzfristigen Retracements.

Risikoanalyse

Die wichtigsten Risiken sind:

  1. Dual Signal Fehlinterpretation führt zu falschen Eingaben.

  2. Die Risiken, die mit der Abnahme von Gewinnen verbunden sind, werden durch eine kleine Positionsgröße vermieden, was dazu beiträgt, die Gewinnspanne und die Positionsquoten zu optimieren.

  3. Bei einem breiten Stopp entstehen potenziell große Verluste bei einem einzigen Handel.

  4. Eine starke Entwicklung der Märkte birgt Richtungsrisiken. Achten Sie auf eine größere Zeitstruktur.

  5. Eine hohe Handelsfrequenz erhöht die Transaktionskosten.

Optimierungsrichtlinien

Die möglichen Optimierungsrichtungen sind:

  1. Optimierung der Volumen- und RSI-Kombinationen, um falsche Signale zu reduzieren, Hinzufügen von Bestätigungen wie MACD und KDJ.

  2. Verschiedene Gewinnniveaus und Positionsverhältnisse für ideale Konfigurationen testen, möglicherweise mit dynamischen Mechanismen.

  3. Einführung von Positionsgrößenregelungen zur Verringerung des maximalen Risikos pro Handel durch Risikomanagementsysteme.

  4. Einbeziehung von Trendmetriken zur Erkennung von Umkehrungen für zeitnahe Stop-Losses.

  5. Nutzung von algorithmischem Backtesting zur schnellen Iteration von Parametern für beste Konfigurationen.

  6. Lernen aus institutionellen HFT-Slip/Kostenkontrollmodellen zur Verbesserung der Effizienz trotz hoher Umsätze.

Schlussfolgerung

Diese doppelte Indikator-Mittelumkehrstrategie identifiziert Bodensignale mit Volumenanstiegen und überverkauftem RSI für den Kauf, wobei sie durch abgestufte Ausgänge allmähliche Gewinne in den Bereichen erzielt. Sie profitiert häufig, ohne große Läufe zu benötigen. Zu den Nachteilen gehören die Risiken einer Fehlinterpretation von Signalen und ein hoher Umsatz. Bestätigungsoptimierung und Risikokontrollen verbessern die Robustheit. Ausgezeichnet für die kurzfristige Gewinnernte in unruhigen Märkten.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wielkieef

//@version=5

strategy(title='BTFD strategy [3min]', overlay=true, pyramiding=5, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)


// Volume

vol_sma_length = input.int(70, title='Volume lenght  ', minval=1)
Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5


// Rsi

rsi_lenght = input.int(20, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)

rsi_overs = rsi_value <= 30
rsi_overb = rsi_value >= 70


// logic

tp_1 = input.float(0.4,"  TP 1", minval=0.1, step=0.1)
tp_2 = input.float(0.6,"  TP 2", minval=0.2, step=0.1)
tp_3 = input.float(0.8,"  TP 3", minval=0.3, step=0.1)
tp_4 = input.float(1.0,"  TP 4", minval=0.4, step=0.1)
tp_5 = input.float(1.2,"  TP 5", minval=0.5, step=0.1)

q_1 = input.int(title='  % TP 1 Q ', defval=20,  minval=1, step=10)
q_2 = input.int(title='  % TP 2 Q ', defval=40,  minval=1, step=10)
q_3 = input.int(title='  % TP 3 Q ', defval=60,  minval=1, step=10)
q_4 = input.int(title='  % TP 4 Q ', defval=80,  minval=1, step=10)
q_5 = input.int(title='  % TP 5 Q ', defval=100, minval=1, step=10)

sl = input.float(5.0, '% Stop Loss', step=0.1)

long_cond = Volume_condt and rsi_overs

// this code is from author RafaelZioni, modified by wielkieef
per(procent) =>
    strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
// --------------------------------------------------------------------------------------------------------------------

if  long_cond
    strategy.entry('BUY', strategy.long)

strategy.exit('TP 1', qty_percent=q_1, profit=per(tp_1), loss=per(sl) )
strategy.exit('TP 2', qty_percent=q_2, profit=per(tp_2), loss=per(sl) )
strategy.exit('TP 3', qty_percent=q_3, profit=per(tp_3), loss=per(sl) )
strategy.exit('TP 4', qty_percent=q_4, profit=per(tp_4), loss=per(sl) )
strategy.exit('TP 5', qty_percent=q_5, profit=per(tp_5), loss=per(sl) )

 
// by wielkieef


Mehr