예제 #1
0
		public async Task<Infrastructure.Common.Models.Trading.Order> CreateOrder(Infrastructure.Common.Models.Trading.Order initialOrder, bool usePostOnly = false)
		{
			var innerModel = initialOrder.ToInnerModel();

			var connection = new HitBtcConnection();
			var request = new RestRequest("order", Method.POST);
			request.ConfigureRequest();

			request.AddJsonBody(new
			{
				clientOrderId = innerModel.ClientId,
				symbol = innerModel.CurrencyPairId,
				side = innerModel.OrderSide,
				type = innerModel.OrderType,
				timeInForce = innerModel.TimeInForce,
				quantity = innerModel.Quantity.ToString("#0.########################"),
				price = innerModel.Price.ToString("#0.########################"),
				stopPrice = innerModel.StopPrice.ToString("#0.########################"),
				postOnly = usePostOnly
			});

			var exchangeConnectionSettings = _configurationService.GetExchangeConnectionSettings();

			var response = await connection.DoRequest(
				request,
				exchangeConnectionSettings.ApiKey,
				exchangeConnectionSettings.SecretKey);

			var responseOrder = response
				.ExtractResponseData<Order>()
				?.ToOuterModel(initialOrder.CurrencyPair);
			return responseOrder;
		}
예제 #2
0
		public async Task<Infrastructure.Common.Models.Trading.Order> CancelOrder(Infrastructure.Common.Models.Trading.Order initialOrder)
		{
			var innerModel = initialOrder.ToInnerModel();

			var connection = new HitBtcConnection();
			var request = new RestRequest(String.Format("order/{0}", innerModel.ClientId), Method.DELETE);
			request.ConfigureRequest();

			var exchangeConnectionSettings = _configurationService.GetExchangeConnectionSettings();

			var response = await connection.DoRequest(
				request,
				exchangeConnectionSettings.ApiKey,
				exchangeConnectionSettings.SecretKey);

			var responseOrder = response
				.ExtractResponseData<Order>()
				?.ToOuterModel(initialOrder.CurrencyPair);
			return responseOrder;
		}