Les États membres

Auteur:ChaoZhang est là., Date: 2022-05-12 15:19:33 Je vous en prie.
Les étiquettes:Le taux d'intérêtSMALa WMARMAATR

Conception:

Il existe un grand nombre de moyennes mobiles disponibles.

Cependant, leur efficacité est différente.

La confirmation et le suivi des tendances nécessitent un grand nombre de moyennes mobiles à utiliser différemment.

L'idée ici est de générer une moyenne mobile combinée, chaque type de MA pouvant être pondéré pour fournir un degré plus élevé de confirmation de la tendance.

Les poids sont configurables dans les réglages, et comme échantillon 50 longueur a été utilisé.

L'ATR n'a pas donné de bons résultats, il a donc été conservé comme optionnel.

La source peut être modifiée.

L'indicateur fournit une bonne valeur de support de résistance dans le plus grand laps de temps.

La condition d'alerte a été rendue telle qu'elle peut être directement portée à la discorde.

Pour les alertes, il faut configurer son propre message.

Bonne négociation.

img


/*backtest
start: 2022-04-11 00:00:00
end: 2022-05-10 23:59:00
period: 1h
basePeriod: 15m
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/
// © bhavishya

//@version=5
indicator("ESSMA", overlay=true)
//inputs
source = input(close, "Source", group="Source")
length1 = input(50, "Length1", group = "Length")


w1 = input.float(2.0, "SMA Weight", group="Weights")
w2 = input.float(2.0, "EMA Weight", group="Weights")
w3 = input.float(2.0, "WMA Weight", group="Weights")
w4 = input.float(2.0, "SMMA Weight", group="Weights")
w5 = input.float(2.0, "RMA Weight", group="Weights")


useatr = input.bool(false, "Use ATR", group="ATR")

atrLen    = input.int(title="ATR Length", defval=14, group="ATR")

// functions

smma(src, length) =>
	smma =  0.0
	smma := na(smma[2]) ? ta.sma(src, length) : (smma[2] * (length - 1) + src) / length
	smma

essma(src,length) => 
    essma = 0.0
    
    smma = smma(src * w4,length) 
    ema = ta.ema(src * w2, length) 
    sma = ta.sma(src * w1, length) 
    wma = ta.wma(src * w3, length) 
    rma = ta.rma(src * w5, length) 
    
    essma := (smma/w4+ema/w2+sma/w1 - wma/w3 - rma/w5 + open + close)/(3) 
    essma
// calucations

// atr and MAs

atr = ta.atr(atrLen)

usesource = useatr ? atr : source

essma1 = essma(usesource, length1)
sessma1 = ta.wma(essma1, length1)
// plots


p1 = plot(essma1, "ESSMA", color.green)

ps1 = plot(sessma1, "ESSMA Smooth", color.red)

bool up = na
bool down = na

if (ta.crossover(essma1,sessma1))
    up := true
    
    
if (ta.crossunder(essma1, sessma1))
    down := true
    
plotshape(up, style=shape.labelup, location = location.belowbar, color=color.lime, text="B", textcolor=color.black)
plotshape(down, style=shape.labeldown, location = location.abovebar, color=color.orange, text="S", textcolor=color.black)


// alerts

alertcondition(up, "ESSMA UP", '{"content":"ESSMA BUY @ {{close}}" : "{{ticker}} int : {{interval}} - essma : {{plot_0}} / sessma {{plot_1}}"}')
alertcondition(down, "ESSMA DOWN", '{"content":"ESSMA SELL @ {{close}}" : "{{ticker}} int : {{interval}} -  essma :{{plot_0}} /sessma : {{plot_1}}"}')

if up
    strategy.entry("Enter Long", strategy.long)
else if down
    strategy.entry("Enter Short", strategy.short)

Relationnée

Plus de