Exemplo n.º 1
0
async def get_ohlc(exchange: str,
                   symbol: str = Query(..., title="symbol"),
                   timeframe: int = Query(..., title="candle timeframe")):
    try:
        api = rest_api_map[exchange]()
        response = await api.get_ohlc(symbol=symbol, timeframe=int(timeframe))
        if response.is_ok:
            return UJSONResponse(status_code=response.status_code,
                                 content={"data": response.value})
        else:
            return UJSONResponse(status_code=response.status_code,
                                 content={"error": response.value})
    except Exception as e:
        return UJSONResponse(status_code=status.HTTP_400_BAD_REQUEST,
                             content={"error": repr(e)})
Exemplo n.º 2
0
async def get_instrument(exchange: str,
                         symbol: str = Query(..., title="symbol")):

    try:
        api = rest_api_map[exchange]()
        response = await api.get_instrument(symbol=symbol)
        if response.is_ok:
            return UJSONResponse(status_code=response.status_code,
                                 content={**response.value})
        else:
            return UJSONResponse(status_code=response.status_code,
                                 content={"error": response.value})
    except Exception as e:
        return UJSONResponse(status_code=status.HTTP_400_BAD_REQUEST,
                             content={"error": repr(e)})
Exemplo n.º 3
0
async def get_closed_positions(exchange: str):
    try:
        api = rest_api_map[exchange]()
        response = await api.get_closed_positions_as_pandas()
        if response.is_ok:
            html_table = response.value.to_html()
            return HTMLResponse(content=html_table)
        else:
            return UJSONResponse(
                status_code=response.status_code,
                content={"error": response.value}
            )
    except Exception as e:
        return UJSONResponse(
            status_code=status.HTTP_400_BAD_REQUEST,
            content={"error": repr(e)}
        )
Exemplo n.º 4
0
async def get_open_orders(exchange: str,
                          mode: Literal["by_id", "to_list"] = Query(
                              ..., title="Sorting mode")):

    #! handle cases where exchange is unknown to return correct error message
    api = rest_api_map[exchange]()

    response = await api.get_open_orders(mode=mode)
    return UJSONResponse(status_code=response.status_code,
                         content=response.value)
Exemplo n.º 5
0
async def get_orderbook(
        exchange: str,
        symbol: str = Query(..., title="symbol"),
):

    try:
        api = rest_api_map[exchange]()
        response = await api.get_orderbook(symbol=symbol)
        if response.is_ok:
            return UJSONResponse(status_code=response.status_code,
                                 content={
                                     "sendingTime":
                                     response.value["sendingTime"],
                                     "symbol": response.value["symbol"],
                                     "asks": response.value["asks"],
                                     "bids": response.value["bids"]
                                 })
        else:
            return UJSONResponse(status_code=response.status_code,
                                 content={"error": response.value})
    except Exception as e:
        return UJSONResponse(status_code=status.HTTP_400_BAD_REQUEST,
                             content={"error": repr(e)})