Die Alligator-Strategie ist eine quantitative Handelsstrategie, die auf dem Williams-Alligator-Indikator basiert. Die Strategie nutzt eine Kombination von gleitenden Durchschnitten aus verschiedenen Perioden, um die wichtigsten Trends des Marktes zu erfassen und ist für den mittleren und langen Zeitraum geeignet. Die Strategie zielt darauf ab, die Richtung und Intensität des Trends durch die Öffnungsrichtung des Alligator-Indikators und die relative Position des Preises gegenüber dem Alligator-Indikator zu bestimmen und somit eine Handelsentscheidung zu treffen.
Die Alligator-Strategie verwendet drei verschiedene Perioden, um die Alligator-Indikatoren zu konstruieren:
Wenn der Alligator-Indikator nach oben in die Öffnungsrichtung geht, d.h. die Jaw-Linie am untersten Ende, die Teeth-Linie in der Mitte und die Lips-Linie am obersten Ende, während der Preis über dem Alligator-Indikator liegt, wird die Strategie mehr gehandelt. Dies zeigt, dass eine Aufwärtstrendwelle bestätigt wurde und wir die Position bis zum Ende des Trends halten möchten.
Wenn der Preis die Jaw-Linie überschreitet, wird die Strategie mehrere Bestellungen ausgleichen. Dies kann garantieren, dass wir keine weitere Position im Bärenmarkt halten.
Die Alligator-Strategie ist eine einfache, einfach zu bedienende, quantitative Handelsstrategie mit vielfältigen Anwendungsmöglichkeiten. Durch die Nutzung der Alligator-Indikatoren, um die wichtigsten Markttrends zu erfassen, kann eine stabile Rendite in der mittleren und langen Zeit erzielt werden. Obwohl die Strategie einige potenzielle Risiken birgt, können die Performance und Stabilität der Strategie durch die Einbindung von Risikomanagementmodulen, die Kombination anderer technischer Indikatoren und die Optimierung der Parameter-Einstellungen weiter verbessert werden. Für Investoren, die einen langfristigen Trend-Tracking-Handel bevorzugen, ist die Alligator-Strategie eine Option, die man in Betracht ziehen sollte.
/*backtest start: 2023-05-11 00:00:00 end: 2024-05-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //_______ <licence> // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Skyrex //_______ <version> //@version=5 //_______ <declaration_statement> strategy(title = "Alligator Long Term Trend Following Strategy [Skyrex.io]", shorttitle = "Alligator Strategy [Skyrex.io]", overlay = true, format = format.inherit, pyramiding = 1, calc_on_order_fills = false, calc_on_every_tick = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, currency = currency.NONE, commission_type = strategy.commission.percent, commission_value = 0.1, slippage = 5) //_______ <constant_declarations> var color skyrexGreen = color.new(#2ECD99, 0) var color skyrexGray = color.new(#F2F2F2, 0) var color skyrexWhite = color.new(#FFFFFF, 0) var color barcolor = na //_______ <inputs> // Trading bot settings sourceUuid = input.string(title = "sourceUuid:", defval = "yourBotSourceUuid", group = "Trading Bot Settings") secretToken = input.string(title = "secretToken:", defval = "yourBotSecretToken", group = "Trading Bot Settings") // Trading Period Settings lookBackPeriodStart = input(title = "Trade Start Date/Time", defval = timestamp('2023-01-01T00:00:00'), group = "Trading Period Settings") lookBackPeriodStop = input(title = "Trade Stop Date/Time", defval = timestamp('2025-01-01T00:00:00'), group = "Trading Period Settings") //_______ <function_declarations> //@function Used to calculate Simple moving average for Alligator //@param src Sourse for smma Calculations //@param length Number of bars to calculate smma //@returns The calculated smma value smma(src, length) => smma = 0.0 smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length smma //@function Used to decide if current candle above the Alligator //@param jaw Jaw line of an Alligator //@param teeth Teeth line of an Alligator //@param lips Lips line of an Alligator //@returns Bool value is_LowAboveAlligator(jaw, teeth, lips) => result = low > jaw and low > lips and low > teeth result //@function Used to decide if current candle below the Alligator //@param jaw Jaw line of an Alligator //@param teeth Teeth line of an Alligator //@param lips Lips line of an Alligator //@returns Bool value is_HighBelowAlligator(jaw, teeth, lips) => result = high < jaw and high < lips and high < teeth result //@function Used to decide if Alligator's mouth is open //@param jaw Jaw line of an Alligator //@param teeth Teeth line of an Alligator //@param lips Lips line of an Alligator //@returns Bool value is_AlligatorHungry(jaw, teeth, lips) => result = lips > jaw[5] and lips > teeth[2] and teeth > jaw[3] result //_______ <calculations> jaw = smma(hl2, 13)[8] teeth = smma(hl2, 8)[5] lips = smma(hl2, 5)[3] jaw_o = smma(hl2, 13) teeth_o = smma(hl2, 8) lips_o = smma(hl2, 5) //_______ <strategy_calls> longCondition = is_LowAboveAlligator(jaw, teeth, lips) and is_AlligatorHungry(jaw_o, teeth_o, lips_o) if (longCondition) strategy.entry(id = "entry1", direction = strategy.long, alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "entry1",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}') if close < jaw strategy.close(id = "entry1", alert_message = '{\n"base": "' + syminfo.basecurrency + '",\n"quote": "' + syminfo.currency + '",\n"position": "close",\n"price": "' + str.tostring(close) + '",\n"sourceUuid": "' + sourceUuid + '",\n"secretToken": "' + secretToken + '",\n"timestamp": "' + str.tostring(timenow) + '"\n}') //_______ <visuals> if strategy.opentrades > 0 barcolor := skyrexGreen else barcolor := skyrexGray barcolor(barcolor) //_______ <alerts>