using Binance.TradeRobot.Model.Base; using System; namespace Binance.TradeRobot.Model.Dto { public class RobotResponse { public RobotResponse() { } public long Id { get; set; } public DateTime CreateTime { get; set; } public Enums.TradePolicy TradePolicy { get; set; } /// /// 运行时长(s) /// public long RunningTime { get; set; } = 0; public Enums.RobotState State { get; set; } public string Symbol { get; set; } public Enums.BusinessType BusinessType { get; set; } public Enums.Exchange ExchangeId { get; set; } /// /// 订单推送日志Key /// //public virtual string OrderPublishLogKey //{ // get // { // return $"OrderPublish-{ExchangeId}-{BusinessType}-{Symbol}"; // } //} public SymbolInfoResponse SymbolInfo { get; set; } /// /// 机器人账户对象 /// public RobotAccountResponse RobotAccount { get; set; } /// /// 机器人绑定的交易所APIKey对象 /// public SimpleExchangeAPIKeyResponse ExchangeAPIKey { get; set; } public string ExecuteKey { get { return $"Execute-{ExchangeId}-{TradePolicy}-{Symbol}"; } } public string KLineKey { get { return $"KLine-{ExchangeId}-{BusinessType}-{Symbol}"; } } /// /// 订单推送监听实例Key /// 币安逐仓杠杆需要单独的运行实例 /// public string OrderPublishKey { get { if (State == Enums.RobotState.Runing && ExchangeAPIKey != null) { string key = $"{BusinessType}-{ExchangeAPIKey.AccountId}"; //币安现货,币安合约,同一个账户内不区分websocket实例 if (ExchangeId == Enums.Exchange.Binance && BusinessType == Enums.BusinessType.IsolateMargin) key = $"{BusinessType}-{ExchangeAPIKey.AccountId}-{Symbol}"; //币安逐仓杠杆,同一个账户内的每个交易对需要区分websocket实例 return $"OrderPublish-{ExchangeId}-{key}"; } return string.Empty; } } } }