Die Dual Shadow Reversal Strategie ist eine kurzfristige Handelsstrategie, die auf Kerzenmustern basiert. Sie identifiziert potenzielle Umkehrmöglichkeiten, indem sie das spezielle Kerzenmuster erkennt, bei dem zwei aufeinanderfolgende Kerzen keine Schatten haben. Die Strategie ist einfach und einfach umzusetzen, hat aber auch bestimmte Risiken zu beachten.
Die Kernlogik dieser Strategie besteht darin, das
Nach der Theorie der technischen Analyse deutet dieses Doppelschattenmuster häufig auf eine bevorstehende Trendwende hin. Der Preisschwankungsbereich innerhalb eines sehr engen Bereichs bei zwei aufeinanderfolgenden Kerzen zeigt die Ausgleichung der Kauf- und Verkaufskräfte an, was auf eine wahrscheinliche Umkehr hindeutet.
Nach dem Erkennen des Doppelschattenmusters wird die Strategie bei der nächsten Candle
Die Strategielogik ist unkompliziert und leicht verständlich, mit einfacher Mustererkennung, die einfach umzusetzen ist.
Es verwendet das klassische Dual-Shadow-Reversal-Muster, das einige technische Analyse-Rationalität hat.
Ein seltener Handel trägt dazu bei, Kosten und Risiken zu reduzieren.
Es ist einfach, Backtesting-Funktionen hinzuzufügen und Parameter zu optimieren.
Der Musterhandel beruht auf historischen Chartstatistiken und Wahrscheinlichkeiten, und Abweichungen können auftreten.
Obwohl doppelte Schatten auf eine Umkehrung hindeuten, kann die tatsächliche Umkehrung nicht eintreten oder dauern.
Die Festgewinnzone kann mit schnelllebigen Märkten nicht gut umgehen.
Wenn man sich nur begrenzte Informationen über Kerzen ansieht, kann das zu übertriebenen Einträgen führen.
Verwenden Sie Trendindikatoren, um Gegentrendgeschäfte zu vermeiden.
Verwenden Sie Warte-für-Bestätigung-Einträge, um die tatsächliche Umkehrung zu bestätigen.
Einstellen dynamischer Stop-Loss auf Basis von ATR anstelle einer festen Dauer.
Verwenden Sie maschinelles Lernen, um zu bestimmen, welche Dual-Shadow-Muster zuverlässiger sind.
Die Dual-Shadow-Reversal-Strategie nutzt das klassische Konzept des Pattern-Tradings auf einfache und intuitive Weise, geeignet für Anfänger und dient gleichzeitig als modulare Komponente für Algos.
/*backtest start: 2023-10-30 00:00:00 end: 2023-11-06 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("No Shadow Candles", overlay=true) //set inputs bars_until_close_trade = input(1,"Bars Until Close", minval = 1) backtest_option = input(true,"Backtest on Twice alert?", bool) //set conditions up = close > close[1] and low >= open and high <= close down = close < close[1] and low >= close and high <= open up2 = (close > close[1] and low >= open and high <= close) and (close[1] > close[2] and low[1] >= open[1] and high[1] <= close[1]) down2 = (close < close[1] and low >= close and high <= open) and (close[1] < close[2] and low[1] >= close[1] and high[1] <= open[1]) close_trade = barssince(up or down) == bars_until_close_trade close_trade2 = barssince(up2 or down2) == bars_until_close_trade //plot indicators plotshape(up,"Up Marker", shape.triangleup, location.belowbar, color = olive, size = size.tiny, transp = 50) plotshape(down,"Down Marker", shape.triangledown, location.abovebar, color = orange, size = size.tiny, transp = 50) plotshape(up2,"Up Twice Marker", shape.triangleup, location.belowbar, color = white, size = size.small) plotshape(down2,"Down Twice Marker", shape.triangledown, location.abovebar, color = white, size = size.small) plotshape(close_trade,"Close Trigger", shape.circle, location.belowbar, color = fuchsia, size = size.tiny, transp = 50) plotshape(close_trade2,"Close Trigger2 (After Twice Alert)", shape.circle, location.belowbar, color = red, size = size.small) //Strategy Testing // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(7, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop //Entry and Close settings if testPeriod() and backtest_option == true strategy.entry("up2", true, when = up2, limit = close) strategy.close("up2", when = close_trade) if testPeriod() and backtest_option == false strategy.entry("up", true, when = up, limit = close) strategy.close("up", when = close_trade)