diff --git a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
index dcda4d5..f9c37ab 100644
--- a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
+++ b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
@@ -144,5 +144,12 @@
+
+
+ 获取指定交易对现货最新成交价
+
+
+
+
diff --git a/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs b/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs
index 70266fd..49713a2 100644
--- a/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs
+++ b/Binance.TradeRobot.Business/Business/TradeBusiness/D21TradeBusiness.cs
@@ -20,7 +20,7 @@ namespace Binance.TradeRobot.Business
{
private DingBusiness dingBusiness;
private GlobalContext globalContext;
-
+ private IList validStateList;
public Enums.TradePolicy TradePolicy => Enums.TradePolicy.D21;
public D21TradeBusiness(IFreeSql fsql,
@@ -32,6 +32,12 @@ namespace Binance.TradeRobot.Business
{
this.dingBusiness = dingBusiness;
this.globalContext = globalContext;
+ validStateList = new List()
+ {
+ Enums.SpotOrderState.Filled,
+ Enums.SpotOrderState.PartiallyFilled,
+ Enums.SpotOrderState.Expired
+ };
}
public void TrendChanged(T singalRequest, T1 robot) where T : BaseSingalRequest where T1 : RobotResponse
@@ -121,6 +127,16 @@ namespace Binance.TradeRobot.Business
}
}
#endregion
+
+ #region 计算下单数量
+ var recentSellOrder = fsql.Select().Where(o => o.RobotId == robot.Id &&
+ o.TradeDirection == Enums.TradeDirection.Sell &&
+ validStateList.Contains(o.State))
+ .OrderByDescending(o => o.LastTradeTime)
+ .ToOne();
+
+ #endregion
+
}
catch (Exception ex)
{
diff --git a/Binance.TradeRobot.Model/Base/Enums.cs b/Binance.TradeRobot.Model/Base/Enums.cs
index c947a3e..9d165e7 100644
--- a/Binance.TradeRobot.Model/Base/Enums.cs
+++ b/Binance.TradeRobot.Model/Base/Enums.cs
@@ -110,11 +110,34 @@ namespace Binance.TradeRobot.Model.Base
}
///
- /// 订单状态
+ /// 现货订单订单状态
///
- public enum OrderState
+ public enum SpotOrderState
{
- Created
+ ///
+ /// 已创建
+ ///
+ Created,
+ ///
+ /// 部分成交
+ ///
+ PartiallyFilled,
+ ///
+ /// 完全成交
+ ///
+ Filled,
+ ///
+ /// 用户取消
+ ///
+ Canceled,
+ ///
+ /// 拒绝
+ ///
+ Rejected,
+ ///
+ /// 交易引擎取消 没有完全成交
+ ///
+ Expired
}
///
diff --git a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml
index fe5eca9..0b1c0fd 100644
--- a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml
+++ b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml
@@ -707,5 +707,20 @@
最近一次小趋势信号
+
+
+ 错误的交叉信号
+
+
+
+
+ 错误交叉信号的K线时间戳
+
+
+
+
+ 最近一次空交叉时的成交价
+
+
diff --git a/Binance.TradeRobot.Model/Db/Order/SpotOrder.cs b/Binance.TradeRobot.Model/Db/Order/SpotOrder.cs
index f0bef2c..9fd3119 100644
--- a/Binance.TradeRobot.Model/Db/Order/SpotOrder.cs
+++ b/Binance.TradeRobot.Model/Db/Order/SpotOrder.cs
@@ -50,7 +50,7 @@ namespace Binance.TradeRobot.Model.Db
[Column(MapType = typeof(int), DbType = "int")]
- public Enums.OrderState State { get; set; }
+ public Enums.SpotOrderState State { get; set; }
[Column(MapType = typeof(int), DbType = "int")]
public Enums.TradeDirection TradeDirection { get; set; }