|
|
@ -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>>(); |
|
|
|
|
|
|
|
|
|
|
|