def stock_summary(request, symbol=None): if symbol == None: symbol = request.POST['symbol'] current_stock = Stock() stock = Share(symbol) current_stock.symbol = symbol.upper() current_stock.price = stock.get_price() current_stock.change = stock.get_change() current_stock.volume = stock.get_volume() current_stock.prev_close = stock.get_prev_close() current_stock.stock_open = stock.get_open() current_stock.avg_daily_volume = stock.get_avg_daily_volume() current_stock.stock_exchange = stock.get_stock_exchange() current_stock.market_cap = stock.get_market_cap() current_stock.book_value = stock.get_book_value() current_stock.ebitda = stock.get_ebitda() current_stock.dividend_share = stock.get_dividend_share() current_stock.dividend_yield = stock.get_dividend_yield() current_stock.earnings_share = stock.get_earnings_share() current_stock.days_high = stock.get_days_high() current_stock.days_low = stock.get_days_low() current_stock.year_high = stock.get_year_high() current_stock.year_low = stock.get_year_low() current_stock.fifty_day_moving_avg = stock.get_50day_moving_avg() current_stock.two_hundred_day_moving_avg = stock.get_200day_moving_avg() current_stock.price_earnings_ratio = stock.get_price_earnings_ratio() current_stock.price_earnings_growth_ratio = stock.get_price_earnings_growth_ratio() current_stock.price_sales = stock.get_price_sales() current_stock.price_book = stock.get_price_book() current_stock.short_ratio = stock.get_short_ratio() date_metrics = [] url = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+symbol+'/chartdata;type=quote;range=1y/csv' page = urllib2.urlopen(url).read() pagebreaks = page.split('\n') for line in pagebreaks: items = line.split(',') if 'Company-Name:' in line: current_stock.company_name = line[13:len(line)] current_stock.save() if 'values' not in items: if len(items)==6: hd = HistoricalData( stock_id = Stock.objects.get(id=int(current_stock.id)).id, date = items[0][4:6]+'/'+items[0][6:9]+'/'+items[0][0:4], close = items[1][0:(len(items[1])-2)], high = items[2][0:(len(items[2])-2)], price_open = items[3][0:(len(items[3])-2)], low = items[4][0:(len(items[4])-2)], volume = items[5][0:-6]+","+items[5][-6:-3]+","+items[5][-3:len(items[5])]) hd.save() date_metrics.append(hd) del date_metrics[0] return render(request, "stock_summary.html", {'current_stock': current_stock, 'date_metrics': date_metrics})
def create_stock_from_offer(offer, price=10, available=10, soft_deleted=False, booking_limit_datetime=None, beginning_datetime=None, end_datetime=None): stock = Stock() stock.offer = offer stock.price = price stock.available = available stock.isSoftDeleted = soft_deleted stock.bookingLimitDatetime = booking_limit_datetime stock.beginningDatetime = beginning_datetime stock.endDatetime = end_datetime return stock
def stock_finviz_info(stock: Stock): soup = get_soup(f"https://finviz.com/quote.ashx?t={stock.ticker}") mult = get_finviz_table(soup) stock.atr = check_hash(mult['atr']) stock.price = check_hash(mult['price']) stock.beta = check_hash(mult['beta']) stock.atr_to_price = stock.atr / stock.price stock.avg_volume = get_avg_volume(mult['avg volume']) links = soup.find('table', class_='fullview-title').find_all(class_='tab-link') stock.sector = links[1].text stock.industry = links[2].text
def create_stock(price=10, available=10, booking_limit_datetime=None, offer=None, beginning_datetime=None, end_datetime=None, is_soft_deleted=False, id_at_providers=None, last_provider_id=None): stock = Stock() stock.price = price stock.available = available stock.bookingLimitDatetime = booking_limit_datetime stock.offer = offer stock.beginningDatetime = beginning_datetime stock.endDatetime = end_datetime stock.isSoftDeleted = is_soft_deleted stock.idAtProviders = id_at_providers stock.lastProviderId = last_provider_id return stock
def create_stock_from_event_occurrence(event_occurrence, price=10, available=10, soft_deleted=False, recap_sent=False, booking_limit_date=None): stock = Stock() stock.beginningDatetime = event_occurrence['beginningDatetime'] stock.endDatetime = event_occurrence['endDatetime'] stock.offerId = event_occurrence['offerId'] stock.offer = event_occurrence['offer'] stock.price = price stock.available = available stock.isSoftDeleted = soft_deleted if recap_sent: stock.bookingRecapSent = datetime.utcnow() if booking_limit_date is None: stock.bookingLimitDatetime = event_occurrence['beginningDatetime'] else: stock.bookingLimitDatetime = booking_limit_date return stock
def create_stock_with_thing_offer(offerer, venue, offer=None, price=10, available=50, name='Test Book', booking_email='*****@*****.**', soft_deleted=False, url=None, booking_limit_datetime=None, thing_type=ThingType.AUDIOVISUEL) -> Stock: stock = Stock() stock.offerer = offerer stock.price = price if offer: stock.offer = offer else: stock.offer = create_offer_with_thing_product(venue, thing_name=name, thing_type=thing_type) stock.offer.bookingEmail = booking_email stock.bookingLimitDatetime = booking_limit_datetime stock.offer.url = url stock.offer.venue = venue stock.available = available stock.isSoftDeleted = soft_deleted return stock
def create_stock_with_event_offer(offerer, venue, price=10, booking_email='*****@*****.**', available=10, is_soft_deleted=False, event_type=EventType.JEUX, name='Mains, sorts et papiers', offer_id=None, beginning_datetime=datetime.utcnow() + timedelta(hours=72), end_datetime=datetime.utcnow() + timedelta(hours=74), thumb_count=0, booking_limit_datetime=datetime.utcnow() + timedelta(hours=71)): stock = Stock() stock.offerer = offerer stock.price = price stock.available = available stock.beginningDatetime = beginning_datetime stock.endDatetime = end_datetime stock.bookingLimitDatetime = booking_limit_datetime stock.offer = create_offer_with_event_product(venue, event_name=name, event_type=event_type, booking_email=booking_email, is_national=False, thumb_count=thumb_count) stock.offer.id = offer_id stock.isSoftDeleted = is_soft_deleted return stock