diff --git a/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs b/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs index 1a47caa..9d04074 100644 --- a/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs +++ b/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs @@ -146,7 +146,7 @@ namespace Binance.TradeRobot.Business if (balance < previewTradeAmount) { - #region 验证借币比例 + #region 验证借币 step = "验证借币"; diffAmount = previewTradeAmount - balance; var diffRatio = diffAmount / balance * 100; //借币比例 @@ -226,7 +226,31 @@ namespace Binance.TradeRobot.Business #endregion #region 下单 + step = "下单"; + var orderId = apiClient.IsolatedMarginPlaceOrder(robot.Symbol, + Enums.TradeDirection.Buy, + Enums.OrderType.MARKET, + quoteAmount: previewTradeAmount); + var buyOrder = new SpotOrder() + { + Id = orderId, + CreateTime = DateTime.Now, + ExchangeId = robot.ExchangeId, + LoanAmount = diffAmount, + OrderType = Enums.OrderType.MARKET, + PolicyType = Enums.TradePolicy.D21, + RobotId = robot.Id, + State = Enums.SpotOrderState.Created, + Symbol = robot.Symbol, + TradeDirection = Enums.TradeDirection.Buy + }; + fsql.Transaction(() => + { + fsql.Insert(buyOrder).ExecuteAffrows(); + if (previewTradeAmount != d21Robot.D21Policy.Position) //借币失败 仓位减少 + fsql.Update(d21Robot.D21Policy.Id).Set(d => d.Position, previewTradeAmount).ExecuteAffrows(); + }); #endregion } diff --git a/SDKAdapter/APIClient/BaseAPIClient.cs b/SDKAdapter/APIClient/BaseAPIClient.cs index 8dce4ee..00a142a 100644 --- a/SDKAdapter/APIClient/BaseAPIClient.cs +++ b/SDKAdapter/APIClient/BaseAPIClient.cs @@ -84,11 +84,11 @@ namespace SDKAdapter.APIClient public virtual long IsolatedMarginPlaceOrder(string symbol, Enums.TradeDirection tradeDirection, Enums.OrderType orderType, - decimal? quantity, - decimal? quoteAmount, - decimal? price, - decimal? stopPrice, - string newClientOrderId) + decimal? quantity = null, + decimal? quoteAmount = null, + decimal? price = null, + decimal? stopPrice = null, + string newClientOrderId = "") { throw new NotImplementedException(); } diff --git a/SDKAdapter/APIClient/BinanceAPIClient.cs b/SDKAdapter/APIClient/BinanceAPIClient.cs index faa36ad..a16a1a2 100644 --- a/SDKAdapter/APIClient/BinanceAPIClient.cs +++ b/SDKAdapter/APIClient/BinanceAPIClient.cs @@ -107,11 +107,11 @@ namespace SDKAdapter.APIClient public override long IsolatedMarginPlaceOrder(string symbol, Enums.TradeDirection tradeDirection, Enums.OrderType orderType, - decimal? quantity, - decimal? quoteAmount, - decimal? price, - decimal? stopPrice, - string newClientOrderId) + decimal? quantity = null, + decimal? quoteAmount = null, + decimal? price = null, + decimal? stopPrice = null, + string newClientOrderId = "") { var binanceOrderSite = (Binance.Net.Enums.OrderSide)(int)tradeDirection; var binanceOrderType = (Binance.Net.Enums.SpotOrderType)(int)orderType;