Skip to content

Commit c857f64

Browse files
author
Mabyre
committed
awesome oscillator + accelerator
1 parent 15f6bfb commit c857f64

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed
808 Bytes
Binary file not shown.
Binary file not shown.

TradingInPython/_internal/digitsignalprocessing/indicators.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
- macd_zero_lag
1717
- obv
1818
- adx
19+
- fractales_williams
20+
- awesome_oscillator
21+
- accelerator_oscillator
1922
2023
"""
2124
import pandas
@@ -714,4 +717,46 @@ def fractales_williams( data, period=2 ):
714717
data['Fractal_Up'] = numpy.where(is_fractal_up, high, numpy.nan)
715718
data['Fractal_Down'] = numpy.where(is_fractal_down, low, numpy.nan)
716719

717-
return data
720+
return data
721+
722+
# -----------------------------------------------------------------------------
723+
# Awesome Oscillator (AO) - Indicateur de momentum
724+
# -----------------------------------------------------------------------------
725+
#
726+
def awesome_oscillator( df, short_period=5, long_period=34 ):
727+
"""
728+
Calcule l'Awesome Oscillator classique
729+
"""
730+
median_price = ( df['High'] + df['Low'] ) / 2
731+
sma_short = median_price.rolling( window=short_period, min_periods=1 ).mean()
732+
sma_long = median_price.rolling( window=long_period, min_periods=1 ).mean()
733+
ao = sma_short - sma_long
734+
return ao
735+
736+
# -----------------------------------------------------------------------------
737+
# Accelerator Oscillator (AC) - Indicateur de momentum
738+
#
739+
def accelerator_oscillator( df, ao_column='AO', period=5 ):
740+
"""
741+
Calcule l'Accelerator Oscillator (AC)
742+
743+
Paramètres:
744+
-----------
745+
df : pandas.DataFrame
746+
DataFrame contenant l'AO déjà calculé
747+
ao_column : str
748+
Nom de la colonne contenant l'AO
749+
period : int
750+
Période pour la moyenne mobile de l'AO (défaut: 5)
751+
752+
Retourne:
753+
---------
754+
pandas.Series : Valeurs de l'AC
755+
756+
Formule: AC = AO - SMA(AO, 5)
757+
"""
758+
ao = df[ ao_column ]
759+
sma_ao = ao.rolling( window=period, min_periods=1 ).mean()
760+
ac = ao - sma_ao
761+
762+
return ac

0 commit comments

Comments
 (0)