Letzte N Kerze Umgekehrte Logik Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-26 11:00:29
Tags:

img

Übersicht

Die Hauptidee dieser Strategie besteht darin, lang oder kurz basierend auf der Farbe der letzten N Kerzen zu bestimmen. Wenn die letzten N Kerzen grün sind, gehen Sie lang; wenn die letzten N Kerzen rot sind, gehen Sie kurz. Der einzigartige Teil ist die Hinzufügung eines inverse logic Parameters, der die ursprüngliche Logik umkehren kann. Wenn der inverse logic Parameter wahr ist, werden die letzten N grünen Kerzen kurz und die letzten N roten Kerzen lang gehen.

Strategieprinzip

Diese Strategie stützt sich hauptsächlich auf folgende wichtige Parameter:

  1. numCandlesToCheck: Wird verwendet, um die Anzahl der zu überprüfenden Kerzen anzugeben
  2. numCandlesToExit: Gibt die Anzahl der Kerzen an, die nach der Öffnungsposition aussteigen müssen
  3. inverseLogic: Der umgekehrte Logikparameter. Bei True wird die ursprüngliche lange und kurze Logik umgekehrt

Die Schlüssellogik besteht darin, die letzten numCandlesToCheck Kerzen durch eine For-Schleife zu führen und die aufeinander folgenden grünen und roten Kerzen in Echtzeit zu zählen. Wenn aufeinander folgende rote Kerzen ≥numCandlesToCheck sind, markiert lastNCandlesRed als wahr. Wenn aufeinander folgende grüne Kerzen ≥numCandlesToCheck sind, markiert lastNCandlesGreen als wahr.

Wenn lastNCandlesGreen wahr ist, geht es lang, wenn inverseLogic falsch ist, andernfalls geht es kurz. Im Gegenteil, wenn lastNCandlesRed wahr ist, geht es kurz, wenn inverseLogic falsch ist, andernfalls geht es lang.

Egal ob lang oder kurz, der BarSinceEntry-Zähler wird nach der Eröffnungsposition auf 0 zurückgesetzt.

Analyse der Vorteile

Dies ist eine interessante Strategie, die die Farbe der Kerze zur Entscheidungsfindung verwendet, mit einem umgekehrten Logik-Parameter, der die lange und kurze Logik flexibel anpassen kann.

  1. Die Idee ist neuartig und kann eine umgekehrte Investition gegen die gemeinsame Logik des Marktes bilden
  2. Der Code ist klar und prägnant, leicht zu verstehen und zu ändern
  3. Kann die optimale Parameterkombination finden, indem Parameter angepasst werden
  4. Unabhängig von den Marktbedingungen kann diese Strategie weiter laufen und Signale generieren

Risikoanalyse

Für diese Strategie sind auch einige Risiken zu beachten:

  1. Die Farbe der Kerze kann die Marktbedingungen nicht vollständig repräsentieren, es besteht die Gefahr, dass ein falsches Signal verfolgt wird
  2. Es ist nicht möglich, den optimalen Wert für numCandlesToCheck zu ermitteln
  3. Es ist nicht möglich, den optimalen Wert für numCandlesToExit zu ermitteln
  4. Ein falscher Parameter der umgekehrten Logik kann Verluste verstärken.
  5. Nicht in der Lage, den Verlust eines einzigen Stopps wirksam zu kontrollieren

Um diesen Risiken entgegenzuwirken, können folgende Maßnahmen zur Kontrolle und Optimierung ergriffen werden:

  1. Erhöhen Sie andere Filter, um falsche Signale zu vermeiden, z. B. um den Trend für einen längeren Zeitrahmen zu bestimmen
  2. Verschiedene Parameterwerte durchlaufen, um eine optimale Parameterkombination zu finden
  3. Hinzufügen eines Stop-Loss-Mechanismus zur Kontrolle einzelner Verluste
  4. Überprüfung der Wirksamkeit des Parameters der inversen Logik

Optimierungsrichtlinien

Die wichtigsten Optimierungsrichtungen für diese Strategie sind:

  1. Erhöhen Sie den Auftragsbestand, um nicht eingeschlossen zu werden.
  2. Optimieren der Werte von numCandlesToCheck und numCandlesToExit
  3. Hinzufügen von Trendindikatoren für einen höheren Zeitrahmen, um falsches Signal zu filtern
  4. Hinzufügen von Stop Loss und Take Profit
  5. Rückversuche an verschiedenen Produkten zur Überprüfung der Wirksamkeit
  6. Vergleichen Sie die Rendite zwischen ursprünglicher und umgekehrter Logik

Schlussfolgerung

Die allgemeine Idee dieser Strategie ist klar und leicht zu verstehen, die Erzeugung von Handelssignalen einfach basierend auf Kerzenfarbe Bestimmung. Anpassung von Parametern können reiche Kombination Variationen für die Optimierung auf verschiedene Marktumgebungen und Produkte zu bilden. Auch müssen auf einige potenzielle Risiken achten und die notwendigen Maßnahmen ergreifen, um sie zu kontrollieren. Durch kontinuierliche Bereicherung der Strategie Inhalt, kann diese Strategie zu einem wertvollen zu halten Optimierung für den langfristigen Handel werden.


/*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")


Mehr