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