예제 #1
0
def update(logger):
    db = get_db()
    user = db.user
    stocklist = Stock.objects()

    for stock in stocklist:
        price = stocks.get_quote(stock.symbol)
        logger.info("Got latest price for {0}:{1}".format(
            stock.symbol,
            price
            )
        )
        try:
            stock.last_price = price
            stock.update(**{"set__last_price":price})
            logger.info("Updated data for {0}:{1}\n".format(
                stock['name'],
                stock['last_price']
                )
            )
        except Exception as e:
            logger.error("Error upating stock {}\n".format(stock['name']))
            logger.error(e.message)
예제 #2
0
def find_stock(ticker):
  try:
    stock = Stock.objects(symbol=ticker)[0]
    return stock
  except:
    return False
예제 #3
0
def profile():
    #stocklist = user.find()    
    stocklist = Stock.objects()
    return render_template('profile.html', stocklist=stocklist, stocks=stocks)
예제 #4
0
from flask.ext.bootstrap import Bootstrap
from models import Stock
import stocks
#from pymongo import MongoClient

app = Flask(__name__)

manager = Manager(app)
bootstrap = Bootstrap(app)

#mongo = MongoClient()
#db = mongo.stock
#stock = db.stock
#user = db.user

stocklist = Stock.objects() 

def find_stock(ticker):
  try:
    stock = Stock.objects(symbol=ticker)[0]
    return stock
  except:
    return False

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/stock/<ticker>')
def stock(ticker):
    return render_template('stock.html', ticker=ticker, quote=stock)
예제 #5
0
def fetchStocks():
    connect('stockenex')
    with open('s3://stockenex/colorMap.json', 'r') as c:
        colorMap = json.load(c)[1]
    with open('s3://stockenex/stockDataFileCount.txt') as fc:
        fileCount = int(fc.readline())

    Stock.objects.delete()
    for i in range(1, fileCount + 1):
        date = ""
        for line in open('s3://stockenex/stockData' + str(i) + '.csv'):
            if ('Symbol,"S, D","S, D"' in line
                    or "Trade in Profit Range" in line):
                continue
            if "Date" in line:
                date = line.split(",")[1]  #Date ,2020-05-06,
                continue
            lineInfo = line.split(',', 2)
            symbol = lineInfo[0]
            color = lineInfo[1].lower()
            if color == "cyan":
                color = "cyan3"
            if color in colorMap.keys():
                color = colorMap[color]
            color = string.upper(color)
            if color == "#005F00" or color == "#1CAC78":
                color = "#1CAC78"
            elif color == "#1F75FE" or color == "#000080" or color == "#00D7AF":
                color = "#00D7AF"

            value = lineInfo[2]

            st = Stock(symbol=symbol)
            if Stock.objects(Q(symbol=symbol)):
                st = Stock.objects(Q(symbol=symbol)).first()

            if color == "#FCE883":
                st.slw = []
                st.enwl = []
                st.enwh = []
                st.exwl = []
                st.exwh = []
                st.close = []
                st.high = []
                st.low = []
                st.date = []

            v = value

            LS = v.split(" ")[0]
            trend = v.split(" [ Enw=")[0].split('(')[1]
            enw = v.split("Enw= ")[1].split(" ")[0].split("(")[1].split(")")[0]
            exw = v.split("Exw= ")[1].split(" ")[0].split("(")[1].split(")")[0]
            if i > 3:
                slw = v.split("Slw= ")[1].split("]")[0]
            else:
                slw = v.split("Slw= ")[1].split(" ")[0].split("(")[1].split(
                    ")")[0]
            close = v.split("Close=")[1].split(" ")[0]
            high = v.split("High=")[1].split(" ")[0]
            low = v.split("Low=")[1].split(" ")[0]

            st.value = v
            st.color = color
            st.trend = trend
            st.LS = LS
            st.date.append(date)
            st.enwl.append(float(enw.split("-")[0]))
            st.enwh.append(float(enw.split("-")[1]))

            st.exwl.append(float(exw.split("-")[0]))
            st.exwh.append(float(exw.split("-")[1]))
            if i > 3:
                st.slw.append(float(slw))
            else:
                st.slw.append(float(slw.split("-")[0]))

            st.close.append(float(close))
            st.high.append(float(high))
            st.low.append(float(low))
            st.save()
    disconnect()