def quotes(request): symbols = [] for position in Position.all(): symbols.append(position.symbol) RealtimeQuote.delete_all() RealtimeQuote.download_all(symbols) return redirect(request)
def historical_quotes(request): symbols = [] for position in Position.all(): symbols.append(position.symbol) start_date = request.GET.get('start_date') stop_date = request.GET.get('stop_date') if start_date: Quote.yahoo( position.symbol, start_date=datetime.strptime(start_date, '%Y-%m-%d').date(), stop_date=datetime.strptime(stop_date, '%Y-%m-%d').date()) else: Quote.yahoo(position.symbol) return redirect(request)
def alerts(request): body = '' for position in Position.all(): if position.exit_date is not None or not position.shares: continue if position.below_stop(): body += '\n%s in portfolio %s below stop' % (position.symbol, position.portfolio.name) if position.below_ll_10(): body += '\n%s in portfolio %s below ll10' % (position.symbol, position.portfolio.name) if len(body) == 0: return HttpResponseRedirect('/') body = 'The following alerts have been triggered:\n' + body body += '\n\nVisit http://quote-portfolio.appspot.com for details.' mail.send_mail(sender="*****@*****.**", to="*****@*****.**", subject="Portfolio alert", body=body) return HttpResponseRedirect('/')