Browse Source

编辑动2.1策略接口

master
shanji 3 years ago
parent
commit
fff4834a12
  1. 26
      Binance.TradeRobot.API/Binance.TradeRobot.API.xml
  2. 32
      Binance.TradeRobot.API/Controllers/RobotController.cs
  3. 30
      Binance.TradeRobot.API/Controllers/SpotPolicyController.cs
  4. 19
      Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml
  5. 55
      Binance.TradeRobot.Business/Business/RobotBusiness.cs
  6. 39
      Binance.TradeRobot.Business/Business/SpotPolicyBusiness.cs
  7. 16
      Binance.TradeRobot.Model/Base/MappingProfiles.cs
  8. 136
      Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml
  9. 40
      Binance.TradeRobot.Model/Db/Policy/Spot/D21Policy.cs
  10. 40
      Binance.TradeRobot.Model/Db/Robot/Robot.cs
  11. 2
      Binance.TradeRobot.Model/Db/Robot/RobotAccount.cs
  12. 4
      Binance.TradeRobot.Model/Dto/Request/PrepPolicy/EditPyramidPolicyRequest.cs
  13. 41
      Binance.TradeRobot.Model/Dto/Request/Robot/AddD21PolicyRobotRequest.cs
  14. 59
      Binance.TradeRobot.Model/Dto/Request/SpotPolicy/EditD21PolicyRequest.cs

26
Binance.TradeRobot.API/Binance.TradeRobot.API.xml

@ -31,17 +31,29 @@
<param name="exchangeId"></param>
<returns></returns>
</member>
<member name="M:Binance.TradeRobot.API.Controllers.RobotController.AddPyramidPolicyRobot(Binance.TradeRobot.Model.Dto.AddPyramidPolicyRobotRequest)">
<member name="M:Binance.TradeRobot.API.Controllers.RobotController.StartRobot(System.Int64)">
<summary>
开启机器人
</summary>
<param name="robotId"></param>
</member>
<member name="M:Binance.TradeRobot.API.Controllers.RobotController.StopRobot(System.Int64)">
<summary>
停止机器人
</summary>
<param name="robotId"></param>
</member>
<member name="M:Binance.TradeRobot.API.Controllers.RobotController.AddPyramidPolicyRobot(Binance.TradeRobot.Model.Dto.AddRobotRequest)">
<summary>
创建金字塔策略机器人
</summary>
<param name="addPyramidPolicyRobotRequest"></param>
<param name="addRobotRequest"></param>
</member>
<member name="M:Binance.TradeRobot.API.Controllers.RobotController.AddD21PolicyRobot(Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest)">
<member name="M:Binance.TradeRobot.API.Controllers.RobotController.AddD21PolicyRobot(Binance.TradeRobot.Model.Dto.AddRobotRequest)">
<summary>
创建动2.1策略机器人
</summary>
<param name="addD21PolicyRobotRequest"></param>
<param name="addRobotRequest"></param>
</member>
<member name="M:Binance.TradeRobot.API.Controllers.RobotController.GetD21PolicyRobotList">
<summary>
@ -49,6 +61,12 @@
</summary>
<returns></returns>
</member>
<member name="M:Binance.TradeRobot.API.Controllers.SpotPolicyController.EditD21Policy(Binance.TradeRobot.Model.Dto.EditD21PolicyRequest)">
<summary>
编辑动2.1策略
</summary>
<param name="editD21PolicyRequest"></param>
</member>
<member name="M:Binance.TradeRobot.API.Controllers.UserController.Login(Binance.TradeRobot.Model.Dto.LoginRequest)">
<summary>
用户登录

32
Binance.TradeRobot.API/Controllers/RobotController.cs

