Umgekehrte Logikstrategie für die letzten N Kerzen


Erstellungsdatum: 2023-12-26 11:00:29 zuletzt geändert: 2023-12-26 11:00:29
Kopie: 1 Klicks: 696
1
konzentrieren Sie sich auf
1623
Anhänger

Umgekehrte Logikstrategie für die letzten N Kerzen

Überblick

Die Hauptidee dieser Strategie ist es, nach der Farbe der letzten N K-Linien zu entscheiden, ob man mehr oder weniger macht. Wenn die letzten N K-Linien alle grün sind, macht man mehr; wenn die letzten N K-Linien alle rot sind, macht man weniger.

Strategieprinzip

Diese Strategie basiert auf folgenden wichtigen Parametern:

  1. numCandlesToCheck: Gibt die Anzahl der zu überprüfenden K-Zeilen an
  2. numCandlesToExit: Die Anzahl der K-Kunden, die nach dem Halten der Position aussteigen müssen
  3. inverseLogic: Parameter für die Umkehrung der Logik, die die ursprüngliche polygonale Logik in Echtzeit umkehrt

Die Schlüssellogik besteht darin, nur K-Linien zu durchlaufen und in Echtzeit die Anzahl der Green-K-Linien und der Red-K-Linien zu ermitteln. LastNCandlesRed wird als wahr markiert, wenn eine Reihe von Red-K-Linien ≥numCandlesToCheck ist. LastNCandlesGreen wird als wahr markiert, wenn eine Reihe von Green-K-Linien ≥numCandlesToCheck ist.

Wenn lastNCandlesGreen wahr ist, wird mehr getan, wenn der InverseLogic-Argument falsch ist; wenn wahr, wird null gemacht. Im Gegensatz dazu, wenn lastNCandlesRed wahr ist, wird null gemacht, wenn der InverseLogic-Argument falsch ist; wenn wahr, wird mehr getan.

Unabhängig davon, wie viel Zeit der Kauf dauert, wird der barsSinceEntry-Zähler nach dem Eröffnen der Position auf 0 zurückgesetzt. Wenn barsSinceEntry größer als oder gleichnumCandlesToExit ist, wird die aktuelle Position ausgeglichen.

Analyse der Stärken

Es ist eine interessante Strategie, die K-Linien-Farbentscheidung zu nutzen, die mit den Parametern der Antenne für die Rückwärtslogik-Antenne verbunden ist, die die Logik des Mehrfach-Ausgleichs flexibel anpassen kann. Die Hauptvorteile sind:

  1. Das ist eine neue Denkweise, die die allgemeine Logik des Marktes in eine entgegengesetzte Richtung lenkt.
  2. Der Code ist klar, einfach zu verstehen und zu ändern.
  3. Die optimale Kombination von Parametern kann durch Anpassung der Parameter gefunden werden
  4. Die Strategie kann unabhängig von der Situation fortgesetzt werden, um ein Signal zu erzeugen.

Risikoanalyse

Die Strategie birgt auch einige Risiken, die beachtet werden müssen:

  1. Die Farbe der K-Linien ist nicht vollständig, um die Wahrscheinlichkeit eines Fehlsignals zu verfolgen.
  2. Die Optimierung von numCandlesToCheck ist nicht möglich
  3. Die Optimierung des Parameters numCandlesToExit ist nicht möglich
  4. Unzureichende Einstellungen der Reverse-Logic-Parameter können zu Verlusten führen
  5. Probleme mit der wirksamen Kontrolle von Einzelschaden

Um diese Risiken zu kontrollieren und zu optimieren, können folgende Maßnahmen ergriffen werden:

  1. Hinzufügen von zusätzlichen Filtern, um falsche Signale zu vermeiden, wie z. B. die Erhöhung der Trendentscheidung
  2. Suche nach der optimalen Kombination von verschiedenen Parameterwerten
  3. Einschließung von Stop-Loss-Mechanismen zur Kontrolle von Einzelschäden
  4. Überprüfung der Gültigkeit von Reverse-Logik-Parametern

