cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Media móvil para las bandas de Bollinger

Hola a todos,

Tengo datos financieros sobre varias acciones que desearía poder analizarlas con un enfoque de bandas de Bollinger. Así partí de una media móvil de 20 días con esta fórmula:


MovingAverage20d =
Var PeriodEnd = LASTDATE('History-TopStocks'[Fecha])
Var PeriodStart= FIRSTDATE( DATESINPERIOD('History-TopStocks'[Date], PeriodEnd, -20, DAY))
Devolución
CALCULATE(AVERAGE('History-TopStocks'[Adj Close]),
DATESBETWEEN('History-TopStocks'[Date], PeriodStart, PeriodEnd))

gunicotra_0-1631703962033.png


Sin embargo, no suma en absoluto (es decir: cada elemento de MovingAverage20d es el mismo que AdjClose), ¡ni hace el promedio en ellos! Adjunto un screeenshot para más detalles.

¿Alguna idea?

Gracias

1 ACCEPTED SOLUTION

al intentarlo y tratarlo, obtuve una solución que se pregunta si también te parece buena.


Con este código, es posible que haya encontrado la media móvil simple de 20 días también teniendo en cuenta el hecho de que tengo varias acciones en mi tabla.


AME =
CALCULATE(suma('History-TopStocks'[Adj Close]),
DATESINPERIOD('History-TopStocks'[Fecha],
LASTDATE('History-TopStocks'[Fecha]),-20, DÍA),
ALLEXCEPT('History-TopStocks','History-TopStocks'[Símbolo]))
/
CALCULATE(DISTINCTCOUNT('History-TopStocks'[Fecha]),
DATESINPERIOD('History-TopStocks'[Fecha],
LASTDATE('History-TopStocks'[Fecha]),-20, DÍA),
ALLEXCEPT('History-TopStocks','History-TopStocks'[Símbolo]))

¿Qué te parece?

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@gunicotra , Parece que necesitas una columna, prueba como

Nueva columna =

var _dt = 'History-TopStocks'[Fecha]

CALCULATE(AVERAGEX(filter( 'History-TopStocks', [Date] >= _dt-20 && [Date] <= _dt) 'History-TopStocks'[Adj Close]))

si necesita una medida, con la ayuda de la tabla de fechas

Rolling 20 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-20,DAY))

hola amitchandak!
Lo intenté con tu:

CALCULATE(AVERAGEX(filter( 'History-TopStocks', [Date] >= _dt-20 && [Date] <= _dt), 'History-TopStocks'[Adj Close]))
o con:

CALCULATE(AVERAGEX(filter( 'History-TopStocks', [Date] >= _dt-20 && [Date] <= _dt), sum('History-TopStocks'[Adj Close])))
sin embargo, en ambos métodos tuve el mismo resultado: AdjClose = MovingAverage20d (ver img más abajo).


gunicotra_0-1631708175533.png

Además, mi tabla tiene varias acciones, por lo tanto, los cálculos de la media móvil deben comenzar desde el principio a medida que cambia la acción.... dificultad dentro de la dificultad (¡al menos para mí!!)

al intentarlo y tratarlo, obtuve una solución que se pregunta si también te parece buena.


Con este código, es posible que haya encontrado la media móvil simple de 20 días también teniendo en cuenta el hecho de que tengo varias acciones en mi tabla.


AME =
CALCULATE(suma('History-TopStocks'[Adj Close]),
DATESINPERIOD('History-TopStocks'[Fecha],
LASTDATE('History-TopStocks'[Fecha]),-20, DÍA),
ALLEXCEPT('History-TopStocks','History-TopStocks'[Símbolo]))
/
CALCULATE(DISTINCTCOUNT('History-TopStocks'[Fecha]),
DATESINPERIOD('History-TopStocks'[Fecha],
LASTDATE('History-TopStocks'[Fecha]),-20, DÍA),
ALLEXCEPT('History-TopStocks','History-TopStocks'[Símbolo]))

¿Qué te parece?

View solution in original post

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Power BI October Update 2021.jpg

Power BI Release

Click here to read more about the October 2021 Release!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Teds Dev Camp Oct. 2021 768x460.jpg

Power BI Dev Camp - October 28th, 2021

Mark your calendars and join us for our next Power BI Dev Camp!

Top Solution Authors