@ -17,24 +17,44 @@ namespace Binance.TradeRobot.API.Controllers
this.robotBusiness = robotBusiness;
}
/// <summary>
/// 开启机器人
/// </summary>
/// <param name="robotId"></param>
[HttpPost("{robotId}")]
public void StartRobot([FromRoute] long robotId)
{
robotBusiness.StartRobot(robotId);
}
/// <summary>
/// 停止机器人
/// </summary>
/// <param name="robotId"></param>
[HttpPost("{robotId}")]
public void StopRobot([FromRoute] long robotId)
{
robotBusiness.StopRobot(robotId);
}
/// <summary>
/// 创建金字塔策略机器人
/// </summary>
/// <param name="addPyramidPolicyRobotRequest"></param>
/// <param name="addRobotRequest"></param>
[HttpPost]
public void AddPyramidPolicyRobot([FromBody] AddPyramidPolicyRobotRequest addPyramidPolicyRobotRequest)
public void AddPyramidPolicyRobot([FromBody] AddRobotRequest addRobotRequest)
{
robotBusiness.AddPyramidPolicyRobot(addPyramidPolicyRobotRequest);
robotBusiness.AddPyramidPolicyRobot(addRobotRequest);
}
/// <summary>
/// 创建动2.1策略机器人
/// </summary>
/// <param name="addD21PolicyRobotRequest"></param>
/// <param name="addRobotRequest"></param>
[HttpPost]
public void AddD21PolicyRobot([FromBody] AddD21PolicyRobotRequest addD21PolicyRobotRequest)
public void AddD21PolicyRobot([FromBody] AddRobotRequest addRobotRequest)
{
robotBusiness.AddD21PolicyRobot(addD21PolicyRobotRequest);
robotBusiness.AddD21PolicyRobot(addRobotRequest);
}
/// <summary>

30
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;
}
/// <summary>
/// 编辑动2.1策略
/// </summary>
/// <param name="editD21PolicyRequest"></param>
[HttpPost]
public void EditD21Policy([FromBody] EditD21PolicyRequest editD21PolicyRequest)
{
spotPolicyBusiness.EditD21Policy(editD21PolicyRequest);
}
}
}

19
Binance.TradeRobot.Business/Binance.TradeRobot.Business.xml

@ -28,17 +28,28 @@
<param name="tran"></param>
<returns>机器人Id</returns>
</member>
<member name="M:Binance.TradeRobot.Business.RobotBusiness.AddPyramidPolicyRobot(Binance.TradeRobot.Model.Dto.AddPyramidPolicyRobotRequest)">
<member name="M:Binance.TradeRobot.Business.RobotBusiness.AddPyramidPolicyRobot(Binance.TradeRobot.Model.Dto.AddRobotRequest)">
<summary>
添加金字塔策略机器人
</summary>
<param name="addPyramidPolicyRobotRequest"></param>
<param name="addRobotRequest"></param>
</member>
<member name="M:Binance.TradeRobot.Business.RobotBusiness.AddD21PolicyRobot(Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest)">
<member name="M:Binance.TradeRobot.Business.RobotBusiness.AddD21PolicyRobot(Binance.TradeRobot.Model.Dto.AddRobotRequest)">
<summary>
添加动2.1策略机器人
</summary>
<param name="addD21PolicyRobotRequest"></param>
<param name="addRobotRequest"></param>
</member>
<member name="M:Binance.TradeRobot.Business.RobotBusiness.GetD21PolicyRobotList">
<summary>
获取动2.1策略机器人列表
</summary>
<returns></returns>
</member>
<member name="T:Binance.TradeRobot.Business.SpotPolicyBusiness">
<summary>
现货策略
</summary>
</member>
<member name="M:Binance.TradeRobot.Business.UserBusiness.OneWayAssetChange(System.Int64,System.Decimal,System.Int64,Binance.TradeRobot.Model.Base.Enums.CapitalChangeType,System.String)">
<summary>

