/// <summary>
        /// Cancel trade
        /// </summary>
        /// <param name="orderId">OrderId to cancel</param>
        /// <param name="origClientOrderId">ClientOrderId to cancel</param>
        private void CancelTrade(long orderId, string origClientOrderId)
        {
            var tradeParams = new CancelTradeParams
            {
                symbol            = _symbol,
                orderId           = orderId,
                origClientOrderId = origClientOrderId
            };

            var response = CancelTrade(tradeParams);
        }
        /// <summary>
        /// Cancel a paper trade for testing purposes
        /// </summary>
        /// <param name="tradeParams">Trade parameters</param>
        /// <returns>TradeResponse object</returns>
        private TradeResponse CancelPaperTrade(CancelTradeParams tradeParams)
        {
            var response = new TradeResponse
            {
                clientOrderId = $"PaperTrade_{tradeNumber}",
                orderId       = tradeNumber,
                status        = OrderStatus.FILLED,
                symbol        = tradeParams.symbol,
                transactTime  = _dtHelper.UTCtoUnixTime()
            };

            return(response);
        }
 /// <summary>
 /// Cancel a trade
 /// </summary>
 /// <param name="tradeParams">CancelTrade parameters</param>
 /// <returns>TradeResponse object</returns>
 private TradeResponse CancelTrade(CancelTradeParams tradeParams)
 {
     if (botSettings.tradingStatus == TradeStatus.LiveTrading)
     {
         return(_repo.DeleteTrade(tradeParams).Result);
     }
     else if (botSettings.tradingStatus == TradeStatus.PaperTrading)
     {
         return(CancelPaperTrade(tradeParams));
     }
     else
     {
         return(null);
     }
 }
Exemple #4
0
        /// <summary>
        /// Delete/Cancel a trade
        /// </summary>
        /// <param name="tradeParams">Trade to delete</param>
        /// <returns>TradeResponse object</returns>
        public async Task <TradeResponse> DeleteTrade(CancelTradeParams tradeParams)
        {
            string url = CreateUrl("/api/v3/order");

            var headers = GetRequestHeaders();

            headers.Add("symbol", tradeParams.symbol);
            if (tradeParams.orderId != 0)
            {
                headers.Add("orderId", tradeParams.orderId.ToString());
            }
            else if (!string.IsNullOrEmpty(tradeParams.origClientOrderId))
            {
                headers.Add("origClientOrderId", tradeParams.origClientOrderId);
            }
            headers.Add("timestamp", _dtHelper.UTCtoUnixTime().ToString());

            var response = await _restRepo.DeleteApi <TradeResponse>(url, headers);

            return(response);
        }
Exemple #5
0
        /// <summary>
        /// Delete/Cancel a trade
        /// </summary>
        /// <param name="tradeParams">Trade to delete</param>
        /// <returns>TradeResponse object</returns>
        public async Task <TradeResponse> DeleteTrade(CancelTradeParams tradeParams)
        {
            //var headers = GetRequestHeaders();
            var queryString = new List <string>();

            queryString.Add($"symbol={tradeParams.symbol}");
            if (tradeParams.orderId != 0)
            {
                queryString.Add($"orderId={tradeParams.orderId.ToString()}");
            }
            else if (!string.IsNullOrEmpty(tradeParams.origClientOrderId))
            {
                queryString.Add($"origClientOrderId={tradeParams.origClientOrderId}");
            }
            //queryString.Add($"timestamp={_dtHelper.UTCtoUnixTime().ToString()}");

            string url      = CreateUrl("/api/v3/order", true, queryString.ToArray(), true);
            var    response = await _restRepo.DeleteApi <TradeResponse>(url, GetRequestHeaders());

            return(response);
        }
Exemple #6
0
        /// <summary>
        /// Delete a trade
        /// </summary>
        /// <param name="tradeParams">CancelTradeParams object</param>
        /// <returns>TradeResponse object</returns>
        public TradeResponse DeleteTrade(CancelTradeParams tradeParams)
        {
            if (_thisExchange == Exchange.BINANCE)
            {
                var response = _bianceRepo.DeleteTrade(tradeParams).Result;

                return(response);
            }
            else if (_thisExchange == Exchange.GDAX)
            {
                var response = _gdaxRepo.CancelAllTradesRest().Result;

                var tradeResponse = new TradeResponse();

                if (response != null)
                {
                    tradeResponse.clientOrderId = response.OrderIds.ToList().FirstOrDefault().ToString();
                }

                return(tradeResponse);
            }
            else if (_thisExchange == Exchange.KUCOIN)
            {
                var response = _kuRepo.DeleteTrade(tradeParams.symbol, tradeParams.origClientOrderId, tradeParams.type).Result;

                var tradeResponse = new TradeResponse();

                if (response.code.Equals("OK"))
                {
                    tradeResponse.clientOrderId = tradeParams.origClientOrderId;
                }

                return(tradeResponse);
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// Cancel a stop loss
        /// </summary>
        /// <returns>Boolean value when complete</returns>
        private bool CancelStopLoss()
        {
            var tradeParams = new CancelTradeParams
            {
                symbol            = _symbol,
                orderId           = openStopLossList[0].orderId,
                origClientOrderId = openStopLossList[0].clientOrderId
            };

            var result = CancelTrade(tradeParams);

            bool stopLossCanceled = false;

            while (!stopLossCanceled)
            {
                stopLossCanceled = CheckTradeStatus(openStopLossList[0].orderId);
            }

            openStopLossList.RemoveAt(0);

            return(stopLossCanceled);
        }