Stratégie de rupture de la ligne argentée Momentum


Date de création: 2024-02-01 15:01:55 Dernière modification: 2024-02-01 15:01:55
Copier: 2 Nombre de clics: 622
1
Suivre
1617
Abonnés

Stratégie de rupture de la ligne argentée Momentum

Aperçu

Cette stratégie est une stratégie d’achat et de vente basée sur l’indicateur de dynamique des prix MACD et la ligne de parité et s’applique à la période d’une heure pour l’argent (XAG/USD, XAG/EUR). Le point clé est de déterminer le moment où la combinaison de la tendance des prix et de l’indicateur de dynamique permet de déterminer le renversement de la tendance.

Principe de stratégie

Le MACD est plus fort à court terme lorsqu’il se transforme négativement et qu’il est en hausse. Il génère un signal à plusieurs têtes si le cours de clôture dépasse la moyenne de la tendance haussière. De même, le MACD se transforme négativement et quitte la ligne de signaux et génère un signal à tête vide si le cours de clôture dépasse la moyenne de la tendance baissière.

Plus précisément, la stratégie définit les conditions d’un signal d’entrée à long terme:

  1. La colonne MACD est positive
  2. La colonne actuelle est plus haute que la précédente.
  3. Prix de clôture supérieur à la moyenne
  4. Le prix de clôture est supérieur à celui de près de 3 lignes K.

Les conditions pour juger du signal d’entrée de position courte sont tout à fait l’inverse.

Une fois la position ouverte, il y a un plafond inconditionnel lors de la prochaine clôture de la ligne K. La stratégie ne définit pas de point d’arrêt de la perte, mais poursuit le point de départ de la rupture de la tendance.

Analyse des avantages

Cette stratégie, combinée à des indicateurs de prix et de dynamique, permet de déterminer plus précisément le moment où la tendance est inversée, avec une probabilité de victoire plus élevée. Une méthode de liquidation sans condition de la ligne K peut efficacement éviter une nouvelle perte après l’échec du renversement.

Il n’y a pas d’arrêt-stop-loss et les positions sont ouvertes à pleine capacité pour répondre aux besoins des investisseurs qui recherchent des rendements élevés.

Analyse des risques

Les réglages sans perte sont facilement emprisonnés et présentent un risque élevé de perte. Si le signal de retour échoue et ne peut pas être arrêté à temps, il peut y avoir une perte de fonds importante.

Il est difficile de continuer à capturer les bénéfices de la tendance si une ligne K se ferme sans condition.

Direction d’optimisation

On peut envisager d’ajouter des stratégies de stop loss appropriées pour réduire le risque de pertes sur la base d’achats de rupture avec un taux de victoire plus élevé.

Il est possible de combiner des techniques avancées avec des mécanismes de réouverture après la clôture de la position, pour tenter de capturer des bénéfices de tendance.

Résumer

Cette stratégie est généralement une stratégie de risque élevé et agressive. En raison de la configuration sans perte, l’investisseur doit supporter un risque de perte élevé. Cependant, le taux de rendement élevé peut également être obtenu lors de l’ouverture complète de la position au premier moment après une reprise réussie.

Code source de la stratégie
/*backtest
start: 2023-01-31 00:00:00
end: 2024-01-13 05:20:00
period: 1d
basePeriod: 1h
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/
// © SoftKill21

//@version=4
strategy("XAG strategy 1h",overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
var gica = 0
var marcel = gica+2
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
len = input(10, minval=1, title="Length")
src = input(close, title="Source")
out = sma(src, len)

//distanta = input(1.004)

fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

option1=input(true)
option2=input(true)

long2 =  close > open  and time_cond and close > out and hist > 0 and hist > hist[1] 
short2 =  close < open  and time_cond and close < out and hist < 0 and hist < hist[1] 

long1 = (close > open ) and time_cond and close > out and hist > 0 and  hist > hist[1] and high > high[1] and high[1] > high[2] and close > high[1] and close > high[2] and close > high[3] 
short1 = (close < open)  and time_cond and close < out and hist < 0 and  hist < hist[1] and low < low[1] and low[1] < low[2]  and close < low[1] and close < low[2] and close < low[3] 

if(option1)
    strategy.entry("long",1,when= short1)
    strategy.entry("short",0,when=long1)
    strategy.close_all()

if(option2)

    strategy.entry("long",1,when= short2)
    strategy.entry("short",0,when=long2)
    strategy.close_all()

// if(strategy.openprofit < 0)
//     strategy.close_all()
// if(strategy.openprofit>0)
//     strategy.close("long",when = close < open )
//     strategy.close("short",when = close > open)
//     strategy.close("long",when= close < open)
//     strategy.close("short",when= close> open)


// tp = input(0.0003)
// sl = input(0.005)
// strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
// strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")