## Delete stock tickers without beta value
## We need to make sure all stocks exist on the whole testing period
tickers = StockBeta[np.isnan(StockBeta.cqaBeta) == False][['ticker']]
avaTickers = pd.merge(tickers,
                      StockPrices[StockPrices.date == START][['ticker']],
                      on='ticker')
avaTickers = pd.merge(avaTickers,
                      StockPrices[StockPrices.date == END][['ticker']],
                      on='ticker')
##tickers = tickers[:50]
##tickers = ['A']

##################################################################
## Run this part if you already have the return file, otherwise calculate it
Coef = ReadData.ReadCoef(START_TRAIN, END_TRAIN, DISK)
##################################################################
Coef = pd.merge(Coef, avaTickers, on='ticker')

print "Now we have all the regression coefficients..."
#### test optimization, using only 5 stocks
##avaTickers = avaTickers.head(5)
mCqaBeta = pd.merge(StockBeta,
                    avaTickers).cqaBeta.astype(np.float64).as_matrix()
np.savetxt(r'%s:\Dropbox\CQA 2014\Data\cqaBeta.csv' % DISK,
           mCqaBeta,
           delimiter=",")
NUM_STOCKS = avaTickers.shape[0]

mCoef = Coef[['Mkt-RF', 'SMB', 'HML', 'UMD']].astype(np.float64).as_matrix()
alphas = Coef[['alphaFF', 'alphaCAPM',