コンセプト:
移動平均値の種類はたくさんあります.
しかし,効果は違います.
トレンドの確認とフォローアップは,多くの移動平均を異なる方法で使用する必要があります.
このコンセプトは,組み合わせの移動平均を生成することであり,各MAタイプは傾向の確認の高い程度を提供するために重量化することができます.
体重は設定で設定可能で,サンプルとして長さ50が使用されています.
ATRは良くない結果をもたらしたので,オプションとして残された.
ソースは変更できます
この指標は,より広い時間枠で良いレジスタンスサポート値を提供します.また,ブレイクと崩壊の指示も提供します.フォローアウトは主に有効です.
警戒状態は 直接 ディスコードに移植できるようになっています
警報には 独自のメッセージが設定されなければなりません
楽しい取引だ
/*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)