Les ressources ont été chargées... Je charge...

Tendance à long terme de l' alligator suivant la stratégie de négociation

Auteur:ChaoZhang est là., Date: 2024-05-17 15:40:13 Je vous en prie.
Les étiquettes:Le secteur privéSMA

img

Résumé

Principes de stratégie

L'indicateur Alligator est construit à partir de trois moyennes mobiles avec des périodes différentes.

  1. ligne de la mâchoire: SMMA à 13 périodes, déplacé 8 barres dans le futur
  2. Ligne des lèvres: SMMA à 5 périodes, déplacé 3 mesures dans le futur

Lorsque le prix dépasse la ligne Jaw, la stratégie ferme la position longue, ce qui garantit que nous ne continuerons pas à détenir des positions sur un marché baissier.

Les avantages de la stratégie

  1. Faible fréquence de négociation: la stratégie n'ouvre des positions que lorsqu'une tendance est confirmée et ferme des positions lorsque la tendance se termine, ce qui entraîne une fréquence de négociation relativement faible, ce qui peut réduire efficacement les coûts de négociation.
  2. Large gamme d'applications: la stratégie peut être appliquée à divers marchés financiers, tels que le forex, les crypto-monnaies, etc., avec une forte adaptabilité et flexibilité.

Risques stratégiques

  1. Manque de gestion des risques fixes: la stratégie ne comporte pas de paramètres de gestion des risques fixes et la taille de la position de chaque transaction doit être ajustée en fonction de ses préférences en matière de risque.
  2. Possibilité de manquer des opportunités à court terme: la stratégie étant axée sur la capture des tendances à moyen et long terme, elle risque de manquer certaines opportunités de négociation à court terme.

Directions d'optimisation de la stratégie

  1. Ajouter un module de gestion des risques: envisager d'ajouter des mesures de gestion des risques, telles que le stop-loss, l'ajustement dynamique des positions, etc., pour mieux contrôler les risques.
  2. Optimiser les paramètres: Bien que la stratégie ne nécessite pas d'optimisation des paramètres, vous pouvez essayer de tester en arrière-plan différentes périodes de temps et objectifs de trading pour trouver la combinaison optimale de paramètres.

Résumé


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

Relationnée

Plus de