From 15e483678cce8b21db6be19aa86f80c340e4ef9b Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 15 May 2022 06:52:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E4=BA=A4=E5=8F=89=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TradeBusiness/D21TradeBusiness.cs | 26 ++++++++++++++++++- SDKAdapter/APIClient/BaseAPIClient.cs | 10 +++---- SDKAdapter/APIClient/BinanceAPIClient.cs | 10 +++---- 3 files changed, 35 insertions(+), 11 deletions(-) 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;