Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.