Sehen Sie, wann sich zwei gleitende Durchschnitte kreuzen. Mit der Möglichkeit, zwischen vier gleitenden Durchschnittsberechnungen zu wählen:
SMA = einfacher gleitender Durchschnitt EMA = exponentieller gleitender Durchschnitt (Standard) WMA = gewichteter gleitender Durchschnitt Lineare = lineare Regression
Die gleitenden Durchschnitte können aus verschiedenen Zeitrahmen gezeichnet werden, wie z.B. der wöchentliche oder 4-Stunden-Zeitrahmen mit HL2, HLC3 oder OHLC4 als Preisquelle für die Berechnung. Darüber hinaus gibt es eine Hintergrundfarbenwarnung und Pfeile, wenn sich die gleitenden Durchschnitte kreuzen, wenn der Preis ebenfalls steigt oder fällt. Und die gleitenden Durchschnitte sind in Abhängigkeit von ihrer Trendrichtung (wenn sie nach oben oder unten trenden) gefärbt.
Zurückprüfung
/*backtest start: 2022-04-23 00:00:00 end: 2022-05-22 23:59:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ study("Moving Average Cross Alert, Multi-Timeframe Option (MTF) (by ChartArt)", shorttitle="CA_-_MA_cross", overlay=true) // ChartArt's Moving Average Cross Indicator // // Version 1.0 // Idea by ChartArt on September 15, 2015. // // This indicator shows when two moving averages cross. // With the option to choose between four moving // average calculations: // (SMA = simple moving average) // (EMA = exponential moving average) // (WMA = weighted moving average) // (Linear = Linear regression) // // The moving averages can be plotted from different // timeframes, like the weekly or 4 hour timeframe. // With the possibility to use HL2, HLC3 or OHLC4 prices. // // In addition there is a background color alert // and arrows when the moving averages cross each other. // And the moving averages are colored depending if // they are trending up or down. // // List of my work: // https://www.tradingview.com/u/ChartArt/ //@version=4 // Multi-timeframe and price input pricetype = input(close, title="Price Source For The Moving Averages") useCurrentRes = input(true, title="Use Current Timeframe As Resolution?") resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above", defval="W") res = useCurrentRes ? timeframe.period : resCustom price = security(syminfo.tickerid, res, pricetype) // MA period input shortperiod = input(50, title="Short Period Moving Average") longperiod = input(100, title="Long Period Moving Average") // MA calculation smoothinput = input(2, minval=1, maxval=4, title='Moving Average Calculation: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)') short = smoothinput == 1 ? sma(price, shortperiod) : smoothinput == 2 ? ema(price, shortperiod) : smoothinput == 3 ? wma(price, shortperiod) : smoothinput == 4 ? linreg(price, shortperiod,0) : na long = smoothinput == 1 ? sma(price, longperiod) : smoothinput == 2 ? ema(price, longperiod) : smoothinput == 3 ? wma(price, longperiod) : smoothinput == 4 ? linreg(price, longperiod,0) : na // MA trend direction color shortcolor = short > short[1] ? lime : short < short[1] ? red : blue longcolor = long > long[1] ? lime : long < long[1] ? red : blue // MA output MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor) MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor) fill(MA1, MA2, color=silver, transp=50) // MA trend bar color TrendingUp() => short > long TrendingDown() => short < long barcolor(TrendingUp() ? green : TrendingDown() ? red : blue) // MA cross alert MAcrossing = cross(short, long) ? short : na plot(MAcrossing, style = cross, linewidth = 4,color=black) // MA cross background color alert Uptrend() => TrendingUp() and TrendingDown()[1] Downtrend() => TrendingDown() and TrendingUp()[1] bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50) // Buy and sell alert Buy = Uptrend() and close > close[1] Sell = Downtrend() and close < close[1] plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom) plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top) if Buy strategy.entry("Enter Long", strategy.long) else if Sell strategy.entry("Enter Short", strategy.short)