예제 #1
0
def marketsEdit(idCrypt):
    # Recuperation des ressources statiques Bokeh
    js_resources = INLINE.render_js()
    css_resources = INLINE.render_css()
    # Creation de la Strategie
    stgyObj = StgyFactory("DEV").make()
    # Decryptage id
    idDecrypt = Crypt.decode(cfg._APP_SECRET_KEY, idCrypt)
    # Recuperation des infos
    data = MarketsModel().getMarketById(idDecrypt).to_dict('Records')
    # Recuperation des prix
    stgyObj.run(symbol=data[0]['symbol'], ut='H1')
    # Recuperation des Ordres
    df_orders = OrdersModel().getOrdersBySymbol(symbol=data[0]['symbol'])
    # Construction du Graphique avec Ordres
    graph = stgyObj.plot()
    graph.addOrders(df_orders)
    script, div = components(graph.save())
    # Preparation des données de la page
    data = {
        'id': idCrypt,
        # Graphique
        'plot_div': div,
        'plot_script': script,
        'js_resources': js_resources,
        'css_resources': css_resources
    }
    # Renvoi de la page
    return Render.htmlTemplate('home/marketEdit.html', data=data)
 def updateBdd(self):
     """
     Mise à jour de la BDD
     """
     # Initialisation du modele
     self._mdl = MarketsModel()
     for row in self._markets:
         self._mdl.upsert(record=row)
     pass
예제 #3
0
def updateById():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Decryptage id
        data["id"] = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        # Recuperation des infos
        MarketsModel().update(data)
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Changement du Statut',
                                   categorie="SUCCESS")
    else:
        abort(400)
예제 #4
0
def getAll():
    """Parse un fichier de log dans un DataFrame"""
    if request.method == 'POST':
        # Recuperation des infos
        data = MarketsModel().getAll()
        # Cryptage des id
        data["id"] = data.apply(
            lambda x: Crypt.encode(cfg._APP_SECRET_KEY, x['id']), axis=1)
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Marchés',
                                   categorie="SUCCESS",
                                   data=data.to_dict("records"))
    else:
        abort(400)
예제 #5
0
 def process_markets(self):
     """
     =============================================================
     Traiter les marchés à partir de la source de marché configurée
     =============================================================
     """
     # Recuperation des Marchés à Trader
     markets_to_trade = MarketsModel().get_to_trade()
     if markets_to_trade is None or markets_to_trade.empty:
         raise StopIteration('Aucun marchés à trader')
     # Parcours des Marchés
     LOGGER.info("Il y a {} marché(s) à analyser".format(
         len(markets_to_trade)))
     LOGGER.info("Debut Iteration des Marchés")
     for idx, item in markets_to_trade.iterrows():
         self.process_market(market=item)
     raise StopIteration("Fin iteration des Marchés")
예제 #6
0
def getMarketById():
    if request.method == 'POST':
        # Recuperation + traitement des données du formulaire
        data = Utils.parseForm(dict(request.form))
        # Decryptage id
        idDecrypt = Crypt.decode(cfg._APP_SECRET_KEY, data["id"])
        # Recuperation des infos
        df = MarketsModel().getMarketById(idDecrypt)
        data = {}
        data["info"] = {}
        data["info"] = df.to_dict("Records")
        # Retour du message
        return Render.jsonTemplate(_OPERATION,
                                   'Marchés',
                                   categorie="SUCCESS",
                                   data=data)
    else:
        abort(400)