finance-api/data/indicators/sma.py
2024-07-01 21:46:49 +00:00

21 lines
688 B
Python

def calculate_sma(data, period):
"""
Calculate the Simple Moving Average (SMA) for the given data.
:param data: A list of dictionaries containing 'date' and 'close' prices.
:param period: period used to calculate sma.
:return: A list of dictionaries with an additional 'SMA' key.
"""
close_prices = [entry['close'] for entry in data]
sma_values = []
for i in range(len(close_prices)):
if i + 1 < period:
sma_values.append(None)
else:
sma = sum(close_prices[i + 1 - period:i + 1]) / period
sma_values.append(sma)
for i in range(len(data)):
data[i]['SMA'] = sma_values[i]
return data