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

La stratégie de la ligne d'argent

Auteur:ChaoZhang est là., Date: 2024-02-01 15:01:55 La date est fixée à:
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de rupture basée sur l'indicateur de dynamique des prix MACD et la moyenne mobile, adaptée à un délai d'une heure sur l'argent (XAG/USD, XAG/EUR).

La logique de la stratégie

Lorsque l'histogramme MACD passe de négatif à positif et qu'il traverse continuellement la ligne de signal, cela indique que la tendance haussière à court terme est plus forte. En même temps, si le prix de clôture traverse la tendance à la hausse de la moyenne mobile, il génère un signal long. De même, lorsque l'histogramme MACD passe de positif à négatif et tombe en dessous de la ligne de signal, et que le prix de clôture tombe en dessous de la tendance à la baisse de la moyenne mobile, il génère un signal court.

Plus précisément, les conditions de détermination du signal d'entrée longue de cette stratégie sont les suivantes:

  1. L'histogramme MACD est positif
  2. La barre d'histogramme actuelle est plus élevée que la précédente.
  3. Le prix de clôture est supérieur à la moyenne mobile
  4. Le prix de clôture est supérieur au prix le plus élevé des 3 dernières lignes K.

Les conditions de détermination du signal d'entrée courte sont tout le contraire.

Une fois la position ouverte, elle est fermée inconditionnellement à la fermeture de la ligne K suivante.

Analyse des avantages

Cette stratégie combine des indicateurs de prix et de dynamique pour déterminer plus précisément le moment des renversements de tendance avec un taux de gain plus élevé.

Aucun paramètre de prise de profit et de stop loss ne répond aux besoins des investisseurs qui recherchent des rendements élevés.

Analyse des risques

L'absence de stop loss peut facilement entraîner une fixation des pertes et un risque plus élevé de perte.

La manière de clôture inconditionnelle dans la ligne K suivante rend difficile la capture continue des bénéfices de tendance.

Suggestions d'optimisation

Il est possible d'envisager d'ajouter des stratégies d'arrêt-perte appropriées sur la base d'achats de rupture à gain élevé afin de réduire le risque de perte.

Il est également possible de combiner des techniques avancées pour réentrer dans les positions après la clôture, en essayant de capturer continuellement les bénéfices de tendance.

Résumé

En général, cette stratégie appartient à une stratégie agressive à haut risque. En raison de l'absence de paramètre de stop loss, les investisseurs doivent supporter un plus grand risque de perte. Mais si l'inversion est réussie, l'opportunité d'ouvrir des positions avec des lots complets en premier lieu peut également entraîner des rendements élevés.


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


Plus de