Die Ressourcen sind geladen. Beförderung...

Alligator Langfristiger Trend nach Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-05-17 15:40:13
Tags:SMMASMA

img

Übersicht

Die Alligator Long-Term Trend Following Trading Strategy ist eine quantitative Handelsstrategie, die auf dem Williams Alligator-Indikator basiert. Die Strategie verwendet eine Kombination von gleitenden Durchschnitten mit verschiedenen Perioden, um die wichtigsten Trends auf dem Markt zu erfassen, die für mittelfristige bis langfristige Trends geeignet sind.

Strategieprinzipien

Die Alligator Long-Term Trend Following Trading Strategy verwendet drei gleitende Durchschnitte mit unterschiedlichen Perioden, um den Alligator-Indikator zu konstruieren, nämlich:

  1. Lippenlinie: 5-Perioden SMMA, verschoben 3 Taktstufen in die Zukunft

Wenn sich der Alligator-Indikator nach oben öffnet, d.h. die Kieferlinie am unteren Ende, die Zähnelinie in der Mitte und die Lippenlinie am oberen Ende, und der Preis über dem Alligator-Indikator liegt, wird die Strategie eine Long-Position eröffnen.

Wenn der Preis unter die Kieferlinie bricht, schließt die Strategie die Long-Position. Dies stellt sicher, dass wir nicht weiterhin Positionen in einem Bärenmarkt halten.

Strategische Vorteile

  1. Für den mittelfristigen bis langfristigen Handel geeignet: Die Strategie basiert auf dem Alligator-Indikator, der die wichtigsten Trends auf dem Markt effektiv erfassen kann und daher für mittelfristige Trends sehr geeignet ist.
  2. Niedrige Handelsfrequenz: Die Strategie eröffnet nur Positionen, wenn ein Trend bestätigt wird, und schließt Positionen, wenn der Trend endet, was zu einer relativ niedrigen Handelsfrequenz führt, die die Handelskosten effektiv senken kann.
  3. Weite Anwendungsbereiche: Die Strategie kann auf verschiedene Finanzmärkte wie Forex, Kryptowährungen usw. mit großer Anpassungsfähigkeit und Flexibilität angewendet werden.
  4. Keine Optimierung der Parameter erforderlich: Die Strategie folgt vollständig den Markttrends und erfordert keine Optimierung der Parameter, so dass sie einfach und einfach zu bedienen ist.

Strategische Risiken

  1. Mögliche verpasste kurzfristige Chancen: Da sich die Strategie darauf konzentriert, mittelfristige bis langfristige Trends zu erfassen, können einige kurzfristige Handelsmöglichkeiten verpasst werden.

Strategieoptimierungsrichtlinien

  1. Kombination mit anderen technischen Indikatoren: Versuchen Sie, den Alligator-Indikator mit anderen technischen Indikatoren wie RSI, MACD usw. zu kombinieren, um die Genauigkeit und Zuverlässigkeit der Strategie zu verbessern.
  2. Optimieren Sie die Parameter-Einstellungen: Obwohl die Strategie keine Parameter-Optimierung erfordert, können Sie versuchen, verschiedene Zeitrahmen und Handelsziele zu testen, um die optimale Parameterkombination zu finden.

Zusammenfassung


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

Verwandt

Mehr