Word nu lid
Indicatoren/probuilder · probacktest · proorder · proscreener

LinearRegressionSlope

LinearRegressionSlope in ProBuilder geeft de helling van een kleinste-kwadratenregressielijn over N bars en meet daarmee trendrichting en trendsterkte. Voorbeelden.

Syntaxis

probuilder
LinearRegressionSlope[N](price)

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getalverplichtAantal bars in het regressievenster. Kleine waarden reageren snel maar wisselen vaak van teken; grotere waarden beschrijven de aanhoudende trend.
priceprijsbroncloseReeks waarop de lijn wordt gefit. Meestal close; open, high, low, of een eigen variabele werken ook.

Formule

code
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 = b

waar 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)

probuilder
// 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, bearish

Markeert 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)

probuilder
// 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)

probuilder
// 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
ENDIF

Vereist 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 R2 filter 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 R2 voordat je op de waarde reageert.
  • 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 over N bars.
  • 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.