55
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)
{
}
/// <summary>
/// 添加机器人和账户
/// </summary>
@ -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
/// <summary>
/// 添加金字塔策略机器人
/// </summary>
/// <param name="addPyramidPolicyRobotRequest"></param>
public void AddPyramidPolicyRobot(AddPyramidPolicyRobotRequest addPyramidPolicyRobotRequest)
/// <param name="addRobotRequest"></param>
public void AddPyramidPolicyRobot(AddRobotRequest addRobotRequest)
{
CheckRobotRegister(addPyramidPolicyRobotRequest, out ExchangeAPIKey exchangeAPIKey);
var pyramidPolicy = addPyramidPolicyRobotRequest.Map<PyramidPolicy>();
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
/// <summary>
/// 添加动2.1策略机器人
/// </summary>
/// <param name="addD21PolicyRobotRequest"></param>
public void AddD21PolicyRobot(AddD21PolicyRobotRequest addD21PolicyRobotRequest)
/// <param name="addRobotRequest"></param>
public void AddD21PolicyRobot(AddRobotRequest addRobotRequest)
{
CheckRobotRegister(addD21PolicyRobotRequest, out _);
var d21Policy = addD21PolicyRobotRequest.Map<D21Policy>();
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();
});
}
/// <summary>
/// 获取动2.1策略机器人列表
/// </summary>
/// <returns></returns>
public IList<D21PolicyRobotResponse> GetD21PolicyRobotList()
{
var robotList = fsql.Select<Robot, RobotAccount, D21Policy>().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<IList<D21PolicyRobotResponse>>();

39
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
{
/// <summary>
/// 现货策略
/// </summary>
[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<D21Policy>(editD21PolicyRequest.Id).ToOne();
if (d21policy == null)
throw new BusinessException("d21策略不存在");
editD21PolicyRequest.Map(d21policy);
fsql.Update<D21Policy>().SetSource(d21policy).ExecuteAffrows();
/*取消历史委托订单*/
/*检查是否有持仓 如果有重新下委托单*/
}
}
}

16
Binance.TradeRobot.Model/Base/MappingProfiles.cs

@ -16,9 +16,6 @@ namespace Binance.TradeRobot.Model.Base
CreateMap<ExchangeAPIKey, ExchangeAPIKeyResponse>();
CreateMap<ExchangeAccount, ExchangeAccountResponse>();
CreateMap<AddPyramidPolicyRobotRequest, PyramidPolicy>();
CreateMap<AddD21PolicyRobotRequest, D21Policy>();
CreateMap<Robot, RobotResponse>().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<EditD21PolicyRequest, D21Policy>();
CreateMap<EditPyramidPolicyRequest, PyramidPolicy>();
}
}
}

136
Binance.TradeRobot.Model/Binance.TradeRobot.Model.xml

