diff --git a/Binance.TradeRobot.API/Binance.TradeRobot.API.xml b/Binance.TradeRobot.API/Binance.TradeRobot.API.xml
index 8cb7238..3cec8e8 100644
--- a/Binance.TradeRobot.API/Binance.TradeRobot.API.xml
+++ b/Binance.TradeRobot.API/Binance.TradeRobot.API.xml
@@ -31,17 +31,29 @@
-
+
+
+ 开启机器人
+
+
+
+
+
+ 停止机器人
+
+
+
+
创建金字塔策略机器人
-
+
-
+
创建动2.1策略机器人
-
+
@@ -49,6 +61,12 @@
+
+
+ 编辑动2.1策略
+
+
+
用户登录
diff --git a/Binance.TradeRobot.API/Controllers/RobotController.cs b/Binance.TradeRobot.API/Controllers/RobotController.cs
index 8d38e25..8acb9b2 100644
--- a/Binance.TradeRobot.API/Controllers/RobotController.cs
+++ b/Binance.TradeRobot.API/Controllers/RobotController.cs
@@ -17,24 +17,44 @@ namespace Binance.TradeRobot.API.Controllers
this.robotBusiness = robotBusiness;
}
+ ///
+ /// 开启机器人
+ ///
+ ///
+ [HttpPost("{robotId}")]
+ public void StartRobot([FromRoute] long robotId)
+ {
+ robotBusiness.StartRobot(robotId);
+ }
+
+ ///
+ /// 停止机器人
+ ///
+ ///
+ [HttpPost("{robotId}")]
+ public void StopRobot([FromRoute] long robotId)
+ {
+ robotBusiness.StopRobot(robotId);
+ }
+
///
/// 创建金字塔策略机器人
///
- ///
+ ///
[HttpPost]
- public void AddPyramidPolicyRobot([FromBody] AddPyramidPolicyRobotRequest addPyramidPolicyRobotRequest)
+ public void AddPyramidPolicyRobot([FromBody] AddRobotRequest addRobotRequest)
{
- robotBusiness.AddPyramidPolicyRobot(addPyramidPolicyRobotRequest);
+ robotBusiness.AddPyramidPolicyRobot(addRobotRequest);
}
///
/// 创建动2.1策略机器人
///
- ///
+ ///
[HttpPost]
- public void AddD21PolicyRobot([FromBody] AddD21PolicyRobotRequest addD21PolicyRobotRequest)
+ public void AddD21PolicyRobot([FromBody] AddRobotRequest addRobotRequest)
{
- robotBusiness.AddD21PolicyRobot(addD21PolicyRobotRequest);
+ robotBusiness.AddD21PolicyRobot(addRobotRequest);
}
///
diff --git a/Binance.TradeRobot.API/Controllers/SpotPolicyController.cs b/Binance.TradeRobot.API/Controllers/SpotPolicyController.cs
new file mode 100644
index 0000000..81be016
--- /dev/null
+++ b/Binance.TradeRobot.API/Controllers/SpotPolicyController.cs
@@ -0,0 +1,30 @@
+using Binance.TradeRobot.Business;
+using Binance.TradeRobot.Model.Dto;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Binance.TradeRobot.API.Controllers
+{
+ [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
+ public class SpotPolicyController : BaseApiController
+ {
+ private SpotPolicyBusiness spotPolicyBusiness;
+
+ public SpotPolicyController(SpotPolicyBusiness spotPolicyBusiness)
+ {
+ this.spotPolicyBusiness = spotPolicyBusiness;
+ }
+
+ ///
+ /// 编辑动2.1策略
+ ///
+ ///
+ [HttpPost]
+ public void EditD21Policy([FromBody] EditD21PolicyRequest editD21PolicyRequest)
+ {
+ spotPolicyBusiness.EditD21Policy(editD21PolicyRequest);
+ }
+ }
+}
diff --git a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
index 1588b16..df414b2 100644
--- a/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
+++ b/Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
@@ -28,17 +28,28 @@
机器人Id
-
+
添加金字塔策略机器人
-
+
-
+
添加动2.1策略机器人
-
+
+
+
+
+ 获取动2.1策略机器人列表
+
+
+
+
+
+ 现货策略
+
diff --git a/Binance.TradeRobot.Business/Business/RobotBusiness.cs b/Binance.TradeRobot.Business/Business/RobotBusiness.cs
index 7c3b541..9186379 100644
--- a/Binance.TradeRobot.Business/Business/RobotBusiness.cs
+++ b/Binance.TradeRobot.Business/Business/RobotBusiness.cs
@@ -6,6 +6,7 @@ using Binance.TradeRobot.Model.Db;
using Binance.TradeRobot.Model.Dto;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.DependencyInjection;
+using System;
using System.Collections.Generic;
using System.Data.Common;
using Yitter.IdGenerator;
@@ -45,6 +46,16 @@ namespace Binance.TradeRobot.Business
throw new BusinessException("同一个交易所账号下只允许存在一个交易对");
}
+ public void StartRobot(long robotId)
+ {
+
+ }
+
+ public void StopRobot(long robotId)
+ {
+
+ }
+
///
/// 添加机器人和账户
///
@@ -61,6 +72,9 @@ namespace Binance.TradeRobot.Business
TradePolicy = addRobotRequest.TradePolicy,
BusinessType = addRobotRequest.TradePolicy.GetBusinessType(),
ExchangeId = addRobotRequest.ExchangeId,
+ CreateTime = DateTime.Now,
+ RunningTime = 0,
+ State = Enums.RobotState.Stop
}).WithTransaction(tran).ExecuteAffrows();
fsql.Insert(new RobotAccount()
@@ -77,16 +91,16 @@ namespace Binance.TradeRobot.Business
///
/// 添加金字塔策略机器人
///
- ///
- public void AddPyramidPolicyRobot(AddPyramidPolicyRobotRequest addPyramidPolicyRobotRequest)
+ ///
+ public void AddPyramidPolicyRobot(AddRobotRequest addRobotRequest)
{
- CheckRobotRegister(addPyramidPolicyRobotRequest, out ExchangeAPIKey exchangeAPIKey);
- var pyramidPolicy = addPyramidPolicyRobotRequest.Map();
+ CheckRobotRegister(addRobotRequest, out ExchangeAPIKey exchangeAPIKey);
+ var pyramidPolicy = new PyramidPolicy();
pyramidPolicy.Id = idGenerator.NewLong();
fsql.Transaction(() =>
{
var tran = fsql.Ado.TransactionCurrentThread;
- pyramidPolicy.RobotId = AddRobotWithTran(addPyramidPolicyRobotRequest, tran);
+ pyramidPolicy.RobotId = AddRobotWithTran(addRobotRequest, tran);
fsql.Insert(pyramidPolicy).ExecuteAffrows();
});
@@ -96,20 +110,30 @@ namespace Binance.TradeRobot.Business
///
/// 添加动2.1策略机器人
///
- ///
- public void AddD21PolicyRobot(AddD21PolicyRobotRequest addD21PolicyRobotRequest)
+ ///
+ public void AddD21PolicyRobot(AddRobotRequest addRobotRequest)
{
- CheckRobotRegister(addD21PolicyRobotRequest, out _);
- var d21Policy = addD21PolicyRobotRequest.Map();
- d21Policy.Id = idGenerator.NewLong();
+ CheckRobotRegister(addRobotRequest, out _);
+ var d21Policy = new D21Policy()
+ {
+ Id = idGenerator.NewLong(),
+ CreateTime = DateTime.Now,
+ ExecutionMode = Enums.ExecutionMode.Both,
+ IsEnabledIncreasePurchase = true,
+ IsEnableRemedyForErrorCrossSignal = true
+ };
fsql.Transaction(() =>
{
var tran = fsql.Ado.TransactionCurrentThread;
- d21Policy.RobotId = AddRobotWithTran(addD21PolicyRobotRequest, tran);
+ d21Policy.RobotId = AddRobotWithTran(addRobotRequest, tran);
fsql.Insert(d21Policy).ExecuteAffrows();
});
}
+ ///
+ /// 获取动2.1策略机器人列表
+ ///
+ ///
public IList GetD21PolicyRobotList()
{
var robotList = fsql.Select().InnerJoin((r, ra, d) => r.Id == ra.RobotId)
@@ -140,7 +164,14 @@ namespace Binance.TradeRobot.Business
D21PeriodicSignal = d.PeriodicSignal,
D21PolicyId = d.Id,
D21Position = d.Position,
- D21StopLossRatio = d.StopLossRatio
+ D21Assets = d.Assets,
+ D21Level1PositionStopLossRatio = d.Level1PositionStopLossRatio,
+ D21Level1PriceStopLossRatio = d.Level1PriceStopLossRatio,
+ D21Level2PositionStopLossRatio = d.Level2PositionStopLossRatio,
+ D21Level2PriceStopLossRatio = d.Level2PriceStopLossRatio,
+ D21MaxExchangeLoanRatio = d.MaxExchangeLoanRatio,
+ D21MaxSystemLoanRatio = d.MaxSystemLoanRatio,
+ D21CreateTime = d.CreateTime
}).Map>();
diff --git a/Binance.TradeRobot.Business/Business/SpotPolicyBusiness.cs b/Binance.TradeRobot.Business/Business/SpotPolicyBusiness.cs
new file mode 100644
index 0000000..0892cce
--- /dev/null
+++ b/Binance.TradeRobot.Business/Business/SpotPolicyBusiness.cs
@@ -0,0 +1,39 @@
+using Binance.TradeRobot.Common.DI;
+using Binance.TradeRobot.Common.Extensions;
+using Binance.TradeRobot.Model.Base;
+using Binance.TradeRobot.Model.Db;
+using Binance.TradeRobot.Model.Dto;
+using Microsoft.Extensions.Caching.Memory;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Yitter.IdGenerator;
+
+namespace Binance.TradeRobot.Business
+{
+ ///
+ /// 现货策略
+ ///
+ [BatchRegistration(ServiceLifetime.Singleton, RegistrationType.Self)]
+ public class SpotPolicyBusiness : BaseBusiness
+ {
+ public SpotPolicyBusiness(IFreeSql fsql, NLogManager logManager, IIdGenerator idGenerator, IMemoryCache memoryCache) : base(fsql, logManager, idGenerator, memoryCache)
+ {
+
+ }
+
+ public void EditD21Policy(EditD21PolicyRequest editD21PolicyRequest)
+ {
+ var d21policy = fsql.Select(editD21PolicyRequest.Id).ToOne();
+ if (d21policy == null)
+ throw new BusinessException("d21策略不存在");
+ editD21PolicyRequest.Map(d21policy);
+ fsql.Update().SetSource(d21policy).ExecuteAffrows();
+
+ /*取消历史委托订单*/
+
+ /*检查是否有持仓 如果有重新下委托单*/
+ }
+ }
+}
diff --git a/Binance.TradeRobot.Model/Base/MappingProfiles.cs b/Binance.TradeRobot.Model/Base/MappingProfiles.cs
index 9ac3a42..4a9ef0d 100644
--- a/Binance.TradeRobot.Model/Base/MappingProfiles.cs
+++ b/Binance.TradeRobot.Model/Base/MappingProfiles.cs
@@ -16,9 +16,6 @@ namespace Binance.TradeRobot.Model.Base
CreateMap();
CreateMap();
- CreateMap();
- CreateMap();
-
CreateMap().ForPath(t => t.RobotAccount.Id, opt => opt.MapFrom(f => f.RobotAccountId))
.ForPath(t => t.RobotAccount.RobotId, opt => opt.MapFrom(f => f.Id))
.ForPath(t => t.RobotAccount.SoptCurrentcyAmount, opt => opt.MapFrom(f => f.SoptCurrentcyAmount))
@@ -35,9 +32,18 @@ namespace Binance.TradeRobot.Model.Base
.ForPath(t => t.D21Policy.IsEnableRemedyForErrorCrossSignal, opt => opt.MapFrom(f => f.D21IsEnableRemedyForErrorCrossSignal))
.ForPath(t => t.D21Policy.PeriodicSignal, opt => opt.MapFrom(f => f.D21PeriodicSignal))
.ForPath(t => t.D21Policy.MaxFollowPurchaseRatio, opt => opt.MapFrom(f => f.D21MaxFollowPurchaseRatio))
- .ForPath(t => t.D21Policy.StopLossRatio, opt => opt.MapFrom(f => f.D21StopLossRatio))
.ForPath(t => t.D21Policy.CreateTime, opt => opt.MapFrom(f => f.D21CreateTime))
- .ForPath(t => t.D21Policy.ExecutionMode, opt => opt.MapFrom(f => f.D21ExecutionMode));
+ .ForPath(t => t.D21Policy.ExecutionMode, opt => opt.MapFrom(f => f.D21ExecutionMode))
+ .ForPath(t => t.D21Policy.Assets, opt => opt.MapFrom(f => f.D21Assets))
+ .ForPath(t => t.D21Policy.MaxExchangeLoanRatio, opt => opt.MapFrom(f => f.D21MaxExchangeLoanRatio))
+ .ForPath(t => t.D21Policy.MaxSystemLoanRatio, opt => opt.MapFrom(f => f.D21MaxSystemLoanRatio))
+ .ForPath(t => t.D21Policy.Level1PositionStopLossRatio, opt => opt.MapFrom(f => f.D21Level1PositionStopLossRatio))
+ .ForPath(t => t.D21Policy.Level1PriceStopLossRatio, opt => opt.MapFrom(f => f.D21Level1PriceStopLossRatio))
+ .ForPath(t => t.D21Policy.Level2PositionStopLossRatio, opt => opt.MapFrom(f => f.D21Level2PositionStopLossRatio))
+ .ForPath(t => t.D21Policy.Level2PriceStopLossRatio, opt => opt.MapFrom(f => f.D21Level2PriceStopLossRatio));
+
+ CreateMap();
+ CreateMap();
}
}
}
diff --git a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml
index cf27d2d..4dc3a8a 100644
--- a/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml
+++ b/Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml
@@ -209,6 +209,16 @@
最大追高比例
+
+
+ 最大系统借币比例
+
+
+
+
+ 最大交易所借币比例
+
+
信号周期
@@ -219,9 +229,29 @@
仓位
-
+
+
+ 配置资产
+
+
+
+
+ 一级止损-成交价亏损比例
+
+
+
+
+ 一级止损-仓位止损比例
+
+
+
+
+ 二级止损-成交价亏损比例
+
+
+
- 止损比例
+ 二级止损-仓位止损比例
@@ -294,6 +324,16 @@
最大追高比例
+
+
+ 最大系统借币比例
+
+
+
+
+ 最大交易所借币比例
+
+
信号周期
@@ -304,9 +344,29 @@
仓位
-
+
+
+ 资产配置
+
+
+
- 止损比例
+ 一级止损-成交价亏损比例
+
+
+
+
+ 一级止损-仓位止损比例
+
+
+
+
+ 二级止损-成交价亏损比例
+
+
+
+
+ 二级止损-仓位止损比例
@@ -339,7 +399,7 @@
总借币金额
-
+
现货持仓均价
@@ -414,64 +474,84 @@
交易策略
-
+
- 是否开启增购
+ 信号周期
-
+
- 是否开启错误信号补救
+ 杠杆倍数
-
+
- 最大追高比例
+ 仓位
-
+
- 信号周期
+ 金字塔
-
+
- 仓位
+ 交易对
+
+
+
+
+ 交易所APIKeyId
-
+
- 止损比例
+ 最大系统借币比例
-
+
+
+ 最大交易所借币比例
+
+
+
+
+ 最大追高比例
+
+
+
信号周期
-
+
- 杠杆倍数
+ 仓位(USDT)
-
+
- 仓位
+ 配置资产
-
+
- 金字塔
+ 一级止损-成交价亏损比例
-
+
- 交易对
+ 一级止损-仓位止损比例
-
+
- 交易所APIKeyId
+ 二级止损-成交价亏损比例
+
+
+
+
+ 二级止损-仓位止损比例
diff --git a/Binance.TradeRobot.Model/Db/Policy/Spot/D21Policy.cs b/Binance.TradeRobot.Model/Db/Policy/Spot/D21Policy.cs
index 8e1f938..13b493b 100644
--- a/Binance.TradeRobot.Model/Db/Policy/Spot/D21Policy.cs
+++ b/Binance.TradeRobot.Model/Db/Policy/Spot/D21Policy.cs
@@ -39,6 +39,18 @@ namespace Binance.TradeRobot.Model.Db
[Column(DbType = "decimal(18,2)")]
public decimal MaxFollowPurchaseRatio { get; set; } = 0.0M;
+ ///
+ /// 最大系统借币比例
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal MaxSystemLoanRatio { get; set; } = 0.0M;
+
+ ///
+ /// 最大交易所借币比例
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal MaxExchangeLoanRatio { get; set; } = 0.00M;
+
///
/// 信号周期
///
@@ -55,10 +67,34 @@ namespace Binance.TradeRobot.Model.Db
public long RobotId { get; set; }
///
- /// 止损比例
+ /// 配置资产
+ ///
+ [Column(DbType = "decimal(18,8)")]
+ public decimal Assets { get; set; } = 0.0M;
+
+ ///
+ /// 一级止损-成交价亏损比例
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal Level1PriceStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 一级止损-仓位止损比例
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal Level1PositionStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 二级止损-成交价亏损比例
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal Level2PriceStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 二级止损-仓位止损比例
///
[Column(DbType = "decimal(18,2)")]
- public decimal StopLossRatio { get; set; } = 0.0M;
+ public decimal Level2PositionStopLossRatio { get; set; } = 0.0M;
}
}
diff --git a/Binance.TradeRobot.Model/Db/Robot/Robot.cs b/Binance.TradeRobot.Model/Db/Robot/Robot.cs
index 31490e7..3fe9b6c 100644
--- a/Binance.TradeRobot.Model/Db/Robot/Robot.cs
+++ b/Binance.TradeRobot.Model/Db/Robot/Robot.cs
@@ -106,6 +106,18 @@ namespace Binance.TradeRobot.Model.Db
[Column(IsIgnore = true)]
public decimal D21MaxFollowPurchaseRatio { get; set; } = 0.0M;
+ ///
+ /// 最大系统借币比例
+ ///
+ [Column(IsIgnore = true)]
+ public decimal D21MaxSystemLoanRatio { get; set; } = 0.00M;
+
+ ///
+ /// 最大交易所借币比例
+ ///
+ [Column(IsIgnore = true)]
+ public decimal D21MaxExchangeLoanRatio { get; set; } = 0.00M;
+
///
/// 信号周期
///
@@ -119,10 +131,34 @@ namespace Binance.TradeRobot.Model.Db
public decimal D21Position { get; set; } = 0.0M;
///
- /// 止损比例
+ /// 资产配置
+ ///
+ [Column(IsIgnore = true)]
+ public decimal D21Assets { get; set; } = 0.0M;
+
+ ///
+ /// 一级止损-成交价亏损比例
+ ///
+ [Column(IsIgnore = true)]
+ public decimal D21Level1PriceStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 一级止损-仓位止损比例
+ ///
+ [Column(IsIgnore = true)]
+ public decimal D21Level1PositionStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 二级止损-成交价亏损比例
+ ///
+ [Column(IsIgnore = true)]
+ public decimal D21Level2PriceStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 二级止损-仓位止损比例
///
[Column(IsIgnore = true)]
- public decimal D21StopLossRatio { get; set; }
+ public decimal D21Level2PositionStopLossRatio { get; set; } = 0.0M;
[Column(IsIgnore = true)]
public DateTime D21CreateTime { get; set; }
diff --git a/Binance.TradeRobot.Model/Db/Robot/RobotAccount.cs b/Binance.TradeRobot.Model/Db/Robot/RobotAccount.cs
index 76d90a1..d1830d3 100644
--- a/Binance.TradeRobot.Model/Db/Robot/RobotAccount.cs
+++ b/Binance.TradeRobot.Model/Db/Robot/RobotAccount.cs
@@ -53,7 +53,7 @@ namespace Binance.TradeRobot.Model.Db
/// 现货持仓均价
///
[Column(IsIgnore = true)]
- public decimal SpotCurrencyAcgPrice
+ public decimal SpotCurrencyAvgPrice
{
get
{
diff --git a/Binance.TradeRobot.Model/Dto/Request/Robot/AddPyramidPolicyRobotRequest.cs b/Binance.TradeRobot.Model/Dto/Request/PrepPolicy/EditPyramidPolicyRequest.cs
similarity index 87%
rename from Binance.TradeRobot.Model/Dto/Request/Robot/AddPyramidPolicyRobotRequest.cs
rename to Binance.TradeRobot.Model/Dto/Request/PrepPolicy/EditPyramidPolicyRequest.cs
index ae46774..a1613a6 100644
--- a/Binance.TradeRobot.Model/Dto/Request/Robot/AddPyramidPolicyRobotRequest.cs
+++ b/Binance.TradeRobot.Model/Dto/Request/PrepPolicy/EditPyramidPolicyRequest.cs
@@ -2,8 +2,10 @@
namespace Binance.TradeRobot.Model.Dto
{
- public class AddPyramidPolicyRobotRequest : AddRobotRequest
+ public class EditPyramidPolicyRequest
{
+ public long Id { get; set; }
+
///
/// 信号周期
///
diff --git a/Binance.TradeRobot.Model/Dto/Request/Robot/AddD21PolicyRobotRequest.cs b/Binance.TradeRobot.Model/Dto/Request/Robot/AddD21PolicyRobotRequest.cs
deleted file mode 100644
index d0f84e5..0000000
--- a/Binance.TradeRobot.Model/Dto/Request/Robot/AddD21PolicyRobotRequest.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using Binance.TradeRobot.Model.Base;
-
-namespace Binance.TradeRobot.Model.Dto
-{
- public class AddD21PolicyRobotRequest : AddRobotRequest
- {
- public Enums.ExecutionMode ExecutionMode { get; set; } = Enums.ExecutionMode.Both;
-
- ///
- /// 是否开启增购
- ///
-
- public bool IsEnabledIncreasePurchase { get; set; } = true;
-
- ///
- /// 是否开启错误信号补救
- ///
-
- public bool IsEnableRemedyForErrorCrossSignal { get; set; } = true;
-
- ///
- /// 最大追高比例
- ///
- public decimal MaxFollowPurchaseRatio { get; set; } = 0.0M;
-
- ///
- /// 信号周期
- ///
- public Enums.SignalPeriod PeriodicSignal { get; set; }
-
- ///
- /// 仓位
- ///
- public decimal Position { get; set; } = 0.0M;
-
- ///
- /// 止损比例
- ///
- public decimal StopLossRatio { get; set; }
- }
-}
diff --git a/Binance.TradeRobot.Model/Dto/Request/SpotPolicy/EditD21PolicyRequest.cs b/Binance.TradeRobot.Model/Dto/Request/SpotPolicy/EditD21PolicyRequest.cs
new file mode 100644
index 0000000..214630f
--- /dev/null
+++ b/Binance.TradeRobot.Model/Dto/Request/SpotPolicy/EditD21PolicyRequest.cs
@@ -0,0 +1,59 @@
+using Binance.TradeRobot.Model.Base;
+
+namespace Binance.TradeRobot.Model.Dto
+{
+ public class EditD21PolicyRequest
+ {
+ public long Id { get; set; }
+
+ ///
+ /// 最大系统借币比例
+ ///
+ public decimal MaxSystemLoanRatio { get; set; } = 0.00M;
+
+ ///
+ /// 最大交易所借币比例
+ ///
+ public decimal MaxExchangeLoanRatio { get; set; } = 0.00M;
+
+ ///
+ /// 最大追高比例
+ ///
+ public decimal MaxFollowPurchaseRatio { get; set; } = 0.0M;
+
+ ///
+ /// 信号周期
+ ///
+ public Enums.SignalPeriod PeriodicSignal { get; set; }
+
+ ///
+ /// 仓位(USDT)
+ ///
+ public decimal Position { get; set; } = 0.0M;
+
+ ///
+ /// 配置资产
+ ///
+ public decimal Assets { get; set; } = 0.0M;
+
+ ///
+ /// 一级止损-成交价亏损比例
+ ///
+ public decimal Level1PriceStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 一级止损-仓位止损比例
+ ///
+ public decimal Level1PositionStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 二级止损-成交价亏损比例
+ ///
+ public decimal Level2PriceStopLossRatio { get; set; } = 0.0M;
+
+ ///
+ /// 二级止损-仓位止损比例
+ ///
+ public decimal Level2PositionStopLossRatio { get; set; } = 0.0M;
+ }
+}