Source code for robin_stocks.tda.orders

from robin_stocks.tda.helper import (format_inputs, login_required,
                                     request_delete, request_get,
                                     request_headers)
from robin_stocks.tda.urls import URLS


[docs]@login_required @format_inputs def place_order(account_id, order_payload, jsonify=None): """ Place an order for a given account. :param account_id: The account id. :type account_id: str :param order_payload: A dictionary of key value pairs for the infromation you want to send to order. :type order_payload: str :param jsonify: If set to false, will return the raw response object. \ If set to True, will return a dictionary parsed using the JSON format. :type jsonify: Optional[str] :returns: Returns a tuple where the first entry in the tuple is a requests reponse object \ or a dictionary parsed using the JSON format and the second entry is an error string or \ None if there was not an error. """ url = URLS.orders(account_id) data, error = request_headers(url, order_payload, jsonify) return data, error
[docs]@login_required @format_inputs def cancel_order(account_id, order_id, jsonify=None): """ Cancel an order for a given account. :param account_id: The account id. :type account_id: str :param order_id: The order id. :type order_id: str :param jsonify: If set to false, will return the raw response object. \ If set to True, will return a dictionary parsed using the JSON format. :type jsonify: Optional[str] :returns: Returns a tuple where the first entry in the tuple is a requests reponse object \ or a dictionary parsed using the JSON format and the second entry is an error string or \ None if there was not an error. """ url = URLS.order(account_id, order_id) data, error = request_delete(url, jsonify) return data, error
[docs]@login_required @format_inputs def get_order(account_id, order_id, jsonify=None): """ Gets information for an order for a given account. :param account_id: The account id. :type account_id: str :param order_id: The order id. :type order_id: str :param jsonify: If set to false, will return the raw response object. \ If set to True, will return a dictionary parsed using the JSON format. :type jsonify: Optional[str] :returns: Returns a tuple where the first entry in the tuple is a requests reponse object \ or a dictionary parsed using the JSON format and the second entry is an error string or \ None if there was not an error. """ url = URLS.order(account_id, order_id) data, error = request_get(url, None, jsonify) return data, error
[docs]@login_required @format_inputs def get_orders_for_account(account_id, max_results=None, from_time=None, to_time=None, status=None, jsonify=None): """ Gets all the orders for a given account. :param account_id: The account id. :type account_id: Optional[str] :param max_results: The max number of orders to retrieve. :type max_results: Optional[str] :param from_time: Specifies that no orders entered before this time should be returned. Valid ISO-8601 formats are : \ yyyy-MM-dd. Date must be within 60 days from today's date. 'toEnteredTime' must also be set. :type from_time: Optional[str] :param to_time: Specifies that no orders entered after this time should be returned.Valid ISO-8601 formats are : \ yyyy-MM-dd. 'fromEnteredTime' must also be set. :type to_time: Optional[str] :param status: Specifies that only orders of this status should be returned. Possible values are \ AWAITING_PARENT_ORDER, AWAITING_CONDITION, AWAITING_MANUAL_REVIEW, ACCEPTED, AWAITING_UR_OUT, PENDING_ACTIVATION, QUEUED \ WORKING, REJECTED, PENDING_CANCEL, CANCELED, PENDING_REPLACE, REPLACED, FILLED, EXPIRED :type status: Optional[str] :param jsonify: If set to false, will return the raw response object. \ If set to True, will return a dictionary parsed using the JSON format. :type jsonify: Optional[str] :returns: Returns a tuple where the first entry in the tuple is a requests reponse object \ or a dictionary parsed using the JSON format and the second entry is an error string or \ None if there was not an error. """ url = URLS.orders(account_id) payload = {} if max_results: payload["maxResults"] = max_results if from_time: payload["fromEnteredTime"] = from_time if to_time: payload["toEnteredTime"] = to_time if status: payload["status"] = status data, error = request_get(url, payload, jsonify) return data, error