Optimierungsrichtung

Die Strategie kann vor allem in folgenden Bereichen optimiert werden:

  1. Erhöhung der Ausgangsparameter-Beschlüsse und Vermeidung von Einbußen
  2. Optimierung der Werte der Parameter numCandlesToCheck und numCandlesToExit
  3. Der Big Cycle Trend Indicator kombiniert das Fehlsignal mit einem Filter
  4. Stop-Loss- und Stop-Stop-Strategien aufnehmen
  5. Die Wirksamkeit von Validierungsstrategien für verschiedene Sorten überprüfen
  6. Vergleiche der Ertragsrate von Originallogik und Reverse-Logik

Zusammenfassen

Die Gesamtkonzeption der Strategie ist klar und verständlich, und es wird mit einfachen K-Linienfarben bestimmt, um ein Handelssignal zu bilden. Die Anpassung der Strategieparameter kann zu einer reichen Kombination von Änderungen führen, wodurch eine optimale Anpassung für verschiedene Marktumgebungen und -sorten vorgenommen wird. Gleichzeitig muss man auf einige potenzielle Risiken achten und die notwendigen Maßnahmen ergreifen, um die Risiken zu kontrollieren.

Strategiequellcode
/*backtest
start: 2022-12-25 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Last Number of  Candles", overlay=true)

// Define the condition for a green candle
isGreenCandle(candle) =>
    close[candle] > open[candle]

// Define the condition for a red candle
isRedCandle(candle) =>
    close[candle] < open[candle]

// Input to specify the number of candles to check
numCandlesToCheck = input(5, title="Number of Candles to Check")
numCandlesToExit = input(2, title="Number of Candles To Exit")  // Corrected the input title

// Initialize variables to count consecutive green and red candles
var int consecutiveGreenCandles = 0
var int consecutiveRedCandles = 0

// Initialize barsSinceEntry outside the loop
var int barsSinceEntry = 0

// Loop through the last "numCandlesToCheck" candles
for i = 0 to numCandlesToCheck - 1
    if isGreenCandle(i)
        consecutiveGreenCandles := consecutiveGreenCandles + 1
        consecutiveRedCandles := 0 // Reset the count for consecutive red candles
    else if isRedCandle(i)
        consecutiveRedCandles := consecutiveRedCandles + 1
        consecutiveGreenCandles := 0 // Reset the count for consecutive green candles

// Check if the last "numCandlesToCheck" candles are green or red
lastNCandlesGreen = consecutiveGreenCandles >= numCandlesToCheck
lastNCandlesRed = consecutiveRedCandles >= numCandlesToCheck

// Calculate the quantity based on the investment value and current asset price
investmentValue = input(10000, title="Investment Value")
var assetPrice = close
var quantity = investmentValue / assetPrice


inverseLogic = input(false, title="inverseLogic")

// Entry condition: Open a buy order if the last "numCandlesToCheck" candles are green
if lastNCandlesGreen
    if inverseLogic
        strategy.entry("Short", strategy.long, qty = quantity)
    else 
        strategy.entry("Buy", strategy.long, qty = quantity)// Reset barsSinceEntry when entering a trade
    barsSinceEntry := 0

// Entry condition: Open a short order if the last "numCandlesToCheck" candles are red
if lastNCandlesRed
    if inverseLogic
        strategy.entry("Buy", strategy.long, qty = quantity)

    else 
        strategy.entry("Short", strategy.short, qty = quantity)
    // Reset barsSinceEntry when entering a trade
    barsSinceEntry := 0

// Increment barsSinceEntry
barsSinceEntry := barsSinceEntry + 1

// Exit condition: Close the position after 2 bars
if barsSinceEntry >= numCandlesToExit
    strategy.close("Buy")
    strategy.close("Short")