@ -209,6 +209,16 @@
最大追高比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.MaxSystemLoanRatio">
<summary>
最大系统借币比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.MaxExchangeLoanRatio">
<summary>
最大交易所借币比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.PeriodicSignal">
<summary>
信号周期
@ -219,9 +229,29 @@
仓位
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.StopLossRatio">
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.Assets">
<summary>
配置资产
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.Level1PriceStopLossRatio">
<summary>
一级止损-成交价亏损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.Level1PositionStopLossRatio">
<summary>
一级止损-仓位止损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.Level2PriceStopLossRatio">
<summary>
二级止损-成交价亏损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.D21Policy.Level2PositionStopLossRatio">
<summary>
止损比例
二级止损-仓位止损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.PyramidPolicy.Leverage">
@ -294,6 +324,16 @@
最大追高比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21MaxSystemLoanRatio">
<summary>
最大系统借币比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21MaxExchangeLoanRatio">
<summary>
最大交易所借币比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21PeriodicSignal">
<summary>
信号周期
@ -304,9 +344,29 @@
仓位
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21StopLossRatio">
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21Assets">
<summary>
资产配置
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21Level1PriceStopLossRatio">
<summary>
止损比例
一级止损-成交价亏损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21Level1PositionStopLossRatio">
<summary>
一级止损-仓位止损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21Level2PriceStopLossRatio">
<summary>
二级止损-成交价亏损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.Robot.D21Level2PositionStopLossRatio">
<summary>
二级止损-仓位止损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.RobotAccount.ClosePositionCount">
@ -339,7 +399,7 @@
总借币金额
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Db.RobotAccount.SpotCurrencyAcgPrice">
<member name="P:Binance.TradeRobot.Model.Db.RobotAccount.SpotCurrencyAvgPrice">
<summary>
现货持仓均价
</summary>
@ -414,64 +474,84 @@
交易策略
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest.IsEnabledIncreasePurchase">
<member name="P:Binance.TradeRobot.Model.Dto.EditPyramidPolicyRequest.SignalPeriod">
<summary>
是否开启增购
信号周期
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest.IsEnableRemedyForErrorCrossSignal">
<member name="P:Binance.TradeRobot.Model.Dto.EditPyramidPolicyRequest.Leverage">
<summary>
是否开启错误信号补救
杠杆倍数
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest.MaxFollowPurchaseRatio">
<member name="P:Binance.TradeRobot.Model.Dto.EditPyramidPolicyRequest.Position">
<summary>
最大追高比例
仓位
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest.PeriodicSignal">
<member name="P:Binance.TradeRobot.Model.Dto.EditPyramidPolicyRequest.Pyramid">
<summary>
信号周期
金字塔
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest.Position">
<member name="P:Binance.TradeRobot.Model.Dto.AddRobotRequest.Symbol">
<summary>
仓位
交易对
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddRobotRequest.ExchangeAPIKeyId">
<summary>
交易所APIKeyId
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddD21PolicyRobotRequest.StopLossRatio">
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.MaxSystemLoanRatio">
<summary>
止损比例
最大系统借币比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddPyramidPolicyRobotRequest.SignalPeriod">
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.MaxExchangeLoanRatio">
<summary>
最大交易所借币比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.MaxFollowPurchaseRatio">
<summary>
最大追高比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.PeriodicSignal">
<summary>
信号周期
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddPyramidPolicyRobotRequest.Leverage">
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.Position">
<summary>
杠杆倍数
仓位(USDT)
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddPyramidPolicyRobotRequest.Position">
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.Assets">
<summary>
仓位
配置资产
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddPyramidPolicyRobotRequest.Pyramid">
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.Level1PriceStopLossRatio">
<summary>
金字塔
一级止损-成交价亏损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddRobotRequest.Symbol">
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.Level1PositionStopLossRatio">
<summary>
交易对
一级止损-仓位止损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.AddRobotRequest.ExchangeAPIKeyId">
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.Level2PriceStopLossRatio">
<summary>
交易所APIKeyId
二级止损-成交价亏损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.EditD21PolicyRequest.Level2PositionStopLossRatio">
<summary>
二级止损-仓位止损比例
</summary>
</member>
<member name="P:Binance.TradeRobot.Model.Dto.LoginRequest.Pwd">

40
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;
/// <summary>
/// 最大系统借币比例
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal MaxSystemLoanRatio { get; set; } = 0.0M;
/// <summary>
/// 最大交易所借币比例
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal MaxExchangeLoanRatio { get; set; } = 0.00M;
/// <summary>
/// 信号周期
/// </summary>
@ -55,10 +67,34 @@ namespace Binance.TradeRobot.Model.Db
public long RobotId { get; set; }
/// <summary>
/// 止损比例
/// 配置资产
/// </summary>
[Column(DbType = "decimal(18,8)")]
public decimal Assets { get; set; } = 0.0M;
/// <summary>
/// 一级止损-成交价亏损比例
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal Level1PriceStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 一级止损-仓位止损比例
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal Level1PositionStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 二级止损-成交价亏损比例
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal Level2PriceStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 二级止损-仓位止损比例
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal StopLossRatio { get; set; } = 0.0M;
public decimal Level2PositionStopLossRatio { get; set; } = 0.0M;
}
}

