Stratégie de négociation Momentum


Date de création: 2024-01-26 11:07:47 Dernière modification: 2024-01-26 11:07:47
Copier: 16 Nombre de clics: 570
1
Suivre
1617
Abonnés

Stratégie de négociation Momentum

Aperçu

La stratégie d’appel d’offres dynamique est une stratégie de négociation de courte et moyenne ligne, qui combine un indicateur de moyenne mobile et un modèle de morphologie de ligne K pour trouver des opportunités de négociation en identifiant des points de rupture et des points de rebond. La stratégie s’applique à la négociation de produits financiers à fort effet de levier tels que les options binaires, les options binaires et les futures.

Principe de stratégie

La logique de base de cette stratégie est basée sur une moyenne mobile simple de 5 jours. Lorsque le prix doit franchir cette moyenne, un sommet ou une ligne K basse est formé, ce qui est un signal potentiel de survente ou de dépréciation. Lorsque le prix franchit la moyenne, la deuxième ligne K se ferme.

Lorsqu’un prix franchit la moyenne des 5 jours à la hausse et se ferme, le prix le plus élevé de la ligne K à la hausse précédente est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de rupture, le prix le plus bas est le point de

La stratégie fournit également une condition de filtrage optionnelle, à savoir que le prix de clôture de la ligne K actuelle est légèrement inférieur ou légèrement supérieur à celui de la ligne K en saut, ce qui évite une partie du faux signal.

Analyse des forces stratégiques

  • La stratégie est claire, concise, facile à comprendre et à mettre en œuvre.
  • Les moyennes mobiles permettent d’identifier les tendances et les retournements
  • La forme de la ligne K permet de trouver des points de transaction plus précis.
  • Le principe de l’équité des risques et des avantages
  • Ajustement des paramètres en fonction de la variété et de la période de transaction
  • Fournit des conditions de filtrage sélectionnables pour réduire les signaux erronés

Analyse stratégique des risques

  • Comme d’autres stratégies d’indicateurs techniques, il peut également y avoir des risques d’être piégé, d’arrêter la poursuite
  • L’indicateur de la moyenne mobile est en retard et risque de manquer les grandes lignes
  • La tendance à l’erreur est plus fréquente dans les tremblements de terre
  • Une mauvaise configuration des paramètres de la stratégie peut entraîner une survente des transactions

Il est possible de réduire le risque en utilisant des méthodes telles que des stop-loss raisonnables, des positions convenablement assouplies et des options de trading à basse fréquence. Il est également possible d’envisager de filtrer le signal en combinaison avec d’autres indicateurs.

Orientation de l’optimisation de la stratégie

  • Vous pouvez tester différentes combinaisons de paramètres pour choisir le meilleur.
  • Optimisation du filtrage du signal en combinaison avec d’autres indicateurs ou graphiques
  • Des méthodes telles que l’arrêt dynamique et l’arrêt mobile peuvent être envisagées.
  • Paramètres d’optimisation automatique qui peuvent être combinés avec des modèles d’apprentissage automatique
  • Des plug-ins pour l’arrêt automatique et l’arrêt de l’arrêt
  • Vous pouvez essayer des stratégies de validation de la robustesse à travers les variétés et les cycles.

Résumer

Cette stratégie est une stratégie de trading en ligne courte et moyenne qui est facile à comprendre et à mettre en œuvre. Elle utilise des moyennes mobiles et des lignes de saut K pour identifier les points de basculement de la tendance et opérer dans un cadre rationnel de contrôle du risque. Bien qu’il y ait encore de la place pour des améliorations, son idée centrale est universelle et mérite d’être apprise et appliquée.

