LinearRegressionSlope
LinearRegressionSlope in ProBuilder geeft de helling van een kleinste-kwadratenregressielijn over N bars en meet daarmee trendrichting en trendsterkte. Voorbeelden.
Syntaxis
LinearRegressionSlope[N](price)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
N | geheel getal | verplicht | Aantal bars in het regressievenster. Kleine waarden reageren snel maar wisselen vaak van teken; grotere waarden beschrijven de aanhoudende trend. |
price | prijsbron | close | Reeks waarop de lijn wordt gefit. Meestal close; open, high, low, of een eigen variabele werken ook. |
Formule
Fit y = a + b*x by least squares over the last N bars
b = ( N * sum(x*y) - sum(x) * sum(y) ) / ( N * sum(x^2) - sum(x)^2 )
LinearRegressionSlope = bwaar x is de barindex binnen het venster en y de prijs. Het resultaat wordt uitgedrukt in prijseenheden per bar.
Hoe het werkt
Terwijl LinearRegression retourneert het niveau van de gefitte lijn, LinearRegressionSlope geeft de richting ervan. Op elke bar past de functie de lijn opnieuw aan over de laatste N prijzen en geeft de coïficiënt b: hoeveel de gefitte lijn per bar stijgt of daalt. Een waarde van 0.5 op een daggrafiek betekent dat de regressietrend een half punt per dag klimt.
Omdat de fit elk punt in het venster meeneemt en niet alleen het eerste en het laatste, is de slope minder gevoelig voor één ruizige bar dan een eenvoudige N-bars koersverschil. Het is in feite een gesmoothde rate of change, en daarom fungeert het ook als maatstaf voor momentum.
De nullijn is het natuurlijke draaipunt. Kruisingen van negatief naar positief wijzen op een mogelijke overgang naar een opwaartse trend, kruisingen de andere kant op een mogelijke neerwaartse trend. De slope combineren met R2 filtert deze signalen, omdat een steile helling door slecht passende data minder betrouwbaar is dan een gematigde helling door een schone trend.
Voorbeelden
Voorbeeld 1, Signalen bij nulkruising van de helling (Indicator)
// Slope of the 10-bar regression on the close
i1 = LinearRegressionSlope[10](close)
// Flag transitions of the slope through zero
IF i1 > 0 AND i1[1] < 0 THEN
bullish = 1
bearish = 0
ELSIF i1 < 0 AND i1[1] > 0 THEN
bullish = 0
bearish = -1
ELSE
bullish = 0
bearish = 0
ENDIF
RETURN bullish, bearishMarkeert de bar waarop de 10-bar helling positief wordt met een waarde van 1 en de bar waarop ze negatief wordt met -1, een compacte detector van trendomslag.
Voorbeeld 2, Op kwaliteit gefilterde trendscan (ProScreener)
// Rising instruments where the regression line actually fits the data
slope = LinearRegressionSlope[20](close)
quality = R2[20](close)
SCREENER[slope > 0 AND quality > 0.8](slope AS "Slope")Geeft instrumenten met een positieve 20-bar helling waarvan de R-kwadraat hoger is dan 0.8, zodat alleen trends overblijven die zowel stijgend als goed gedefinieerd zijn.
Voorbeeld 3, Helling als instapfilter (ProBacktest)
// Only take breakout longs while the 50-bar slope is positive
slope = LinearRegressionSlope[50](close)
IF NOT OnMarket AND slope > 0 AND close CROSSES OVER Highest[20](high)[1] THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND slope < 0 THEN
SELL AT MARKET
ENDIFVereist dat de middellangetermijnhelling van de regressie positief is voordat een 20-bar breakout wordt geaccepteerd, en sluit de positie zodra de helling omlaag draait.
Interpretatie
Het teken geeft de richting: positieve helling, opwaartse trend; negatieve helling, neerwaartse trend. De grootte geeft de steilheid, maar in absolute prijseenheden, dus ze moet worden beoordeeld tegen de eigen schaal van het instrument. Een helling van 2 is steil op een instrument dat op 50 handelt en verwaarloosbaar op een instrument dat op 5000 handelt.
Het gedrag van de helling beschrijft ook de rijpheid van de trend. Een stijgende helling betekent dat de trend versnelt, een dalende maar nog positieve helling betekent een opwaartse trend die momentum verliest, een patroon dat vaak voorafgaat aan de werkelijke prijsomslag.
Veelvoorkomende fouten en valkuilen
- Niet vergelijkbaar tussen instrumenten. De ruwe hellingshoek hangt af van de koersschaal. Normaliseer hem voor screeners die veel instrumenten bestrijken, bijvoorbeeld
100 * LinearRegressionSlope[20](close) / close, om procent per bar te krijgen. - Whipsaws rond nul. In zijwaartse markten blijft de helling rond nul hangen en wisselt vaak van teken. Nuldoorgangslogica zonder drempel voor de magnitude of een
R2filter genereert een stroom valse signalen. - Verkeerd type haakjes.
LinearRegressionSlope(10, close)compileert niet. Periode tussen vierkante haken, prijsbron tussen ronde haken. - Steil betekent niet betrouwbaar. Een steile helling door verspreide data weerspiegelt een paar uitschieters, geen trend. Controleer de kwaliteit van de fit met
R2voordat je op de waarde reageert.
Gerelateerde instructies
LinearRegression, het niveau van dezelfde gefitte lijn.R2, fitkwaliteit van de regressie, het natuurlijke aanvullende filter.ROC, rate of change, een eenvoudigere maatstaf voor momentum.Momentum, ruw prijsverschil overNbars.Average, voortschrijdend gemiddelde waarvan de helling een vergelijkbaar doel dient.ADX, trendsterkte zonder richting, een alternatief filter.STE, standaardfout van de regressieschatting.TimeSeriesAverage, op regressie gebaseerde smoothing van de prijs.