def PlotData(code, start, end, list):
    start_date = _wxdate2pydate(start)
    end_date = _wxdate2pydate(end)
    print (code)
    print (start_date)
    print (end_date)
    quotes = _quotes_historical_yahoo(code, start_date, end_date)
    fields = ['date','open','close','high','low','volume']
    list1 = []
    for i in range(0,len(quotes)):
        x = date.fromordinal(int(quotes[i][0]))
        y = datetime.strftime(x,'%Y-%m-%d')
        list1.append(y)
    print (list1)
    
    quotesdf = pd.DataFrame(quotes, index = list1, columns = fields)
    quotesdf = quotesdf.drop(['date'], axis = 1)
    quotesdftemp = pd.DataFrame()
    print (quotesdftemp)
 
    for i in range(0,len(list)):
        quotesdftemp[list[i]] = quotesdf[list[i]]
    print ("ready to plot")
    quotesdftemp.plot(marker='o')
    plt.show()
Beispiel #2
0
def get_hist_dow_jones_index(option_code, start_date, end_date):
    DJIA_Index = _quotes_historical_yahoo(option_code,
                                          start_date,
                                          end_date,
                                          asobject=True,
                                          adjusted=True)

    return DJIA_Index
def PlotData(code, start, end, list):
    start_date = _wxdate2pydate(start)
    end_date = _wxdate2pydate(end)
    print code
    print start_date
    print end_date
    quotes = _quotes_historical_yahoo(code, start_date, end_date)
    fields = ['date', 'open', 'close', 'high', 'low', 'volume']
    list1 = []
    for i in range(0, len(quotes)):
        x = date.fromordinal(int(quotes[i][0]))
        y = datetime.strftime(x, '%Y-%m-%d')
        list1.append(y)
    print list1

    quotesdf = pd.DataFrame(quotes, index=list1, columns=fields)
    quotesdf = quotesdf.drop(['date'], axis=1)
    quotesdftemp = pd.DataFrame()
    print quotesdftemp

    for i in range(0, len(list)):
        quotesdftemp[list[i]] = quotesdf[list[i]]
    print "ready to plot"
    quotesdftemp.plot(marker='o')
Beispiel #4
0
# -*- coding: utf-8 -*-
# @version : Python3.6
# @Time    : 2017/4/26 14:48
# @Author  : Jianyang-Hu
# @contact : [email protected]
# @File    : finance_histogram_0426.py
# @Software: PyCharm
#股价分布直方图
from matplotlib.finance import _quotes_historical_yahoo
import sys
from datetime import date
import matplotlib.pyplot as plt
import numpy as np
from numpy import *

today = date.today()
start = (today.year - 1, today.month, today.day)
symbol = 'DISH'
if len(sys.argv) == 2:
    symbol = sys.argv[1]
quotes = _quotes_historical_yahoo(symbol, start, today)
quotes = np.array(quotes)
close = quotes.T[4]  #提取出收盘价数据,T是转置
plt.hist(close, np.sqrt(len(close)))
plt.show()

#报错TypeError: 'numpy.float64' object cannot be interpreted as an integer
from matplotlib.finance import _quotes_historical_yahoo
import numpy as np
import matplotlib.pyplot as plt
from scipy import fftpack
from scipy import signal
from matplotlib.dates import DateFormatter
from matplotlib.dates import DayLocator
from matplotlib.dates import MonthLocator
from scipy import optimize

#模拟正弦波

start = (2010, 7, 25)
end = (2011, 7, 25)

quotes = _quotes_historical_yahoo("QQQ", start, end)
quotes = np.array(quotes)

dates = quotes.T[0]
qqq = quotes.T[4]

y = signal.detrend(qqq)

alldays = DayLocator()
months = MonthLocator()
month_formatter = DateFormatter("%b %Y")

