9 changed files with 288 additions and 23 deletions
@ -0,0 +1,32 @@ |
|||
using Binance.TradeRobot.Common.DI; |
|||
using Binance.TradeRobot.Common.Http; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
|
|||
namespace Binance.TradeRobot.Business |
|||
{ |
|||
[BatchRegistration(ServiceLifetime.Singleton, RegistrationType.Self)] |
|||
public class DingBusiness |
|||
{ |
|||
private RestApiService restApiService; |
|||
public DingBusiness(RestApiService restApiService) |
|||
{ |
|||
this.restApiService = restApiService; |
|||
} |
|||
|
|||
public void Send(string content) |
|||
{ |
|||
try |
|||
{ |
|||
restApiService.SendRequest("https://oapi.dingtalk.com/robot/send", "?access_token=be2f574475269e83584fa3ef1a93ef68e28c15402afa1d193aa82a1a51164850", new |
|||
{ |
|||
msgtype = "text", |
|||
text = new |
|||
{ |
|||
content |
|||
} |
|||
}, null, System.Net.Http.HttpMethod.Post); |
|||
} |
|||
catch { } |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,74 @@ |
|||
using Binance.TradeRobot.Common.Extensions; |
|||
using Binance.TradeRobot.Model.Base; |
|||
using System; |
|||
|
|||
namespace Binance.TradeRobot.Business.Extensions |
|||
{ |
|||
public static class KIDExtension |
|||
{ |
|||
public static long GetKID(this DateTime datetime, Enums.SignalPeriod kLinePeriodic, bool isPrevious) |
|||
{ |
|||
DateTime dt = datetime.AddSeconds(datetime.Second * -1).AddMilliseconds(datetime.Millisecond * -1); |
|||
if (kLinePeriodic == Enums.SignalPeriod._1m) |
|||
{ |
|||
if (isPrevious) |
|||
dt = dt.AddMinutes(-1); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._5m) |
|||
{ |
|||
var fiveMinCount = dt.Minute / 5; //5分钟的次数
|
|||
dt = dt.AddMinutes(dt.Minute * -1).AddMinutes(fiveMinCount * 5); |
|||
if (isPrevious) |
|||
dt = dt.AddMinutes(-5); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._15m) |
|||
{ |
|||
var fifteenMinCount = dt.Minute / 15; //15分钟次数
|
|||
dt = dt.AddMinutes(dt.Minute * -1).AddMinutes(fifteenMinCount * 15); |
|||
if (isPrevious) |
|||
dt = dt.AddMinutes(-15); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._30m) |
|||
{ |
|||
var fifteenMinCount = dt.Minute / 30; //30分钟次数
|
|||
dt = dt.AddMinutes(dt.Minute * -1).AddMinutes(fifteenMinCount * 30); |
|||
if (isPrevious) |
|||
dt = dt.AddMinutes(-30); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._1h) |
|||
{ |
|||
dt = dt.AddMinutes(dt.Minute * -1); |
|||
if (isPrevious) |
|||
dt = dt.AddHours(-1); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._4h) |
|||
{ |
|||
var hCount = dt.Hour / 4; //4小时的次数
|
|||
dt = dt.AddMinutes(dt.Minute * -1).AddHours(dt.Hour * -1).AddHours(hCount * 4); |
|||
if (isPrevious) |
|||
dt = dt.AddHours(-4); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._1d) |
|||
{ |
|||
dt = dt.AddMinutes(dt.Minute * -1).AddHours(dt.Hour * -1); |
|||
if (isPrevious) |
|||
dt = dt.AddDays(-1); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._1w) |
|||
{ |
|||
var week = dt.DayOfWeek; |
|||
dt = dt.AddMinutes(dt.Minute * -1).AddHours(dt.Hour * -1).AddDays((int)week * -1); |
|||
if (isPrevious) |
|||
dt = dt.AddDays(-7); |
|||
} |
|||
else if (kLinePeriodic == Enums.SignalPeriod._1M) |
|||
{ |
|||
dt = dt.AddMinutes(dt.Minute * -1).AddHours(dt.Hour * -1).AddDays((dt.Day - 1) * -1); |
|||
if (isPrevious) |
|||
dt = dt.AddMonths(-1); |
|||
} |
|||
Console.WriteLine(dt); |
|||
return dt.DateTimeToStamp(len13: false); |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue