I took another look at this and realized that my previous answer fit poorly since it didn't include an intercept. I've updated my answer.
The segfault comes from trying to us the Datetime index as the exogenous variable. Instead try:
import datetime
import matplotlib.pyplot as plt
import statsmodels.api as sm
import pandas
from pandas.io.data import DataReader
sp500 = DataReader("AGG", "yahoo", start=datetime.datetime(2000, 1, 1)) # returns a DataFrame
sp500["regression"] = sm.OLS(sp500["Adj Close"],
sm.add_constant(range(len(sp500.index)),
prepend=True)).fit().fittedvalues
Notice that you don't need to call statsmodels' fittedvalues as a function. If your data points are all equally space this model will give the same results as using the actual index.
For your second question, pandas as a built in exponentially weighted moving average that you may want to look in to: pandas.ewma
here.