40
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;
/// <summary>
/// 最大系统借币比例
/// </summary>
[Column(IsIgnore = true)]
public decimal D21MaxSystemLoanRatio { get; set; } = 0.00M;
/// <summary>
/// 最大交易所借币比例
/// </summary>
[Column(IsIgnore = true)]
public decimal D21MaxExchangeLoanRatio { get; set; } = 0.00M;
/// <summary>
/// 信号周期
/// </summary>
@ -119,10 +131,34 @@ namespace Binance.TradeRobot.Model.Db
public decimal D21Position { get; set; } = 0.0M;
/// <summary>
/// 止损比例
/// 资产配置
/// </summary>
[Column(IsIgnore = true)]
public decimal D21Assets { get; set; } = 0.0M;
/// <summary>
/// 一级止损-成交价亏损比例
/// </summary>
[Column(IsIgnore = true)]
public decimal D21Level1PriceStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 一级止损-仓位止损比例
/// </summary>
[Column(IsIgnore = true)]
public decimal D21Level1PositionStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 二级止损-成交价亏损比例
/// </summary>
[Column(IsIgnore = true)]
public decimal D21Level2PriceStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 二级止损-仓位止损比例
/// </summary>
[Column(IsIgnore = true)]
public decimal D21StopLossRatio { get; set; }
public decimal D21Level2PositionStopLossRatio { get; set; } = 0.0M;
[Column(IsIgnore = true)]
public DateTime D21CreateTime { get; set; }

2
Binance.TradeRobot.Model/Db/Robot/RobotAccount.cs

@ -53,7 +53,7 @@ namespace Binance.TradeRobot.Model.Db
/// 现货持仓均价
/// </summary>
[Column(IsIgnore = true)]
public decimal SpotCurrencyAcgPrice
public decimal SpotCurrencyAvgPrice
{
get
{

4
Binance.TradeRobot.Model/Dto/Request/Robot/AddPyramidPolicyRobotRequest.cs → 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; }
/// <summary>
/// 信号周期
/// </summary>

41
Binance.TradeRobot.Model/Dto/Request/Robot/AddD21PolicyRobotRequest.cs

@ -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;
/// <summary>
/// 是否开启增购
/// </summary>
public bool IsEnabledIncreasePurchase { get; set; } = true;
/// <summary>
/// 是否开启错误信号补救
/// </summary>
public bool IsEnableRemedyForErrorCrossSignal { get; set; } = true;
/// <summary>
/// 最大追高比例
/// </summary>
public decimal MaxFollowPurchaseRatio { get; set; } = 0.0M;
/// <summary>
/// 信号周期
/// </summary>
public Enums.SignalPeriod PeriodicSignal { get; set; }
/// <summary>
/// 仓位
/// </summary>
public decimal Position { get; set; } = 0.0M;
/// <summary>
/// 止损比例
/// </summary>
public decimal StopLossRatio { get; set; }
}
}

59
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; }
/// <summary>
/// 最大系统借币比例
/// </summary>
public decimal MaxSystemLoanRatio { get; set; } = 0.00M;
/// <summary>
/// 最大交易所借币比例
/// </summary>
public decimal MaxExchangeLoanRatio { get; set; } = 0.00M;
/// <summary>
/// 最大追高比例
/// </summary>
public decimal MaxFollowPurchaseRatio { get; set; } = 0.0M;
/// <summary>
/// 信号周期
/// </summary>
public Enums.SignalPeriod PeriodicSignal { get; set; }
/// <summary>
/// 仓位(USDT)
/// </summary>
public decimal Position { get; set; } = 0.0M;
/// <summary>
/// 配置资产
/// </summary>
public decimal Assets { get; set; } = 0.0M;
/// <summary>
/// 一级止损-成交价亏损比例
/// </summary>
public decimal Level1PriceStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 一级止损-仓位止损比例
/// </summary>
public decimal Level1PositionStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 二级止损-成交价亏损比例
/// </summary>
public decimal Level2PriceStopLossRatio { get; set; } = 0.0M;
/// <summary>
/// 二级止损-仓位止损比例
/// </summary>
public decimal Level2PositionStopLossRatio { get; set; } = 0.0M;
}
}
Loading…
Cancel
Save