fig = plt.figure()
fig.subplots_adjust(hspace=.3)
ax = fig.add_subplot(211)
Beispiel #6
0
for x in range(0, 10):
    if countryname[x] == 'UK' or countryname[x] == 'USA':
        Income = quandl.get(
            dataset_income[x])  #gets the income data for company x
        Balance = quandl.get(
            dataset_balance[x])  #gets the balance data for company x
        Values = quandl.get(
            dataset_values[x])  #gets the values data for company x
        datelist = Income.index.tolist()  #list of dates for PE
        if Income['EPS exc. extra'].iloc[-1] - Income['EPS exc. extra'].iloc[
                -2] > -5 and Income['Revenue'].iloc[-1] - Income[
                    'Revenue'].iloc[-2] > -5 and Values['Price:Earnings'].iloc[
                        -1] < 50 and Values['Price:Book'].iloc[-1] < 20:
            r = _quotes_historical_yahoo(ticker[x],
                                         begdate,
                                         enddate,
                                         asobject=True,
                                         adjusted=True)
            G = pd.Series(r.aclose, r.date)  #start moving average
            g_mva = pd.rolling_mean(G, 20)  #continue moving average
            sdate = date(2016, 1, 4)  #first day for moving average filter
            edate = date(2016, 4, 1)  #last day for moving average filter
            tdate = date(2016, 9, 20)
            if g_mva.ix[edate] - g_mva.ix[sdate] > -50:
                d.append({
                    'Company name':
                    companyname[x],
                    'cTicker':
                    ticker[x],
                    'Country':
                    countryname[x],
# -*- coding: utf-8 -*-
# 按相邻两天的收盘价涨跌规律对2014年第3季度(7月-9月)构成道 琼斯工业指数的30只股票聚类
# Filename: kmeansDJI.py
from matplotlib.finance import _quotes_historical_yahoo
from pylab import *
from scipy.cluster.vq import *
import numpy as np
from datetime import date

today = date.today()
start = (today.year - 2, today.month + 6, today.day - 13)
end = (today.year - 2, today.month + 8, today.day + 16)

listDji = ['AXP', 'BA', 'CAT', 'CSCO', 'VZ', 'WMT', 'XOM']
rowNum = len(listDji)
colNum = len(_quotes_historical_yahoo(listDji[0], start, end))
quotes = [[0 for col in range(64)] for row in range(rowNum)]
listTemp = [[0 for col in range(64)] for row in range(rowNum)]

for i in range(rowNum):
    quotes[i] = _quotes_historical_yahoo(listDji[i], start, end)
    for j in range(colNum-1):
        listTemp[i][j] = np.sign(np.diff(
                quotes[i], axis=0))[j][2] # 1 if the latter is larger than former, otherwise the result is -1

# print quotes[0]
# print listTemp[0][0]
# print listTemp[0]
# print len(np.sign(np.diff(quotes[i], axis=0)))

data = vstack(listTemp)
# -*- coding: utf-8 -*-
from matplotlib.finance import _quotes_historical_yahoo
import pandas as pd
from datetime import date
from datetime import datetime

today = date.today()
start = datetime(2014, 1, 1)
end = datetime(2014, 12, 31)
quotesMS14 = _quotes_historical_yahoo('MSFT', start, end)
attributes = ['date', 'open', 'close', 'high', 'low', 'volume']
quotesdfMS14 = pd.DataFrame(quotesMS14, columns=attributes)

# 为这部分数据将索引列更换为日期,并删除掉原先的date列,日期格式是2015年1月30日,显示为 ‘15/01/30’
list1 = []
for i in range(0, len(quotesMS14)):
    x = date.fromordinal(int(quotesMS14[i][0]))
    y = date.strftime(x, '%y/%m/%d')
    list1.append(y)
quotesdfMS14.index = list1
quotesdfMS14 = quotesdfMS14.drop(['date'], axis=1)

# 加上月份列
list1 = []
for i in range(0, len(quotesdfMS14)):
    list1.append(int(quotesdfMS14.index[i][3:5]))
quotesdfMS14['month'] = list1
# print quotesdfMS14


# 绘制在2014年整年内(即1月1日至12月31日)微软股票每个月开盘平均价格的走势。
Beispiel #9
0
#! /usr/bin/python
# coding=utf-8
# FileName: *.py
# purpose:
# Author:Wang Yan
# CreationDate:20160909
#a股的可以用 TuShare
from matplotlib.finance import _quotes_historical_yahoo
#from datetime import date
import datetime
import pandas as pd
import numpy as np
today=datetime.date.today()
start=(today.year-1,today.month,today.day)
quotes=_quotes_historical_yahoo('BIDU',start,today)
datelist=[]
for i in range(0,len(quotes)):
    dateNormal=datetime.date.fromordinal(int(quotes[i][0]))
    dateFormat=datetime.datetime.strftime(dateNormal,'%Y%m%d')
    datelist.append(dateFormat)


fields=['date','open','close','high','low','volume']
quoteDf1=pd.DataFrame(quotes,columns=fields,index=range(1,len(quotes)+1))
quoteDf2=pd.DataFrame(quotes,columns=fields,index=datelist)
quoteDf2=quoteDf2.drop(['date'],axis=1)
#print(quoteDf2['open'])
#print(df)
print(quoteDf2)
print(quoteDf2.index)
print(quoteDf2.columns)
Beispiel #10
0
# @File    : trend_0426.py
# @Software: PyCharm

from matplotlib.finance import _quotes_historical_yahoo
from datetime import date
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
from matplotlib.dates import DayLocator
from matplotlib.dates import MonthLocator

#获取QQQ的收盘价和对应的日期数据
today = date.today()
start = (today.year - 1, today.month, today.day)
quotes = _quotes_historical_yahoo("QQQ", start, today)
quotes = np.array(quotes)
dates = quotes.T[0]
qqq = quotes.T[4]

#去除信号中的线性趋势
y = signal.detrend(qqq)

#创建月定位器和日定位器
alldays = DayLocator()
months = MonthLocator()

#创建一个日期格式化器以格式化x轴上的日期。该格式化器将创建一个字符串,包含简写的月份和年份
month_formatter = DateFormatter("%b %Y")

fig = plt.figure()
from matplotlib.finance import _quotes_historical_yahoo
import sys
from datetime import date
import matplotlib.pyplot as plt
import numpy as np

today=date.today();
start=(today.year-1,today.month,today.day);

symbol='DISH';

if len(sys.argv)==2:
    symbol=sys.argv[1];
quotes=_quotes_historical_yahoo(symbol,start,today);
quotes=np.array(quotes);
close=quotes.T[4];
volume=quotes.T[5];
ret=np.diff(close)/close[:-1];
volchange=np.diff(volume)/volume[:-1];
fig=plt.figure();
ax=fig.add_subplot(111);
ax.scatter(ret.volchange,c=ret*100,s=volchange*100,alpha=0.5);
ax.grid(True);
plt.show();
# -*- coding: utf-8 -*-



from matplotlib.finance import _quotes_historical_yahoo
from datetime import date
from datetime import datetime
import pandas as pd

today = date.today()
start = (today.year - 1, today.month, today.day)
quotes = _quotes_historical_yahoo('AXP', start, today)
# print quotes
fields = ['date', 'open', 'close', 'high', 'low', 'volume']

list1 = []
for i in range(0, len(quotes)):
    x = date.fromordinal(int(quotes[i][0]))
    y = datetime.strftime(x, '%Y-%m-%d')
    list1.append(y)


quotesdf = pd.DataFrame(quotes, index=list1, columns=fields)
quotesdf = quotesdf.drop(['date'], axis=1)
print quotesdf
# -*- coding: utf-8 -*-

# from matplotlib.finance import quotes_historical_yahoo
# matplotlib 1.5版本中函数变为 quotes_historical_yahoo_ohlc 或 _quotes_historical_yahoo

from matplotlib.finance import _quotes_historical_yahoo
from datetime import date
from datetime import datetime
import pandas as pd

today = date.today()
start = (today.year - 1, today.month, today.day)
quotes = _quotes_historical_yahoo('AXP', start, today)
# print quotes
fields = ['date', 'open', 'close', 'high', 'low', 'volume']

list1 = []
for i in range(0, len(quotes)):
    x = date.fromordinal(int(quotes[i][0]))
    y = datetime.strftime(x, '%Y-%m-%d')
    list1.append(y)


quotesdf = pd.DataFrame(quotes, index=list1, columns=fields)
quotesdf = quotesdf.drop(['date'], axis=1)
quotesdf.close.plot()

# quotesdf = pd.DataFrame(quotes, index=range(1, len(quotes) + 1), columns=fields)


print quotesdf
Beispiel #14
0
#%%
from pylab import figure, show
#from matplotlib.finance import quotes_historical_yahoo
from matplotlib.finance import _quotes_historical_yahoo
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
import datetime

# get quotes
date1 = datetime.date(2016, 1, 1)
date2 = datetime.date(2017, 2, 27)
quotes = _quotes_historical_yahoo('MSFT', date1, date2)
if len(quotes) == 0:
    import sys
    sys.exit()

# get dates and opens
dates = [q[0] for q in quotes]
opens = [q[1] for q in quotes]
fig = figure()
ax = fig.add_subplot(111)
ax.plot_date(dates, opens, '-')

# format the ticks
daysFmt = DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(daysFmt)
ax.autoscale_view()


# format the coords message box
def price(x):
    return '$%1.2f' % x
# -*- coding: utf-8 -*-
from matplotlib.finance import _quotes_historical_yahoo
import pandas as pd
from datetime import date
from datetime import datetime

today = date.today()
start = datetime(2014, 1, 1)
end = datetime(2014, 12, 31)
quotesMS14 = _quotes_historical_yahoo('MSFT', start, end)
attributes = ['date', 'open', 'close', 'high', 'low', 'volume']
quotesdfMS14 = pd.DataFrame(quotesMS14, columns=attributes)

# 为这部分数据将索引列更换为日期,并删除掉原先的date列,日期格式是2015年1月30日,显示为 ‘15/01/30’
list1 = []
for i in range(0, len(quotesMS14)):
    x = date.fromordinal(int(quotesMS14[i][0]))
    y = date.strftime(x, '%y/%m/%d')
    list1.append(y)
quotesdfMS14.index = list1
quotesdfMS14 = quotesdfMS14.drop(['date'], axis=1)

# 加上月份列
list1 = []
for i in range(0, len(quotesdfMS14)):
    list1.append(int(quotesdfMS14.index[i][3:5]))
quotesdfMS14['month'] = list1
# print quotesdfMS14

# 绘制在2014年整年内(即1月1日至12月31日)微软股票每个月开盘平均价格的走势。
# -*- coding: utf-8 -*-

from matplotlib.finance import _quotes_historical_yahoo
from datetime import date
import pandas as pd

today = date.today()
start = (today.year - 1, today.month, today.day)
quotes = _quotes_historical_yahoo('IBM', start, today)
df = pd.DataFrame(quotes)
df.to_csv('stockIBM.csv')

result = pd.read_csv('stockIBM.csv')
print result
Beispiel #17
0
def get_hist_dow_jones_index(option_code,start_date,end_date):
    DJIA_Index = _quotes_historical_yahoo(option_code, start_date,
                                           end_date,asobject=True, adjusted=True)

    return DJIA_Index
Beispiel #18
0
# 链接:http://www.zhihu.com/question/27328283/answer/42741166
# 来源:知乎
# 著作权归作者所有,转载请联系作者获得授权。
# 美股适合此API,A股适合tushare 来获取

from pylab import figure, show
from matplotlib.finance import _quotes_historical_yahoo
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
import datetime

date1 = datetime.date(2012, 1, 1)
date2 = datetime.date.today()

daysFmt = DateFormatter('%m-%d-%Y')

quotes = _quotes_historical_yahoo('BIDU', date1, date2)
if len(quotes) == 0:
    raise SystemExit

dates = [q[0] for q in quotes]
opens = [q[1] for q in quotes]

fig = figure()
ax = fig.add_subplot(111)
ax.plot_date(dates, opens, '-')

# format the ticks
ax.xaxis.set_major_formatter(daysFmt)
ax.autoscale_view()

from pylab import figure, show
from matplotlib.finance import _quotes_historical_yahoo
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
import datetime
date1 = datetime.date( 2012, 1, 1 )
date2 = datetime.date( 2012, 11, 11 )

daysFmt  = DateFormatter('%m-%d-%Y')

quotes = _quotes_historical_yahoo('MSFT', date1, date2)
if len(quotes) == 0:
    raise SystemExit

#d,open,close,high,low,volumn
dates = [q[0] for q in quotes]
opens = [q[1] for q in quotes]

fig = figure()
ax = fig.add_subplot(111)
ax.plot_date(dates, opens, '-')

# format the ticks
ax.xaxis.set_major_formatter(daysFmt)
ax.autoscale_view()

# format the coords message box
def price(x): return '$%1.2f'%x
ax.fmt_xdata = DateFormatter('%Y-%m-%d')
ax.fmt_ydata = price
ax.grid(True)
# -*- coding: utf-8 -*-
from matplotlib.finance import _quotes_historical_yahoo
from datetime import date
import pandas as pd

# 使得获取到的数据是从两年前的今天到现在的微软公司的股票历史数据(关于微软的公司代号,可以在该页面http://finance.yahoo.com/q/cp?s=^DJI 中找到)
today = date.today()
start = (today.year - 2, today.month, today.day)
quotes = _quotes_historical_yahoo('MSFT', start, today)

# 为微软的quotes数据添加属性名:
attributes = ['date', 'open', 'close', 'high', 'low', 'volume']
quotesdf = pd.DataFrame(quotes, columns=attributes)

# 为这部分数据将索引列更换为日期,并删除掉原先的date列,日期格式是2015年1月30日,显示为 ‘15/01/30’
list1 = []
for i in range(0, len(quotes)):
    x = date.fromordinal(int(quotes[i][0]))
    y = date.strftime(x, '%y/%m/%d')
    list1.append(y)
quotesdf.index = list1
quotesdf = quotesdf.drop(['date'], axis=1)

# 获取2014年1月30日到2月10日这期间微软更换CEO阶段股票的开盘价和收盘价
quotesdf.ix['14/01/30':'14/02/10', ['open', 'close']]

# 查询在2014年下半年(即6月1日至12月31日)微软股票收盘价大于49美元的记录
quotesdf['14/06/01':'14/12/31'][quotesdf.close > 49]

# 查询在2014年整年内(即1月1日至12月31日)微软股票收盘价最高的5天数据
print quotesdf['14/01/01':'14/12/31'].sort('close', ascending=False)[0:5]