UE à la demande du public
Formule de régression linéaire Calculs rayés avec alertes
Voici le script de régression linéaire pour les traders qui aiment les fonctionnalités riches
Caractéristiques ++ Multi-temps -> Régression de la source à partir d'un autre graphique ++ Couleurs personnalisées -> Cela inclut les lignes de pin ++ Lissage -> Permettre la régression filtrée; Remarque: Utilisation de 1 Par défaut à la ligne d'origine. ++ Alertes sur le franchissement du canal ou de la portée
Utilisation ++ Utilisez ceci pour les ruptures et les renversements ++ Ce script ne doit pas être utilisé indépendamment
Les risques Veuillez noter que ce script est similaire aux bandes de Bollinger et présente un risque de chute dans une plage de tendance. Les signaux peuvent continuer à fonctionner dans la même direction pendant que le marché est en renversement.
Les demandes Si vous avez des questions, commentez ci-dessous ou envoyez-moi un message. N'hésitez pas à l'utiliser sur votre graphique et partager vos idées
Pour les développeurs qui veulent l'utiliser sur leur graphique, s'il vous plaît utiliser ce script La formule de calcul originale est affichée ici.
J'espère que ça vous plaira.
test de retour
/*backtest start: 2022-04-23 00:00:00 end: 2022-05-22 23:59:00 period: 45m basePeriod: 5m 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/ // © LucemAnb // User Version //@version=4 study("Linear Regression ++ [Lucem Anb]", "Lin Reg ++ [Lucem Anb]", overlay=true) source = input(close) length = input(100, minval=1) offset = input(0, minval=0) dev = input(2.0, "Deviation") smoothing = input(1, minval=1) mtf_val = input("", "Resolution", input.resolution) line_thick = input(4, "S&R Thickness", minval=1, maxval=4) signals = input("Recent", "Signals Display", options=["Recent", "All"]) p = input("Lime", "Up Color", options=["Red", "Lime", "Orange", "Teal", "Yellow", "White", "Black"]) q = input("Red", "Down Color", options=["Red", "Lime", "Orange", "Teal", "Yellow", "White", "Black"]) goto = input(0, "End At Bar Index") cc(x) => x=="Red"?color.red:x=="Lime"?color.lime:x=="Orange"?color.orange:x=="Teal"? color.teal:x=="Yellow"?color.yellow:x=="Black"?color.black:color.white data(x) => sma(security(syminfo.tickerid, mtf_val!="" ? mtf_val : timeframe.period, x), smoothing) linreg = data(linreg(source, length, offset)) linreg_p = data(linreg(source, length, offset+1)) plot(linreg, "Regression Line", cc(linreg>linreg[1]?p:q), editable=false) x = bar_index slope = linreg - linreg_p intercept = linreg - x*slope deviationSum = 0.0 for i=0 to length-1 deviationSum:= deviationSum + pow(source[i]-(slope*(x-i)+intercept), 2) deviation = sqrt(deviationSum/(length)) x1 = x-length x2 = x y1 = slope*(x-length)+intercept y2 = linreg updating = goto <= 0 or x < goto dm_current = -deviation*dev + y2 dp_current = deviation*dev + y2 buy = crossunder(close, dm_current) sell = crossover(close, dp_current) alertcondition(buy, "Buy Lin Reg", "Crossing On the Lower Regression Channel") alertcondition(sell, "Sell Lin Reg", "Crossing On the Higher Regression Channel") plotshape(buy, "BUY", shape.labelup, location.belowbar, color.lime, text='BUY', textcolor=color.black, show_last=signals=="All"?99999999:length) plotshape(sell, "SELL", shape.labeldown, location.abovebar, color.red, text='SELL', textcolor=color.white, show_last=signals=="All"?99999999:length) plot(x, "Bar Index", color.aqua, line_thick, plot.style_cross, display=display.none) if buy strategy.entry("Enter Long", strategy.long) else if sell strategy.entry("Enter Short", strategy.short)