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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors