
Die Hauptidee dieser Strategie ist es, zu erkennen, ob der Preis den niedrigsten Preis innerhalb des angegebenen Zeitraums überschreitet, und wenn er den niedrigsten Preis überschreitet, wartet er darauf, dass der Preis zur Gleichung zurückkehrt. Es gehört zu den Strategien der Trendverfolgung.
Die Strategie erhält den niedrigsten Preis (lowestLow) in der angegebenen Periode durch Aufruf der ta.lowest-Methode des Pine-Skriptes und vergleicht ihn mit dem niedrigsten Preis (prevLow) der vorherigen Periode.
Wenn lowestLow in der neuesten Periode niedriger ist als prevLow in der vorherigen Periode, wird ein Mehrwertsignal ausgegeben. Nach dem Mehrwertsignal wird der Wert durch einen Vergleich mit dem höchsten Preis in der angegebenen Periode, dem HighestHigh, ausgeglichen, wenn der Höchste Preis in der neuesten Periode größer ist als der höchste Preis der vorherigen Periode.
Die Strategie erlaubt es, die Auslöserbedingungen zu wählen, bei denen der Mindestpreis 1, 2, 3 oder 4 vorherige Mindestpreise in Folge durchbrechen muss, um die Häufigkeit des Handels zu kontrollieren.
Darüber hinaus zeichnet die Strategie die niedrigsten und höchsten Preisdurchschnitte (lowestLow und highestHigh) auf der Grafik ab, um die Veränderungen der Trends zu visualisieren.
Diese Strategie erfasst eine Trendwende nach einem Breakout-Neu-Tief und hat eine hohe Gewinnrate.
Es ist möglich zu wählen, wie oft der Minimumpreis überschritten wird, und die Häufigkeit des Handels zu steuern.
Die Abbildung der Mittellinien hilft dabei, die Trendwechselpunkte intuitiv zu erkennen.
Die Strategie ist einfach, klar und verständlich.
Sie können verschiedene Aktien und Zeiträume für Optimierungstests konfigurieren.
Ein falscher Durchbruch kann nicht die Trendwende bestimmen und kann zu Verlusten führen.
Die Optimierung der Konfiguration mit verschiedenen Parameterkombinationen muss getestet werden, da die Häufigkeit der Transaktionen zu hoch oder zu niedrig sein kann.
Die Parameter müssen für verschiedene Aktien angepasst werden.
Unzureichende Rücklaufzeiten können zu einer Überanpassung führen.
Nach dem Durchbruch kann es zu weiteren innovativen Niedrigpreisen kommen, die mit Stop-Loss-Systemen riskiert werden.
Erhöhung der Stop-Loss-Mechanismen, wie z. B. mobile Stop-Losses, Tracking Stop-Losses usw., um einzelne Verluste zu kontrollieren.
Optimierung der Anzahl der Durchbrüche, Ausgleich der Handelsfrequenz und der Signalqualität.
Optimierung von Parametern für verschiedene Aktien und Zeiträume.
Es gibt eine Reihe von Möglichkeiten, wie man sich in der Welt der Finanzen positionieren kann.
Erwägen Sie die Einbeziehung von Trendindikatoren und vermeiden Sie den Gegenhandel.
Verschiedene Exit-Signale werden getestet.
Diese Strategie, die durch die Überwachung von Mindestpreis-Break-Opportunitäten zu erfassen, ist eine typische Breakout-Return-Strategie. Die Vorteile sind einfach und leicht zu verstehen, die Handelsfrequenz ist kontrollierbar und kann in einer Vielzahl von Aktien angewendet werden. Aber es gibt auch eine gewisse Gefahr von falschen Durchbrüchen, die Filteroptimierung durch Zusatzbedingungen erfordern, während die Risiken sehr notwendig sind. Durch umfassende Tests und Optimierungen kann die Strategie zu einem stabilen, zuverlässigen, quantifizierten Handelssystem werden.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
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/
// © merovinh
//@version=5
strategy(title="Merovinh - Mean Reversion Lowest low",
overlay = true,
default_qty_type = strategy.percent_of_equity,
initial_capital = 10000,
default_qty_value = 10,
commission_type = strategy.commission.percent,
slippage = 1,
commission_value = 0.04)
GR_TIME = 'Time Period'
bars = input(9, title = "Minimum number of bars", tooltip = "The minimum number of bars before updating lowest low / highest high")
numberOfLows = input.string(defval='One', title='Number of broken lows', options=['One', 'Two', 'Three', 'Four'])
//Period
var prevLow = .0
var prevHigh = .0
var prevLow2 = .0
var prevLow3 = .0
var prevLow4 = .0
truetime = true
highestHigh = ta.highest(high, bars)
lowestLow = ta.lowest(low, bars)
if numberOfLows == 'One'
if truetime and prevLow > 0 and lowestLow < prevLow
strategy.entry('long', strategy.long)
if numberOfLows == 'Two'
if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2
strategy.entry('long', strategy.long)
if numberOfLows == 'Three'
if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3
strategy.entry('long', strategy.long)
if numberOfLows == 'Four'
if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 and prevLow3 < prevLow4
strategy.entry('long', strategy.long)
if truetime and prevHigh > 0 and highestHigh > prevHigh
strategy.close('long')
if prevLow != lowestLow
prevLow4 := prevLow3
prevLow3 := prevLow2
prevLow2 := prevLow
prevLow := lowestLow
prevHigh := highestHigh
plot(lowestLow, color=color.green, linewidth=1, title="Lowest Low Line")
plot(highestHigh, color=color.green, linewidth=1, title="Highest High Line")