Stratégie révolutionnaire Morningstar K-line


Date de création: 2023-09-14 16:36:32 Dernière modification: 2023-09-14 16:36:32
Copier: 0 Nombre de clics: 647
1
Suivre
1617
Abonnés

Principe de stratégie

Cette stratégie utilise la forme de la ligne K de l’aurore pour effectuer des transactions de suivi de tendance dans plusieurs directions. Les principaux signaux de négociation proviennent des points où la ligne K de l’aurore a franchi la ligne moyenne.

La logique de l’opération est la suivante:

  1. Calculer une moyenne mobile à 60 jours EMA60

  2. Déterminer la forme de la ligne K de l’étoile de l’aube, comprenant la première ligne négative, la deuxième ligne de croix ou ligne de clôture, la troisième ligne de soleil et la rupture des deux premières lignes K les plus hautes

  3. Le point de rupture de la ligne de l’étoile du matin au-dessus de l’EMA60

  4. Définir des objectifs de profit ou de suivi de stop-loss comme stratégie de sortie

  5. Le stop-loss est défini comme le point le plus bas des 100 dernières lignes K.

  6. Les paramètres de la ligne de l’étoile du matin peuvent être ajustés pour déterminer la capacité

Cette stratégie exploite pleinement les caractéristiques de détournement de tendance de la ligne de l’étoile du matin pour suivre la direction de la tendance. Elle peut être plus efficace dans les marchés très volatils.

Avantages stratégiques

  • La ligne de l’étoile de l’aube est un bon indicateur d’un renversement de tendance à court terme.

  • Entrée de point de rupture et arrêt de suivi, suivi de la tendance

  • Réglage de la fenêtre de retour pour éviter les pertes excessives

Risque stratégique

  • Les paramètres doivent être optimisés par des tests répétés

  • Un arrêt trop proche peut entraîner un arrêt trop fréquent

  • Il y a des gens qui ne savent pas comment s’y prendre, et qui ne savent pas comment se comporter.

Résumer

La stratégie identifie les caractéristiques de la ligne K de l’étoile du matin et suit la direction de la tendance. Les paramètres peuvent être ajustés pour s’adapter aux différentes conditions du marché.

Code source de la stratégie
/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-23 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
// © TheSocialCryptoClub
// Author: @devil_machine

//@version=5
strategy("PURE MORNING 2.0", overlay=true, pyramiding=1,
         initial_capital=10000, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=10,
         slippage=1,backtest_fill_limits_assumption=1,use_bar_magnifier= true,
         commission_type=strategy.commission.percent, commission_value=0.075
         )

//------------------------------
// Indicators
//------------------------------

rma=ta.rma(close, 60)
mfi=ta.mfi(close, 10)
rsi=ta.rsi(close, 14)
atr7= ta.atr(7)
ema60=ta.ema(close,60)

plot(ema60,"EMA 60", color.new(color.aqua,0))

//------------------------------
// Doji settings 
//------------------------------
//-----------------------------------------------MORNING DOJI STAR CODE
range1= high - low
tolerance = input.float(defval=0.09, title="MDS Tolerance",group= "DOJI SETTINGS", minval=0.01, maxval=1, step=0.01)/100

candle1 = math.abs (close[2] - open[2]) /range1[2] > .6 and close[2] < open[2]
candle2 = ((open[1] > close[1] and open[1] < close[1]*(1+tolerance)) or (open[1] < close[1] and open[1] > close[1]*(1-tolerance)) and close [1]<close[2]+range1[2])
candle3 = close > open and close > (close[2]+range1[2])

MDS = candle1 and candle2 and candle3

plotshape (MDS and close > ema60, text="MD", textcolor=color.yellow, offset=-1, location=location.abovebar, color=color.green, style=shape.triangleup)
plotshape (MDS and close < ema60, text="MD", textcolor=color.olive, offset=-1, location=location.belowbar, color=color.red, style=shape.triangledown)

//------------------------------------------------DOJI CODE

tolerance1= input.float(defval=0.05, title="DOJI Tolerance",group= "DOJI SETTINGS", minval=0.01, maxval=1, step=0.01)/100
Is_OC_Equal= (open > close and open < close*(1+tolerance1)) or (open < close and open > close*(1-tolerance1))

plotshape(Is_OC_Equal and close < ema60, text="D", textcolor=color.red, location=location.belowbar, color=color.red)
plotshape(Is_OC_Equal and close > ema60, text="D", textcolor = color.green, location=location.abovebar, color=color.green)

//------------------------------
// Filter
//------------------------------

xl_tp_percent      = input.float(9,step=0.5, title="Take Profit", group="EXIT LONG") 

sl_type_ll         = input.bool(true, "SL type Lowest Low", group="EXIT LONG")
sl_len             = input.int(100, "Stop Length", group="EXIT LONG")

max_loss_filter    = input.bool(false,"Max Loss Filter", group ="Filter")
filter_percent     = input.int(10, "Max Loss %", group="Filter")

sl_type_percent    = input.bool(false, "SL type Percent", group="EXIT LONG")
xl_sl_percent      = input.float(2,step=.5, title="Stop Loss", group="EXIT LONG") 

filter_stop= max_loss_filter == true ? close - ta.lowest (low, sl_len) < (close*filter_percent)/100 : true

if sl_type_percent == true 
    sl_type_ll := false

//------------------------------
// Entry Long
//------------------------------

el_cond = Is_OC_Equal and close > ta.ema(close, 60) and filter_stop
el_cond_02 = MDS and close > ta.ema(close, 60) and filter_stop

mess = "!buy " + syminfo.ticker // Executor command to buy automatically 

if el_cond 
    strategy.entry ("EL", strategy.long, alert_message = mess,comment = "EL cond 1")

plotshape(el_cond and strategy.position_size == 0, "el_long", shape.circle, color=color.green)

if el_cond_02       
    strategy.entry ("EL", strategy.long, alert_message = mess,comment = "EL cond 2" )

plotshape(el_cond_02 and strategy.position_size == 0, "el_long_02", shape.circle, color=color.green)

//------------------------------
//Exit Long TP - SL
//------------------------------

xl_sl_price = strategy.position_avg_price * (1-xl_sl_percent/100)
xl_tp_price = strategy.position_avg_price * (1+xl_tp_percent/100)

if sl_type_ll == true
    xl_sl_price := ta.lowest (low, sl_len) 

//------------------------------
//Trailing stop 
//------------------------------

xl_ts_percent      = input.float(1,   step=0.5, title= "Trailing theshold", group="TRAILING STOP")
xl_to_percent      = input.float(0.5, step=0.5, title= "Trailing offset",   group="TRAILING STOP")

xl_ts_tick = xl_ts_percent * close/syminfo.mintick/100
xl_to_tick = xl_to_percent * close/syminfo.mintick/100

mess_sell = "!sell " + syminfo.ticker // Executor command to sell automatically 

strategy.exit("XL+SL/TP", "EL", stop=xl_sl_price, limit=xl_tp_price, trail_points=xl_ts_tick, trail_offset=xl_to_tick,comment_loss= "STOP", comment_profit = "PROFIT",comment_trailing = "TS", alert_message = mess_sell)

//------------------------------
// Conditional close on MFI
//------------------------------

xl_cond= ta.crossover(mfi, 90)

if xl_cond
    strategy.close("XL", alert_message = mess_sell)

plotshape(xl_cond, "xl_cond", shape.circle, color=color.red)