21 lines
688 B
Python
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 |