Ejemplo n.º 1
0
    def test_get_all(self):
        symbol = 'GOOG'
        all_info = ystockquote.get_all(symbol)
        self.assertIsInstance(all_info, dict)

        self.assertEqual(all_info['dividend_yield'],
                         ystockquote.get_dividend_yield(symbol))
        self.assertEqual(all_info['fifty_sma'],
                         ystockquote.get_50_sma(symbol))
        self.assertEqual(all_info['company_name'],
                         ystockquote.get_company_name(symbol))
        self.assertEqual(all_info['book_value'],
                         ystockquote.get_book_value(symbol))
Ejemplo n.º 2
0
csvfile = open('nasdaqlist.csv', 'rb')
reader = csv.reader(csvfile)

rownum = 0
stocksymbols = []
stockDetails =[]
for row in reader:
    # Save header row.
    if rownum == 0:
        header = row
    else:
        #print row
        stocksymbols.append(row[0])
        stockDetails.append(row)
             
    rownum += 1
 
csvfile.close()

results = []
for stockDetail in stockDetails:
    symbol = stockDetail[0]
    price = float(ystockquote.get_price(symbol))
    bookvalue = float(ystockquote.get_book_value(symbol))
    halfBook = bookvalue * 0.5
    if (price <= halfBook):
        print ', '.join(stockDetail)
        results.append(symbol)

print len(results)
Ejemplo n.º 3
0
 def test_get_book_value(self):
     value = ystockquote.get_book_value(self.symbol)
     self.assertIsInstance(value, str)
Ejemplo n.º 4
0
 def test_get_book_value(self):
     value = ystockquote.get_book_value(self.symbol)
     self.assertIsInstance(value, str)
Ejemplo n.º 5
0

##Some of the methods available
name = ystockquote.get_company_name('GOOG')

mktcap = ystockquote.get_market_cap('GOOG')

print ("Name: %s , Market Cap %s" %(name,mktcap))

ystockquote.get_200_sma()
ystockquote.get_50_sma()
ystockquote.get_annualized_gain()
ystockquote.get_1_year_target()
ystockquote.get_52_week_high()
ystockquote.get_52_week_low()
ystockquote.get_change_200_sma()
ystockquote.get_52_week_range()
ystockquote.get_book_value()
ystockquote.get_eps_estimate_current_year()
ystockquote.get_eps()
ystockquote.get_ticker_trend()
ystockquote.get_short_ratio()
ystockquote.get_revenue()
ystockquote.get_average_daily_volume()
ystockquote.get_float_shares()
ystockquote.get_dividend_yield()
ystockquote.get_notes()
ystockquote.get_pe()
ystockquote.get_all()

print (ystockquote.get_all('GOOG'))
Ejemplo n.º 6
0
				symbol = ''.join(str(e) for e in symbolList if e.isalpha()) #turn list of letters in symbol into string
				symbol.strip()
				
				summaryPage = requests.get('http://finance.yahoo.com/q/pr?s=' + symbol, stream=False)				
				
				d = summaryPage.content
				soup1 = BeautifulSoup(d)

				getSummary = soup1.find_all('p')

				price = str(ystockquote.get_price(symbol))
				change = str(ystockquote.get_change(symbol))
				volume = str(ystockquote.get_volume(symbol))
				stockExchange = str(ystockquote.get_stock_exchange(symbol))
				marketCap = str(ystockquote.get_market_cap(symbol))
				bValue = str(ystockquote.get_book_value(symbol))
				ebitda = str(ystockquote.get_ebitda(symbol))
				mvavg = str(ystockquote.get_200day_moving_avg(symbol))
				High = str(ystockquote.get_52_week_high(symbol))
				Low = str(ystockquote.get_52_week_low(symbol))
				
				commaData = []

				data=[price, change, volume, stockExchange, mvavg, bValue, ebitda, marketCap, High, Low]		


				for individData in data:
					commaInt = humanize.intcomma(individData)
					commaData.append(commaInt)
				
				if float(price) > 0.00:
Ejemplo n.º 7
0
def view_stock(request, ticker):
    if request.user.__class__.__name__ is 'CustomUser':
        c_user = get_object_or_404(CustomUser, pk=request.user.pk)
        account = Account.objects.get(user=c_user)
    else:
        account = False
    stock = get_object_or_404(Stock, ticker=ticker)

    companyName = stock.ticker
    companyName = companyName.upper()
    stock = Stock.objects.get(ticker=companyName)
    namer = "'" + companyName + "'"
    ystock = Share(companyName)
    the_price = ystock.get_price()

    regex = 'Business Summary</span></th><th align="right">&nbsp;</th></tr></table><p>(.+?)</p>'
    pattern = re.compile(regex)

    root_url = urllib.urlopen("http://finance.yahoo.com/q/pr?s=" +
                              companyName + "+Profile")
    htmltext = root_url.read()

    decoded_str = str(re.findall(pattern, htmltext)).decode("utf8")
    encoded_str = decoded_str.encode('ascii', 'ignore')
    stock.description = encoded_str
    stock.description = stock.description[:-2]
    stock.description = stock.description[2:]
    stock.book_value = ystockquote.get_book_value(companyName)
    stock.change = ystockquote.get_change(companyName)
    #stock.dividend_per_share = ystockquote.get_dividend_per_share(companyName)
    #stock.dividend_yield = ystockquote.get_dividend_yield(companyName)
    stock.ebitda = ystockquote.get_ebitda(companyName)
    stock.fifty_two_week_high = ystockquote.get_52_week_high(companyName)
    stock.fifty_two_week_low = ystockquote.get_52_week_low(companyName)
    stock.market_cap = ystockquote.get_market_cap(companyName)
    stock.short_ratio = ystockquote.get_short_ratio(companyName)
    stock.stock_exchange = ystockquote.get_stock_exchange(companyName)
    stock.volume = ystockquote.get_volume(companyName)
    stock.price = ystock.get_price()
    #yahoo_finance
    stock.average_daily_volume = ystock.get_avg_daily_volume()
    stock.earnings_per_share = ystock.get_price_earnings_ratio()
    stock.fifty_day_moving_avg = ystock.get_50day_moving_avg()
    stock.two_hundred_day_moving_avg = ystock.get_200day_moving_avg()
    stock.price_book_ratio = ystock.get_price_book()
    stock.last_sale = ystock.get_price()
    stock.price_earnings_growth_ratio = ystock.get_price_earnings_growth_ratio(
    )
    stock.price_earnings_ratio = ystock.get_price_earnings_ratio()
    stock.price_sales_ratio = ystock.get_price_sales()
    stock.save()

    vl = []
    acl = []
    hl = []
    ll = []
    cl = []
    ol = []
    days_list = []
    d = 0
    seven_days_ago = datetime.datetime.now() + datetime.timedelta(-30)
    today = datetime.datetime.now()
    days = ystockquote.get_historical_prices(
        'GOOGL', seven_days_ago.strftime("%Y-%m-%d"),
        today.strftime("%Y-%m-%d"))
    for day in days.keys():
        d += 1
        date_label = datetime.datetime.now() + datetime.timedelta(-d)
        days_list.append(date_label.strftime("%b-%d"))
        day_info = days.get(day)
        vol = int(day_info.get('Volume'))
        vl.append(vol)
        adjcl = float(day_info.get('Adj Close'))
        acl.append(adjcl)
        highs = float(day_info.get('High'))
        hl.append(highs)
        lows = float(day_info.get('Low'))
        ll.append(lows)
        closes = float(day_info.get('Close'))
        cl.append(closes)
        opens = float(day_info.get('Open'))
        ol.append(opens)

    volume = vl
    lows = ll
    opens = ol
    highs = hl
    averages = acl
    closes = cl
    days_l = days_list[::-1]
    context = RequestContext(
        request,
        dict(account=account,
             request=request,
             stock=stock,
             volume=volume,
             lows=lows,
             highs=highs,
             opens=opens,
             closes=closes,
             averages=averages,
             days_l=days_l))
    return render_to_response('scrapyr_app/stock.html', context=context)
Ejemplo n.º 8
0
				symbol = ''.join(str(e) for e in symbolList if e.isalpha()) #turn list of letters in symbol into string
				symbol.strip()
				
				summaryPage = requests.get('http://finance.yahoo.com/q/pr?s=' + symbol, stream=False)				
				
				d = summaryPage.content
				soup1 = BeautifulSoup(d)

				getSummary = soup1.find_all('p')

				price = str(ystockquote.get_price(symbol))
				change = str(ystockquote.get_change(symbol))
				volume = str(ystockquote.get_volume(symbol))
				stockExchange = str(ystockquote.get_stock_exchange(symbol))
				marketCap = str(ystockquote.get_market_cap(symbol))
				bValue = str(ystockquote.get_book_value(symbol))
				ebitda = str(ystockquote.get_ebitda(symbol))
				mvavg = str(ystockquote.get_200day_moving_avg(symbol))
				High = str(ystockquote.get_52_week_high(symbol))
				Low = str(ystockquote.get_52_week_low(symbol))
				
				commaData = []

				data=[price, change, volume, stockExchange, mvavg, bValue, ebitda, marketCap, High, Low]		


				for individData in data:
					commaInt = humanize.intcomma(individData)
					commaData.append(commaInt)
				
				if float(price) > 0.00:
Ejemplo n.º 9
0
def view_stock(request, ticker):
    if request.user.__class__.__name__ is "CustomUser":
        c_user = get_object_or_404(CustomUser, pk=request.user.pk)
        account = Account.objects.get(user=c_user)
    else:
        account = False
    stock = get_object_or_404(Stock, ticker=ticker)

    companyName = stock.ticker
    companyName = companyName.upper()
    stock = Stock.objects.get(ticker=companyName)
    namer = "'" + companyName + "'"
    ystock = Share(companyName)
    the_price = ystock.get_price()

    regex = 'Business Summary</span></th><th align="right">&nbsp;</th></tr></table><p>(.+?)</p>'
    pattern = re.compile(regex)

    root_url = urllib.urlopen("http://finance.yahoo.com/q/pr?s=" + companyName + "+Profile")
    htmltext = root_url.read()

    decoded_str = str(re.findall(pattern, htmltext)).decode("utf8")
    encoded_str = decoded_str.encode("ascii", "ignore")
    stock.description = encoded_str
    stock.description = stock.description[:-2]
    stock.description = stock.description[2:]
    stock.book_value = ystockquote.get_book_value(companyName)
    stock.change = ystockquote.get_change(companyName)
    # stock.dividend_per_share = ystockquote.get_dividend_per_share(companyName)
    # stock.dividend_yield = ystockquote.get_dividend_yield(companyName)
    stock.ebitda = ystockquote.get_ebitda(companyName)
    stock.fifty_two_week_high = ystockquote.get_52_week_high(companyName)
    stock.fifty_two_week_low = ystockquote.get_52_week_low(companyName)
    stock.market_cap = ystockquote.get_market_cap(companyName)
    stock.short_ratio = ystockquote.get_short_ratio(companyName)
    stock.stock_exchange = ystockquote.get_stock_exchange(companyName)
    stock.volume = ystockquote.get_volume(companyName)
    stock.price = ystock.get_price()
    # yahoo_finance
    stock.average_daily_volume = ystock.get_avg_daily_volume()
    stock.earnings_per_share = ystock.get_price_earnings_ratio()
    stock.fifty_day_moving_avg = ystock.get_50day_moving_avg()
    stock.two_hundred_day_moving_avg = ystock.get_200day_moving_avg()
    stock.price_book_ratio = ystock.get_price_book()
    stock.last_sale = ystock.get_price()
    stock.price_earnings_growth_ratio = ystock.get_price_earnings_growth_ratio()
    stock.price_earnings_ratio = ystock.get_price_earnings_ratio()
    stock.price_sales_ratio = ystock.get_price_sales()
    stock.save()

    vl = []
    acl = []
    hl = []
    ll = []
    cl = []
    ol = []
    days_list = []
    d = 0
    seven_days_ago = datetime.datetime.now() + datetime.timedelta(-30)
    today = datetime.datetime.now()
    days = ystockquote.get_historical_prices("GOOGL", seven_days_ago.strftime("%Y-%m-%d"), today.strftime("%Y-%m-%d"))
    for day in days.keys():
        d += 1
        date_label = datetime.datetime.now() + datetime.timedelta(-d)
        days_list.append(date_label.strftime("%b-%d"))
        day_info = days.get(day)
        vol = int(day_info.get("Volume"))
        vl.append(vol)
        adjcl = float(day_info.get("Adj Close"))
        acl.append(adjcl)
        highs = float(day_info.get("High"))
        hl.append(highs)
        lows = float(day_info.get("Low"))
        ll.append(lows)
        closes = float(day_info.get("Close"))
        cl.append(closes)
        opens = float(day_info.get("Open"))
        ol.append(opens)

    volume = vl
    lows = ll
    opens = ol
    highs = hl
    averages = acl
    closes = cl
    days_l = days_list[::-1]
    context = RequestContext(
        request,
        dict(
            account=account,
            request=request,
            stock=stock,
            volume=volume,
            lows=lows,
            highs=highs,
            opens=opens,
            closes=closes,
            averages=averages,
            days_l=days_l,
        ),
    )
    return render_to_response("scrapyr_app/stock.html", context=context)
Ejemplo n.º 10
-1
def data_type():
	print "From the list above, enter the data type you'd like to see"
	data = raw_input("> ")
	print "What stock would you like to see data on?"
	stock = raw_input("> ")
	if data == 'price' or data == 'Price':
		print ystockquote.get_price(stock)
	elif data == 'change' or data == 'Change':
		print ystockquote.get_change(stock)
	elif data == 'Volume' or data == 'volume':
		print ystockquote.get_avg_daily_vol(stock)
	elif data == 'exchange' or data == 'Exchange':
		print ystockquote.get_stock_exchange(stock)
	elif data == 'market cap' or data == 'Market cap' or data == 'Market Cap':
		print ystockquote.get_market_cap(stock)
	elif data == 'book value' or data == 'Book value' or data == 'Book Value':
		print ystockquote.get_book_value(stock)
	elif data == 'eps' or data == 'EPS':
		print ystockquote.get_earnings_per_share(stock)
	elif data == 'short ratio' or data == 'Short Ratio':
		print ystockquote.get_short_ratio(stock)
	elif data == 'dividend yield' or data == 'Dividend Yield' or data == 'div yield':
		print ystockquote.get_dividend_yield(stock)
	elif data == 'ebitda' or data == 'EBITDA':
		print ystockquote.get_ebitda(stock)
	else:
		print 'Sorry, we don\'t have that data type'
		quit()