Code source de la stratégie
/*backtest
start: 2024-01-18 00:00:00
end: 2024-01-25 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TradingInsights2

//@version=5
strategy("Ultimate 5EMA Strategy By PowerOfStocks", overlay=true)

Eusl = input.bool(false, title="Enable the Extra SL shown below")
usl = input.int(defval=5, title='Value to set SL number of points below-low or above-high', minval=1, maxval=100)
RiRe = input.int(defval=3, title='Risk to Reward Ratio', minval=1, maxval=25)
ShowSell = input.bool(true, 'Show Sell Signals')
ShowBuy = input.bool(false, 'Show Buy Signals')
BSWCon = input.bool(defval=false, title='Buy/Sell with Extra Condition - candle close')

// Moving Average 

ema5 = ta.ema(close, 5)
pema5 = plot(ema5, '5 Ema', color=color.new(#da1a1a, 0), linewidth=2)

var bool Short = na
var bool Long = na
var shortC = 0
var sslhitC = 0
var starhitC = 0
var float ssl = na
var float starl = na
var float star = na
var float sellat = na
var float alert_shorthigh = na
var float alert_shortlow = na
var line lssl = na
var line lstar = na
var line lsell = na
var label lssllbl = na
var label lstarlbl = na
var label lselllbl = na
var longC = 0
var lslhitC = 0
var ltarhitC = 0
var float lsl = na
var float ltarl = na
var float ltar = na
var float buyat = na
var float alert_longhigh = na
var float alert_longlow = na
var line llsl = na
var line lltar = na
var line lbuy = na
var label llsllbl = na
var label lltarlbl = na
var label lbuylbl = na

ShortWC = low[1] > ema5[1] and low[1] > low and shortC == 0 and close < close[1]
ShortWOC = low[1] > ema5[1] and low[1] > low and shortC == 0
Short := BSWCon ? ShortWC : ShortWOC
sslhit = high > ssl and shortC > 0 and sslhitC == 0
starhit = low < star and shortC > 0 and starhitC == 0
LongWC = high[1] < ema5[1] and high[1] < high and longC == 0 and close > close[1]
LongWOC = high[1] < ema5[1] and high[1] < high and longC == 0
Long := BSWCon ? LongWC : LongWOC
lslhit = low < lsl and longC > 0 and lslhitC == 0
ltarhit = high > ltar and longC > 0 and ltarhitC == 0

if Short and ShowSell
    shortC := shortC + 1
    sslhitC := 0
    starhitC := 0
    alert_shorthigh := high[1]
    if Eusl
        ssl := high[1] + usl
        starl := BSWCon ? ((high[1] - close) + usl) * RiRe : ((high[1] - low[1]) + usl) * RiRe
    else
        ssl := high[1]
        starl := BSWCon ? (high[1] - close) * RiRe : (high[1] - low[1]) * RiRe
    star := BSWCon ? close - starl : low[1] - starl
    sellat := BSWCon ? close : low[1]
    // lssl := line.new(bar_index, ssl, bar_index, ssl, color=color.new(#fc2d01, 45), style=line.style_dashed)
    // lstar := line.new(bar_index, star, bar_index, star, color=color.new(color.green, 45), style=line.style_dashed)
    // lsell := line.new(bar_index, sellat, bar_index, sellat, color=color.new(color.orange, 45), style=line.style_dashed)
    // lssllbl := label.new(bar_index, ssl, style=label.style_none, text='Stop Loss - Short' + ' (' + str.tostring(ssl) + ')', textcolor=color.new(#fc2d01, 35), color=color.new(#fc2d01, 35))
    // lstarlbl := label.new(bar_index, star, style=label.style_none, text='Target - Short' + ' (' + str.tostring(star) + ')', textcolor=color.new(color.green, 35), color=color.new(color.green, 35))
    // lselllbl := label.new(bar_index, sellat, style=label.style_none, text='Sell at' + ' (' + str.tostring(sellat) + ')', textcolor=color.new(color.orange, 35), color=color.new(color.orange, 35))

if sslhit == false and starhit == false and shortC > 0
    // line.set_x2(lssl, bar_index)
    // line.set_x2(lstar, bar_index)
    // line.set_x2(lsell, bar_index)
    sslhitC := 0
    starhitC := 0
else
    if sslhit
        shortC := 0
        sslhitC := sslhitC + 1
    else
        if starhit
            shortC := 0
            starhitC := starhitC + 1

if Long and ShowBuy
    longC := longC + 1
    lslhitC := 0
    ltarhitC := 0
    alert_longlow := low[1]
    if Eusl
        lsl := low[1] - usl
        ltarl := BSWCon ? ((close - low[1]) + usl) * RiRe : ((high[1] - low[1]) + usl) * RiRe
    else
        lsl := low[1]
        ltarl := BSWCon ? (close - low[1]) * RiRe : (high[1] - low[1]) * RiRe
    ltar := BSWCon ? close + ltarl : high[1] + ltarl
    buyat := BSWCon ? close : high[1]
    llsl := line.new(bar_index, lsl, bar_index, lsl, color=color.new(#fc2d01, 45), style=line.style_dotted)
    lltar := line.new(bar_index, ltar, bar_index, ltar, color=color.new(color.green, 45), style=line.style_dotted)
    lbuy := line.new(bar_index, buyat, bar_index, buyat, color=color.new(color.orange, 45), style=line.style_dotted)
    llsllbl := label.new(bar_index, lsl, style=label.style_none, text='Stop Loss - Long' + ' (' + str.tostring(lsl) + ')', textcolor=color.new(#fc2d01, 35), color=color.new(#fc2d01, 35))
    lltarlbl := label.new(bar_index, ltar, style=label.style_none, text='Target - Long' + ' (' + str.tostring(ltar) + ')', textcolor=color.new(color.green, 35), color=color.new(color.green, 35))
    lbuylbl := label.new(bar_index, buyat, style=label.style_none, text='Buy at' + ' (' + str.tostring(buyat) + ')', textcolor=color.new(color.orange, 35), color=color.new(color.orange, 35))

if lslhit == false and ltarhit == false and longC > 0
    // line.set_x2(llsl, bar_index)
    // line.set_x2(lltar, bar_index)
    // line.set_x2(lbuy, bar_index)
    lslhitC := 0
    ltarhitC := 0
else
    if lslhit
        longC := 0
        lslhitC := lslhitC + 1
    else
        if ltarhit
            longC := 0
            ltarhitC := ltarhitC + 1

strategy.entry("Buy", strategy.long, when=Long)
strategy.entry("Sell", strategy.short, when=Short)
strategy.close("ExitBuy", when=sslhit or starhit)
strategy.close("ExitSell", when=lslhit or ltarhit)

plotshape(ShowSell and Short, title='Sell', location=location.abovebar, offset=0, color=color.new(#e74c3c, 45), style=shape.arrowdown, size=size.normal, text='Sell', textcolor=color.new(#e74c3c, 55))
plotshape(ShowSell and sslhit, title='SL Hit - Short', location=location.abovebar, offset=0, color=color.new(#fc2d01, 25), style=shape.arrowdown, size=size.normal, text='SL Hit - Short', textcolor=color.new(#fc2d01, 25))
plotshape(ShowSell and starhit, title='Target Hit - Short', location=location.belowbar, offset=0, color=color.new(color.green, 45), style=shape.arrowup, size=size.normal, text='Target Hit - Short', textcolor=color.new(color.green, 55))
plotshape(ShowBuy and Long, title='Buy', location=location.belowbar, offset=0, color=color.new(#2ecc71, 45), style=shape.arrowup, size=size.normal, text='Buy', textcolor=color.new(#2ecc71, 55))
plotshape(ShowBuy and lslhit, title='SL Hit - Long', location=location.belowbar, offset=0, color=color.new(#fc2d01, 25), style=shape.arrowdown, size=size.normal, text='SL Hit - Long', textcolor=color.new(#fc2d01, 25))
plotshape(ShowBuy and ltarhit, title='Target Hit - Long', location=location.abovebar, offset=0, color=color.new(color.green, 45), style=shape.arrowup, size=size.normal, text='Target Hit - Long', textcolor=color.new(color.green, 55))

if ShowSell and Short
    alert("Go Short@ " + str.tostring(sellat) + " : SL@ " + str.tostring(ssl) + " : Target@ " + str.tostring(star) + " ", alert.freq_once_per_bar )

if ShowBuy and Long
    alert("Go Long@ " + str.tostring(buyat) + " : SL@ " + str.tostring(lsl) + " : Target@ " + str.tostring(ltar) + " ", alert.freq_once_per_bar )

///// End of code