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
Diese Strategie stützt sich hauptsächlich auf folgende wichtige Parameter:
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.
Dies ist eine interessante Strategie, die die Farbe der Kerze zur Entscheidungsfindung verwendet, mit einem
Für diese Strategie sind auch einige Risiken zu beachten:
Um diesen Risiken entgegenzuwirken, können folgende Maßnahmen zur Kontrolle und Optimierung ergriffen werden:
Die wichtigsten Optimierungsrichtungen für diese Strategie sind:
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")