Python 通过Scipy 的curve_fit 来拟合指数

import pymysql
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

from scipy.optimize import curve_fit

def fund(x, a, b):
    return b * (a ** x)

connect = pymysql.connect(
    host = '127.0.0.1',
    db = 'blog',
    user = 'root',
    passwd = '123456',
    charset = 'utf8',
    use_unicode = True
)
cursor = connect.cursor()

select_sql = "select adj_close from qqq"
df = pd.read_sql(select_sql, con=connect)
# print(df.head())
xdata = range(1, len(df) + 1)
ydata = df['adj_close']
plt.plot(xdata, df['adj_close'], 'b-')

popt, pcov = curve_fit(fund, xdata, ydata)

y2 = [fund(i, popt[0],popt[1]) for i in xdata]
plt.plot(xdata,y2,'r--')

print(popt[0],popt[1])
print(popt[0] ** 252)
plt.show()

 

数据是来之yahoo finance的qqq数据,从csv导入到mysql的。因为还有网页展示的需求。机器学习总算实际用了一次。发现美股科技股年化有15%左右。

http://www.waitingfy.com/archives/4784

你可能感兴趣的:(python,量化投资)