Example #1
0
def signal(request):
    '''
        # example request: GET localhost:8000/signal?currency=BTC&date=yyyy-mm-dd

        Return value:
        Returns buy or sell of currency queried for a given date, starting from 2013 up to today. If no date is given, latest available is returned.
    '''
    # initialize variable
    search_date = ""

    try:
        # Get currency from request
        user_currency = request.GET.get('currency', '')
        # currency is required to be given in request.
        if user_currency == "":
            raise TrackException("Please specify a currency in your request.", "Bad Request")
        my_signal = Signal(user_currency)

        # Get date from request. Date is optional
        user_date = request.GET.get('date', search_date)

        if user_date != "":
            search_date = datetime.datetime.strptime(user_date, '%Y-%m-%d')

        return_message = my_signal.get_signal(search_date)
    except Exception as exc:
        return JsonResponse({"status_code": 409,
                             "status": "Conflict",
                             "type": type(exc).__name__,
                             "message": exc.__str__()})
    else:
        return JsonResponse(return_message)
Example #2
0
def signal(request):
    '''
        # example request: GET localhost:8000/signal?currency=BTC&date=yyyy-mm-dd

        Variables:
        currency (str) =
        date (str) = date of signal

        Return value:
        Returns buy or sell of currency queried for a given date, starting from 2013 up to today. If no date is given, latest available is returned.
    '''
    try:
        # Get queries from request
        user_currency = request.GET.get('currency', '')
        user_date = request.GET.get('date', '')

        search_date = datetime.datetime.strptime(user_date, '%Y-%m-%d')
        my_signal = Signal()
        return_message = my_signal.get_signal(user_currency, search_date)
    except Exception as exc:
        return JsonResponse({
            "status_code": 409,
            "status": "Conflict",
            "type": type(exc).__name__,
            "message": exc.__str__()
        })
    else:
        return JsonResponse(return_message)
Example #3
0
def update_signal(request):
    '''
        Updates signal and prior_period_candle for all candle objects. We can use this if we have already loaded candle data but need to update the values on its own.
        sample: PATCH localhost:8000/update/signal?currency=BTC
    '''
    if request.method == "PATCH":
        try:
            # Get currency from request
            user_currency = request.GET.get('currency', '')
            # currency is required to be given in request.
            if user_currency == "":
                raise TrackException("Please specify a currency in your request.", "Bad Request")
            my_signal = Signal(user_currency)
            confirm_message = my_signal.update_signal()

        except Exception as exc:
            return JsonResponse({"status_code": 409,
                                 "status": "Conflict",
                                 "type": type(exc).__name__,
                                 "message": exc.__str__()})

        else:

            return JsonResponse({"status_code": 202, "status": "Accepted",
                                 "message": confirm_message}
                                )
    else:
        return JsonResponse(bad_request_default)
Example #4
0
def update_signal(request, simulation_id=""):
    '''
        Updates signal and prior_period_candle for all candle objects. We can use this if we have already loaded candle data but need to update the values on its own.
        Note: simulation_id is optional, if none is given, all Simulations will be re-calculated (should be used when we re-load the source, then we need to re-calculate all Sims).
        sample: PATCH localhost:8000/update/1/signal?currency=BTC
    '''
    if request.method == "PATCH":
        try:
            # initiate variables
            confirm_message = ""
            # Get currency from request
            user_currency = request.GET.get('currency', '')
            # currency is required to be given in request.
            if user_currency == "":
                raise TrackException(
                    "Please specify a currency in your request.",
                    "Bad Request")

            else:
                my_signal = Signal(currency=user_currency,
                                   simulation_id=simulation_id)
                # Get prediction days from request (this is necessary only starting with sim id 4)
                my_signal.prediction_days = int(request.GET.get('days', '90'))

                confirm_message = my_signal.update_signal()

        except Exception as exc:
            return JsonResponse({
                "status_code": 409,
                "status": "Conflict",
                "type": type(exc).__name__,
                "message": exc.__str__()
            })

        else:

            return JsonResponse({
                "status_code": 202,
                "status": "Accepted",
                "message": confirm_message
            })
    else:
        return JsonResponse(bad_request_default)