Beispiel #1
0
        /// <summary>
        /// Update an exiting Tradier Order:
        /// </summary>
        public TradierOrderResponse ChangeOrder(long accountId, long orderId, TradierOrderType type = TradierOrderType.Market, TradierOrderDuration duration = TradierOrderDuration.GTC, decimal price = 0, decimal stop = 0)
        {
            var response = new TradierOrderResponse();

            try
            {
                //Create Request:
                var request = new RestRequest("accounts/{accountId}/orders/{orderId}");
                request.AddUrlSegment("accountId", accountId.ToString());
                request.AddUrlSegment("orderId", orderId.ToString());
                request.Method = Method.PUT;

                //Add Data:
                request.AddParameter("type", GetEnumDescription(type));
                request.AddParameter("duration", GetEnumDescription(duration));
                if (price != 0)
                {
                    request.AddParameter("price", price.ToString());
                }
                if (stop != 0)
                {
                    request.AddParameter("stop", stop.ToString());
                }

                //Send:
                response = Execute <TradierOrderResponse>(request, TradierApiRequestType.Orders);
            }
            catch (Exception err)
            {
                Log.Error("Tradier.ChangeOrder(): " + err.Message);
            }

            return(response);
        }
Beispiel #2
0
        /// <summary>
        /// Place Order through API.
        /// accounts/{account-id}/orders
        /// </summary>
        public TradierOrderResponse PlaceOrder(long accountId, TradierOrderClass classification, TradierOrderDirection direction, string symbol, decimal quantity, decimal price = 0, decimal stop = 0, string optionSymbol = "", TradierOrderType type = TradierOrderType.Market, TradierOrderDuration duration = TradierOrderDuration.GTC)
        {
            var response = new TradierOrderResponse();

            try
            {
                //Compose the request:
                var request = new RestRequest("accounts/{accountId}/orders");
                request.AddUrlSegment("accountId", accountId.ToString());

                //Add data:
                request.AddParameter("class", GetEnumDescription(classification));
                request.AddParameter("symbol", symbol);
                request.AddParameter("duration", GetEnumDescription(duration));
                request.AddParameter("type", GetEnumDescription(type));
                request.AddParameter("quantity", quantity);
                request.AddParameter("side", GetEnumDescription(direction));

                //Add optionals:
                if (price > 0)
                {
                    request.AddParameter("price", price);
                }
                if (stop > 0)
                {
                    request.AddParameter("stop", stop);
                }
                if (optionSymbol != "")
                {
                    request.AddParameter("option_symbol", optionSymbol);
                }

                //Set Method:
                request.Method = Method.POST;

                response = Execute <TradierOrderResponse>(request, TradierApiRequestType.Orders);
            }
            catch (Exception err)
            {
                Log.Error("Tradier.PlaceOrder(): " + err.Message);
            }

            return(response);
        }
Beispiel #3
0
        /// <summary>
        /// Cancel the order with this account and id number
        /// </summary>
        public TradierOrderResponse CancelOrder(long accountId, long orderId)
        {
            var response = new TradierOrderResponse();

            try
            {
                //Compose Request:
                var request = new RestRequest("accounts/{accountId}/orders/{orderId}");
                request.AddUrlSegment("accountId", accountId.ToString());
                request.AddUrlSegment("orderId", orderId.ToString());
                request.Method = Method.DELETE;

                //Transmit Request:
                response = Execute <TradierOrderResponse>(request, TradierApiRequestType.Orders);
            }
            catch (Exception err)
            {
                Log.Error("Tradier.CancelOrder(): " + err.Message);
            }

            return(response);
        }