sync
This commit is contained in:
parent
0bb4c5a486
commit
5cd509161b
26
SignalsTestCmd/.vscode/launch.json
vendored
Normal file
26
SignalsTestCmd/.vscode/launch.json
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
// Use IntelliSense to find out which attributes exist for C# debugging
|
||||
// Use hover for the description of the existing attributes
|
||||
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
|
||||
"name": ".NET Core Launch (console)",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"preLaunchTask": "build",
|
||||
// If you have changed target frameworks, make sure to update the program path.
|
||||
"program": "${workspaceFolder}/bin/Debug/net7.0/SignalsTestCmd.dll",
|
||||
"args": [],
|
||||
"cwd": "${workspaceFolder}",
|
||||
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
|
||||
"console": "internalConsole",
|
||||
"stopAtEntry": false
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach"
|
||||
}
|
||||
]
|
||||
}
|
||||
41
SignalsTestCmd/.vscode/tasks.json
vendored
Normal file
41
SignalsTestCmd/.vscode/tasks.json
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "build",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
"build",
|
||||
"${workspaceFolder}/SignalsTestCmd.csproj",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "publish",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
"publish",
|
||||
"${workspaceFolder}/SignalsTestCmd.csproj",
|
||||
"/property:GenerateFullPaths=true",
|
||||
"/consoleloggerparameters:NoSummary"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
},
|
||||
{
|
||||
"label": "watch",
|
||||
"command": "dotnet",
|
||||
"type": "process",
|
||||
"args": [
|
||||
"watch",
|
||||
"run",
|
||||
"--project",
|
||||
"${workspaceFolder}/SignalsTestCmd.csproj"
|
||||
],
|
||||
"problemMatcher": "$msCompile"
|
||||
}
|
||||
]
|
||||
}
|
||||
24
SignalsTestCmd/Brian.cs
Normal file
24
SignalsTestCmd/Brian.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
using BinanceExchange.API.Client;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SignalsTest
|
||||
{
|
||||
public class Brian
|
||||
{
|
||||
private static BinanceClient m_client;
|
||||
|
||||
public static BinanceClient Client { get { if(m_client == null)
|
||||
{
|
||||
m_client = new BinanceClient(new ClientConfiguration()
|
||||
{
|
||||
ApiKey = "oYPETR7iNwXEkVTS4DeUSpI9CchTiz7yvQqjls3LDdgnT3sY5pCcTyh4HcQVhLAX",
|
||||
SecretKey = "8hZ85QwnGfUItWe288TjQRN3mlDWq3bPUMSsze4nyslaA96OPEUH9r1fwrC9ni7t",
|
||||
});
|
||||
} return m_client;
|
||||
} }
|
||||
}
|
||||
}
|
||||
118
SignalsTestCmd/CoinWatch.cs
Normal file
118
SignalsTestCmd/CoinWatch.cs
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
using BinanceExchange.API.Client;
|
||||
using BinanceExchange.API.Enums;
|
||||
using BinanceExchange.API.Models.Request;
|
||||
using BinanceExchange.API.Models.Response;
|
||||
using BinanceExchange.API.Models.WebSocket;
|
||||
using BinanceExchange.API.Websockets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
namespace SignalsTest
|
||||
{
|
||||
|
||||
|
||||
public class CoinWatch
|
||||
{
|
||||
public string pair;
|
||||
public KlineInterval interval = KlineInterval.FifteenMinutes;
|
||||
public List<KlineCandleStickResponse> candles=new List<KlineCandleStickResponse>();
|
||||
public List<TAReport> reports = new List<TAReport>();
|
||||
public event EventHandler<BinanceTradeData> PriceUpdated;
|
||||
bool usingCache;
|
||||
public CoinWatch(string pair, KlineInterval _interval = KlineInterval.FifteenMinutes , bool useCache=false)
|
||||
{
|
||||
this.pair = pair;
|
||||
interval = _interval;
|
||||
usingCache = useCache;
|
||||
Init();
|
||||
}
|
||||
|
||||
void Init()
|
||||
{
|
||||
if(usingCache){
|
||||
if(File.Exists(AppDomain.CurrentDomain.BaseDirectory+"/"+pair+".txt")){
|
||||
try{
|
||||
|
||||
}catch{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
InitLivestream();
|
||||
KeepUpdatingCandles();
|
||||
// TestCallbacks();
|
||||
}
|
||||
|
||||
async void TestCallbacks()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
await Task.Delay(1000);
|
||||
PriceUpdated?.Invoke(this, new BinanceTradeData() { BestAskPrice=0 });
|
||||
}
|
||||
}
|
||||
|
||||
async Task UpdateCandles()
|
||||
{
|
||||
GetKlinesCandlesticksRequest req = new GetKlinesCandlesticksRequest();
|
||||
req.Interval = interval;
|
||||
req.Symbol = pair;
|
||||
req.EndTime = DateTime.Now;
|
||||
req.Limit = 100;
|
||||
|
||||
candles = await Brian.Client.GetKlinesCandlesticks(req);
|
||||
Console.WriteLine($"Done gettings Kandles for {req.Symbol}, {candles.Count} kandles retreived");
|
||||
Analyze();
|
||||
}
|
||||
|
||||
async void Analyze(){
|
||||
int[] mas = new int[] { 7, 12, 25 };
|
||||
reports = new List<TAReport>();
|
||||
decimal max = 0;
|
||||
decimal min = 10000000;
|
||||
for(int i=0; i < candles.Count; i++){
|
||||
|
||||
TAReport report = TAReport.Generate(pair, Utils.GetMinutesForInterval(interval) ,candles, i,reports);
|
||||
if(candles[i].Close > max){
|
||||
max = candles[i].Close;
|
||||
}
|
||||
if(candles[i].Close < min){
|
||||
min = candles[i].Close;
|
||||
}
|
||||
reports.Add(report);
|
||||
}
|
||||
|
||||
Picasso.DrawChart(reports, max ,min);
|
||||
Console.WriteLine("Picasso did his job");
|
||||
await Messenger.instance.SendLastChart();
|
||||
Console.WriteLine(reports[reports.Count-1].toJson());
|
||||
await Messenger.instance.SendMessage(reports[reports.Count-1].toJson());
|
||||
}
|
||||
|
||||
async void KeepUpdatingCandles()
|
||||
{
|
||||
UpdateCandles();
|
||||
while(true)
|
||||
{
|
||||
await Task.Delay(60000);
|
||||
Console.WriteLine($"Loop call {DateTime.Now.Minute} = {DateTime.Now.Minute % Utils.GetMinutesForInterval(interval)} ");
|
||||
if (DateTime.Now.Minute % Utils.GetMinutesForInterval(interval) == 0) { UpdateCandles(); }
|
||||
}
|
||||
}
|
||||
|
||||
void InitLivestream()
|
||||
{
|
||||
var manualWebsocket = new InstanceBinanceWebSocketClient(Brian.Client);
|
||||
var socketId = manualWebsocket.ConnectToIndividualSymbolTickerWebSocket(pair, data =>
|
||||
{
|
||||
if(candles.Count > 0){
|
||||
candles[candles.Count - 1].Close = data.BestAskPrice;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
168
SignalsTestCmd/Indicators.cs
Normal file
168
SignalsTestCmd/Indicators.cs
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
using BinanceExchange.API.Models.Response;
|
||||
|
||||
public static class Indicators
|
||||
{
|
||||
|
||||
public static decimal getSMA(List<KlineCandleStickResponse> responses, int curIndex, int interval, int startIndex = 0)
|
||||
{
|
||||
// curIndex = Math.Clamp(curIndex,0, responses.Count);
|
||||
// decimal total = 0;
|
||||
// for(int i=curIndex-interval; i < curIndex; i++){
|
||||
// total += responses[i].Close;
|
||||
// }
|
||||
// // decimal length = (curIndex-startIndex); if(length <= 0){length=1;}
|
||||
// // decimal N = (length / (decimal)interval);
|
||||
// Console.WriteLine($"SMA Cacl ({interval}) : {total}/{interval} = {total/interval}");
|
||||
|
||||
// return total / interval;
|
||||
|
||||
decimal total = 0;
|
||||
for (int x = (curIndex > 1500) ? 1500 : 0; x < interval; x++)
|
||||
{
|
||||
total += (curIndex - x >= 0) ? responses[curIndex - x].Close : (decimal)0;
|
||||
}
|
||||
return total / (decimal)interval;
|
||||
}
|
||||
|
||||
public static decimal getSMA(List<decimal> responses, int curIndex, int interval, int startIndex = 0)
|
||||
{
|
||||
decimal total = 0;
|
||||
for (int x = (curIndex > 1500) ? 1500 : 0; x < interval; x++)
|
||||
{
|
||||
total += (curIndex - x >= 0) ? responses[curIndex - x] : (decimal)0;
|
||||
}
|
||||
return total / (decimal)interval;
|
||||
}
|
||||
|
||||
public static decimal getEMA(List<KlineCandleStickResponse> responses, int curIndex, int startIndex, int periods, decimal? prevEma = null)
|
||||
{
|
||||
if (curIndex < 1) { return 0; }
|
||||
if (startIndex - curIndex > 1500) { return 0; }; if (curIndex >= responses.Count) { return 0; };
|
||||
|
||||
|
||||
// decimal N = (decimal)curIndex / (decimal)periods;
|
||||
|
||||
decimal multiplier = (decimal)2 / ((decimal)(periods + 1));
|
||||
decimal firstHalf = responses[curIndex].Close * multiplier; //First half of the equation
|
||||
decimal secondHalf = getEMA(responses, curIndex - 1, startIndex, periods) * (1 - multiplier); //Second half of the equation
|
||||
// decimal secondHalf = (prevEma ?? getSMA(responses, curIndex-1, periods)) * (1- multiplier); //Second half of the equation
|
||||
|
||||
return firstHalf + secondHalf;
|
||||
}
|
||||
|
||||
public static decimal getEMA(List<decimal> responses, int curIndex, int startIndex, int periods)
|
||||
{
|
||||
if (curIndex < 1) { return 0; }
|
||||
if (startIndex - curIndex > 1500) { return 0; };
|
||||
if (curIndex >= responses.Count) { return 0; };
|
||||
|
||||
// decimal N = (decimal)curIndex / (decimal)periods;
|
||||
|
||||
decimal multiplier = (decimal)2 / ((decimal)(periods + 1));
|
||||
|
||||
decimal firstHalf = responses[curIndex] * multiplier; //First half of the equation
|
||||
decimal secondHalf = getEMA(responses, curIndex - 1, startIndex, periods) * (1 - multiplier); //Second half of the equation
|
||||
// decimal secondHalf = (prevEma ?? getSMA(responses, curIndex-1, periods)) * (1- multiplier); //Second half of the equation
|
||||
|
||||
return firstHalf + secondHalf;
|
||||
}
|
||||
|
||||
public static decimal getMACD(List<KlineCandleStickResponse> responses, int shortPeriod, int longPeriod, int curIndex)
|
||||
{
|
||||
return getEMA(responses, curIndex, curIndex, shortPeriod) - getEMA(responses, curIndex, curIndex, longPeriod);
|
||||
}
|
||||
|
||||
public static decimal getATR(List<KlineCandleStickResponse> responses, int period, int curIndex, List<decimal> prevATRs)
|
||||
{
|
||||
if (curIndex <= 0 || curIndex > responses.Count) { return 0; }
|
||||
|
||||
if (curIndex >= responses.Count) { return 0; };
|
||||
|
||||
decimal TR = responses[curIndex].High - responses[curIndex].Low;
|
||||
if (curIndex > 1)
|
||||
{
|
||||
decimal tr2 = responses[curIndex].High - responses[curIndex - 1].Close;
|
||||
decimal tr3 = responses[curIndex].Low - responses[curIndex - 1].Close;
|
||||
if (tr2 > TR)
|
||||
{
|
||||
TR = tr2;
|
||||
}
|
||||
if (tr3 > TR)
|
||||
{
|
||||
TR = tr3;
|
||||
}
|
||||
}
|
||||
|
||||
if (curIndex < period)
|
||||
{
|
||||
//get just the TR
|
||||
return TR;
|
||||
}
|
||||
decimal prevATR = 0;
|
||||
if (prevATRs.Count > 0)
|
||||
{
|
||||
// int start = curIndex - period;
|
||||
// for (int i = start; i < curIndex; i++)
|
||||
// {
|
||||
// prevATR += prevATRs[i];
|
||||
// }
|
||||
|
||||
// prevATR = (prevATR) / (decimal)(curIndex-start);
|
||||
prevATR = prevATRs[curIndex - 1];
|
||||
}
|
||||
decimal ATR = (decimal)((prevATR * (decimal)(period - 1)) + TR) / (decimal)period;
|
||||
return ATR;
|
||||
}
|
||||
|
||||
public static decimal getRSI(List<KlineCandleStickResponse> responses, int index, int period = 14){
|
||||
decimal avgGain = 0;
|
||||
decimal avgLoss =0;
|
||||
if(index < 2){return 0;}
|
||||
int length = 0;
|
||||
for(int i=index; i > index - period && i > 0; i--){
|
||||
length++;
|
||||
avgGain += responses[i].Close - responses[i-1].Close;
|
||||
avgLoss += responses[i-1].Close - responses[i].Close;
|
||||
}
|
||||
if(length <=0){return 0;}
|
||||
avgGain /= length;
|
||||
avgLoss /= length;
|
||||
decimal f =(1.0m+(avgGain/avgLoss));
|
||||
if(f<=0){return 0;}
|
||||
return 100.0m - (100.0m/f);
|
||||
}
|
||||
|
||||
public static bool didMACDLineCrossSignalLine(decimal[] MACDs, decimal[] Signals, int index, int period = 7, decimal threshold = (decimal)0.1)
|
||||
{
|
||||
int counter = 0;
|
||||
if (index >= MACDs.Length || index >= Signals.Length) { return false; }
|
||||
if (index - period < 0) { return false; };
|
||||
for (int i = index; i > index - period; i--)
|
||||
{
|
||||
if (MACDs[i] < Signals[i])
|
||||
{
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
bool wasMACDUnder = counter > ((float)period / 2f);
|
||||
return wasMACDUnder && MACDs[index] > Signals[index];
|
||||
}
|
||||
|
||||
public static decimal getAvgDiff(List<KlineCandleStickResponse> responses, int i)
|
||||
{
|
||||
decimal avgDiff = 0;
|
||||
|
||||
if (i > 10)
|
||||
{
|
||||
for (int k = 1; k < 6; k++)
|
||||
{
|
||||
avgDiff += responses[i - k].Close;
|
||||
}
|
||||
|
||||
avgDiff = avgDiff / (decimal)5;
|
||||
avgDiff = responses[i].Close - avgDiff;
|
||||
}
|
||||
|
||||
return avgDiff;
|
||||
}
|
||||
}
|
||||
45
SignalsTestCmd/Messenger.cs
Normal file
45
SignalsTestCmd/Messenger.cs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Telegram.Bot;
|
||||
using Telegram.Bot.Exceptions;
|
||||
using Telegram.Bot.Polling;
|
||||
using Telegram.Bot.Types;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
|
||||
namespace SignalsTest
|
||||
{
|
||||
public class Messenger
|
||||
{
|
||||
TelegramBotClient botClient;
|
||||
|
||||
private static Messenger m_instance;
|
||||
public static Messenger instance { get { if (m_instance == null) { m_instance = new Messenger(); } return m_instance; } }
|
||||
|
||||
public async Task SendMessage(string text, string chat = "@doralockscryptosignals")
|
||||
{
|
||||
await botClient.SendTextMessageAsync(chat, text);
|
||||
}
|
||||
|
||||
public async Task SendLastChart(string chat = "@doralockscryptosignals"){
|
||||
FileStream fsSource = new FileStream("/var/www/html/test.png", FileMode.Open, FileAccess.Read);
|
||||
InputFile photo = InputFile.FromStream(fsSource);
|
||||
await botClient.SendPhotoAsync(chat, photo);
|
||||
Console.WriteLine("Photo sent success");
|
||||
}
|
||||
|
||||
public Messenger()
|
||||
{
|
||||
botClient = new TelegramBotClient("6878629725:AAGWFqmtsvf2xFLOTvsixY-LEG4ho2sLqrw");
|
||||
using CancellationTokenSource cts = new();
|
||||
|
||||
// StartReceiving does not block the caller thread. Receiving is done on the ThreadPool.
|
||||
ReceiverOptions receiverOptions = new()
|
||||
{
|
||||
AllowedUpdates = Array.Empty<UpdateType>() // receive all update types except ChatMember related updates
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
86
SignalsTestCmd/Picasso.cs
Normal file
86
SignalsTestCmd/Picasso.cs
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
using SignalsTest;
|
||||
using System;
|
||||
using SixLabors.Fonts;
|
||||
using SixLabors.ImageSharp;
|
||||
using SixLabors.ImageSharp.Drawing;
|
||||
using SixLabors.ImageSharp.Drawing.Processing;
|
||||
using SixLabors.ImageSharp.PixelFormats;
|
||||
using SixLabors.ImageSharp.Processing;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
public class Picasso{
|
||||
public static void DrawChart(List<TAReport> reports, decimal max, decimal min){
|
||||
// float height = (float)Math.Ceiling(max - min) * 2f;
|
||||
// float width = ((float)height / 9f) * 16f;
|
||||
float heightRange = (float)Math.Ceiling(max - min);
|
||||
float height=1080;
|
||||
float width = 1920;
|
||||
float widthMultiplier = width / (float)reports.Count;
|
||||
using (Image img = new Image<Rgba32>((int)width + 100, (int)height)){
|
||||
|
||||
//Draw Candles
|
||||
for(int i=0; i < reports.Count; i++){
|
||||
// img.Mutate(ctx=> ctx.DrawLine()))
|
||||
PointF[] points = new PointF[2];
|
||||
points[0] =new PointF(i * widthMultiplier, (float)(reports[i].candle.Open - min));
|
||||
points[1] =new PointF(i * widthMultiplier, (float)(reports[i].candle.Close - min));
|
||||
|
||||
PointF[] rangePoints = new PointF[2];
|
||||
rangePoints[0] = new PointF(i * widthMultiplier, (float)(reports[i].candle.High-min));
|
||||
rangePoints[1] = new PointF(i * widthMultiplier, (float)(reports[i].candle.Low-min));
|
||||
|
||||
img.Mutate(ctx=> ctx.DrawLine(reports[i].candle.Close > reports[i].candle.Open ? Color.Green : Color.Red, 10, points).DrawLine(
|
||||
reports[i].candle.Close > reports[i].candle.Open ? Color.Green : Color.Red, 3, rangePoints
|
||||
));
|
||||
|
||||
}
|
||||
Console.WriteLine("Getting paths");
|
||||
object t = GetPropByName(reports[reports.Count- 1], "SMA7");
|
||||
Console.WriteLine(t);
|
||||
Console.WriteLine(float.Parse(t.ToString()));
|
||||
|
||||
//Overlay
|
||||
IPath sma7Path = GetPath(reports, "SMA7", widthMultiplier,heightRange, (float)min);
|
||||
IPath sma25Path = GetPath(reports, "SMA25", widthMultiplier,heightRange, (float)min);
|
||||
IPath stPath = GetPath(reports, "ST", widthMultiplier,heightRange, (float)min);
|
||||
|
||||
//NewChart
|
||||
|
||||
|
||||
img.Mutate(ctx => ctx.Draw(Color.Yellow, 2, sma7Path).
|
||||
Draw(Color.Purple, 2, sma25Path).
|
||||
Draw(Color.Green, 3, stPath).
|
||||
Flip(FlipMode.Vertical));
|
||||
|
||||
img.Save("/var/www/html/test.png");
|
||||
}
|
||||
}
|
||||
|
||||
static IPath GetPath(List<TAReport> reports, string propName, float widthMultiplier,float heightRange, float min, float offset =0){
|
||||
PathBuilder builder = new PathBuilder();
|
||||
builder.SetOrigin(new PointF(0,0));
|
||||
|
||||
for(int i=0; i < reports.Count; i++){
|
||||
float newVal = float.Parse(GetPropByName(reports[i],propName).ToString() ?? "0");
|
||||
// Console.WriteLine( newVal);
|
||||
|
||||
float prevVal = i > 0 ? float.Parse(GetPropByName(reports[i-1],propName).ToString() ?? "0") : 0;
|
||||
// Console.WriteLine( prevVal);
|
||||
float preValY = prevVal - min;
|
||||
float newValY=newVal - min;
|
||||
PointF prevPoint = new PointF((i-1)* widthMultiplier, );
|
||||
PointF newPoint = new PointF(i * widthMultiplier, );
|
||||
//Console.WriteLine("new line");
|
||||
builder.AddLine(prevPoint, newPoint);
|
||||
}
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
|
||||
static object GetPropByName(TAReport report, string propName){
|
||||
string json = report.toJson();
|
||||
Dictionary<string,string> dic = JsonConvert.DeserializeObject<Dictionary<string,string>>(json) ?? new Dictionary<string, string>();
|
||||
// Console.WriteLine(dic[propName]);
|
||||
return dic[propName];
|
||||
}
|
||||
}
|
||||
20
SignalsTestCmd/Program.cs
Normal file
20
SignalsTestCmd/Program.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using BinanceExchange.API.Models.WebSocket;
|
||||
using SignalsTest;
|
||||
|
||||
class Program
|
||||
{
|
||||
static ManualResetEvent _quitEvent = new ManualResetEvent(false);
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Initializing Messiah");
|
||||
Messenger.instance.SendMessage("Rebooted bot");
|
||||
CoinWatch btcWatch = new CoinWatch("BTCUSDT");
|
||||
btcWatch.PriceUpdated += BtcWatch_OnPriceUpdate;
|
||||
_quitEvent.WaitOne();
|
||||
}
|
||||
|
||||
private static void BtcWatch_OnPriceUpdate(Object? sender,BinanceTradeData data)
|
||||
{
|
||||
Console.WriteLine(data.BestAskPrice);
|
||||
}
|
||||
}
|
||||
16
SignalsTestCmd/SignalsTestCmd.csproj
Normal file
16
SignalsTestCmd/SignalsTestCmd.csproj
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.2" />
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.0" />
|
||||
|
||||
<PackageReference Include="BinanceDotNet" Version="4.12.0" />
|
||||
<PackageReference Include="Telegram.Bot" Version="19.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
141
SignalsTestCmd/TAReport.cs
Normal file
141
SignalsTestCmd/TAReport.cs
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
using BinanceExchange.API.Models.Response;
|
||||
using Newtonsoft.Json;
|
||||
using SignalsTest;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SignalsTest
|
||||
{
|
||||
public class TAReport
|
||||
{
|
||||
public string pair;
|
||||
public int interval;
|
||||
[JsonIgnore]
|
||||
public KlineCandleStickResponse candle;
|
||||
public decimal Close;
|
||||
public decimal Open;
|
||||
public decimal High;
|
||||
public decimal Low;
|
||||
public DateTime CloseTime;
|
||||
public decimal SMA7;
|
||||
public decimal SMA25;
|
||||
public decimal SMA99;
|
||||
|
||||
public decimal EMA7,EMA25, EMA99;
|
||||
|
||||
public decimal MACD = 0;
|
||||
public decimal EMACD = 0;
|
||||
|
||||
public decimal ATR14;
|
||||
public decimal ATR10;
|
||||
public decimal AVGDiff = 0;
|
||||
|
||||
public decimal STHigh;
|
||||
public decimal STLow;
|
||||
public decimal ST;
|
||||
|
||||
public decimal RSI=0;
|
||||
|
||||
public bool STUp => STHigh > Close;
|
||||
|
||||
public static TAReport Generate(string _pair, int _interval,List<KlineCandleStickResponse> response, int index, List<TAReport> history)
|
||||
{
|
||||
TAReport report = new TAReport();
|
||||
report.pair = _pair;
|
||||
report.interval = _interval;
|
||||
report.candle = response[index];
|
||||
report.Open = response[index].Open;
|
||||
report.Close = response[index].Close;
|
||||
report.High = response[index].High;
|
||||
report.Low = response[index].Low;
|
||||
report.CloseTime = response[index].CloseTime;
|
||||
// foreach(int sma in m_SMA)
|
||||
// {
|
||||
// report.SMAs.Add(sma, Indicators.getSMA(response, index, sma));
|
||||
// }
|
||||
|
||||
// foreach (int ema in m_EMA)
|
||||
// {
|
||||
// report.SMAs.Add(ema, Indicators.getEMA(response, index, 0, ema));
|
||||
// }
|
||||
report.SMA7 = Indicators.getSMA(response, index,7);
|
||||
report.SMA25 = Indicators.getSMA(response, index,25);
|
||||
report.SMA99 = Indicators.getSMA(response, index,99);
|
||||
|
||||
report.EMA7 = Indicators.getEMA(response, index,0, 7);
|
||||
report.EMA25 = Indicators.getEMA(response, index,0,25);
|
||||
report.EMA99 = Indicators.getEMA(response, index,0,99);
|
||||
report.MACD = Indicators.getMACD(response, 12, 26, index);
|
||||
|
||||
report.RSI = Indicators.getRSI(response,index);
|
||||
|
||||
if(history == null){
|
||||
return report;
|
||||
}
|
||||
//MACD Signal
|
||||
List<decimal> MACDHistory = new List<decimal>();
|
||||
List<decimal> ATR10History = new List<decimal>();
|
||||
List<decimal> ATR14History = new List<decimal>();
|
||||
|
||||
foreach(TAReport item in history){
|
||||
MACDHistory.Add(item.MACD);
|
||||
ATR10History.Add(item.ATR10);
|
||||
ATR14History.Add(item.ATR14);
|
||||
}
|
||||
report.EMACD = Indicators.getEMA(MACDHistory, index,0,9);
|
||||
|
||||
report.ATR10 = Indicators.getATR(response, 10,index, ATR10History);
|
||||
report.ATR14 = Indicators.getATR(response, 14,index, ATR14History);
|
||||
|
||||
|
||||
//SuperTrend
|
||||
decimal SuperTrendUpper = (response[index].High + response[index].Low) / 2 + 3 * report.ATR10;
|
||||
decimal SuperTrendLower = (response[index].High + response[index].Low) / 2 - 3 * report.ATR10;
|
||||
decimal SuperTrendFinal = 0;
|
||||
|
||||
|
||||
|
||||
if (index > 0)
|
||||
{
|
||||
if (history[index - 1].STHigh > SuperTrendUpper || history[index - 1].Close > history[index - 1].STHigh)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
SuperTrendUpper = history[index - 1].STHigh;
|
||||
}
|
||||
|
||||
if (history[index - 1].STLow < SuperTrendLower || history[index - 1].Close < history[index - 1].STLow)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
SuperTrendLower = history[index - 1].STLow;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SuperTrendFinal = report.STUp ? SuperTrendLower : SuperTrendUpper;
|
||||
report.ST = SuperTrendFinal;
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class CustomExtensions
|
||||
{
|
||||
|
||||
public static string toJson(this TAReport report)
|
||||
{
|
||||
return JsonConvert.SerializeObject(report, Formatting.Indented);
|
||||
}
|
||||
}
|
||||
65
SignalsTestCmd/Utils.cs
Normal file
65
SignalsTestCmd/Utils.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using BinanceExchange.API.Enums;
|
||||
using BinanceExchange.API.Models.Response;
|
||||
using BinanceExchange.API.Models.WebSocket;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SignalsTest
|
||||
{
|
||||
public class Utils
|
||||
{
|
||||
public static int GetMinutesForInterval(KlineInterval interval)
|
||||
|
||||
{
|
||||
switch (interval)
|
||||
{
|
||||
case KlineInterval.OneMinute:
|
||||
return 1;
|
||||
case KlineInterval.ThreeMinutes:
|
||||
return 3;
|
||||
case KlineInterval.FiveMinutes:
|
||||
return 5;
|
||||
case KlineInterval.FifteenMinutes:
|
||||
return 15;
|
||||
case KlineInterval.ThirtyMinutes:
|
||||
return 30;
|
||||
case KlineInterval.OneHour:
|
||||
return 60;
|
||||
case KlineInterval.TwoHours:
|
||||
return 120;
|
||||
case KlineInterval.FourHours:
|
||||
return 240;
|
||||
case KlineInterval.EightHours:
|
||||
return 60 * 8;
|
||||
case KlineInterval.TwelveHours:
|
||||
return 60 * 12;
|
||||
case KlineInterval.SixHours:
|
||||
return 60 * 6;
|
||||
case KlineInterval.OneDay:
|
||||
return 60 * 24;
|
||||
case KlineInterval.ThreeDays:
|
||||
return 60 * 24 * 3;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static KlineCandleStickResponse KlineToResponse(BinanceKlineData data)
|
||||
{
|
||||
KlineCandleStickResponse response = new KlineCandleStickResponse();
|
||||
response.Open = data.Kline.Open;
|
||||
response.Close = data.Kline.Close;
|
||||
response.CloseTime = data.Kline.EndTime;
|
||||
response.OpenTime = data.Kline.StartTime;
|
||||
response.High = data.Kline.High;
|
||||
response.Low = data.Kline.Low;
|
||||
response.Volume = data.Kline.Volume;
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
SignalsTestCmd/bin/Debug/net7.0/BinanceExchange.API.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/BinanceExchange.API.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Caching.Abstractions.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Caching.Abstractions.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Caching.Memory.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Caching.Memory.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Options.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Options.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Primitives.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Primitives.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/Newtonsoft.Json.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/Newtonsoft.Json.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd
Executable file
Binary file not shown.
1718
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.deps.json
Normal file
1718
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.deps.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.dll
Normal file
BIN
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.dll
Normal file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.pdb
Normal file
BIN
SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.pdb
Normal file
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net7.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "7.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
SignalsTestCmd/bin/Debug/net7.0/SixLabors.Fonts.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/SixLabors.Fonts.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/SixLabors.ImageSharp.Drawing.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/SixLabors.ImageSharp.Drawing.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/SixLabors.ImageSharp.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/SixLabors.ImageSharp.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/Telegram.Bot.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/Telegram.Bot.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/log4net.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/log4net.dll
Executable file
Binary file not shown.
BIN
SignalsTestCmd/bin/Debug/net7.0/websocket-sharp.dll
Executable file
BIN
SignalsTestCmd/bin/Debug/net7.0/websocket-sharp.dll
Executable file
Binary file not shown.
|
|
@ -0,0 +1,4 @@
|
|||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v7.0", FrameworkDisplayName = ".NET 7.0")]
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("SignalsTestCmd")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("SignalsTestCmd")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("SignalsTestCmd")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
7060ad6c3ca3f77ac1c513d5d4c99447fea22aba
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
is_global = true
|
||||
build_property.TargetFramework = net7.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = SignalsTestCmd
|
||||
build_property.ProjectDir = /root/c projcts/SignalsTest/SignalsTestCmd/
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
BIN
SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.assets.cache
Normal file
BIN
SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.assets.cache
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
c71fe83dcf60f2527a7c98e03bc0f0cd2a6ef067
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.deps.json
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.runtimeconfig.json
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SignalsTestCmd.pdb
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/BinanceExchange.API.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/log4net.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Caching.Abstractions.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Caching.Memory.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Options.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/Microsoft.Extensions.Primitives.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/Newtonsoft.Json.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/Telegram.Bot.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/websocket-sharp.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.csproj.AssemblyReference.cache
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.GeneratedMSBuildEditorConfig.editorconfig
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.AssemblyInfoInputs.cache
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.AssemblyInfo.cs
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.csproj.CoreCompileInputs.cache
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.csproj.CopyComplete
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/refint/SignalsTestCmd.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.pdb
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.genruntimeconfig.cache
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/obj/Debug/net7.0/ref/SignalsTestCmd.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SixLabors.Fonts.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SixLabors.ImageSharp.dll
|
||||
/root/c projcts/SignalsTest/SignalsTestCmd/bin/Debug/net7.0/SixLabors.ImageSharp.Drawing.dll
|
||||
BIN
SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.dll
Normal file
BIN
SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.dll
Normal file
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
b0a4e34895ba0a24e1212702cd281b993d00b12b
|
||||
BIN
SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.pdb
Normal file
BIN
SignalsTestCmd/obj/Debug/net7.0/SignalsTestCmd.pdb
Normal file
Binary file not shown.
BIN
SignalsTestCmd/obj/Debug/net7.0/apphost
Executable file
BIN
SignalsTestCmd/obj/Debug/net7.0/apphost
Executable file
Binary file not shown.
BIN
SignalsTestCmd/obj/Debug/net7.0/ref/SignalsTestCmd.dll
Normal file
BIN
SignalsTestCmd/obj/Debug/net7.0/ref/SignalsTestCmd.dll
Normal file
Binary file not shown.
BIN
SignalsTestCmd/obj/Debug/net7.0/refint/SignalsTestCmd.dll
Normal file
BIN
SignalsTestCmd/obj/Debug/net7.0/refint/SignalsTestCmd.dll
Normal file
Binary file not shown.
79
SignalsTestCmd/obj/SignalsTestCmd.csproj.nuget.dgspec.json
Normal file
79
SignalsTestCmd/obj/SignalsTestCmd.csproj.nuget.dgspec.json
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"/root/c projcts/SignalsTest/SignalsTestCmd/SignalsTestCmd.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"/root/c projcts/SignalsTest/SignalsTestCmd/SignalsTestCmd.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/root/c projcts/SignalsTest/SignalsTestCmd/SignalsTestCmd.csproj",
|
||||
"projectName": "SignalsTestCmd",
|
||||
"projectPath": "/root/c projcts/SignalsTest/SignalsTestCmd/SignalsTestCmd.csproj",
|
||||
"packagesPath": "/root/.nuget/packages/",
|
||||
"outputPath": "/root/c projcts/SignalsTest/SignalsTestCmd/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/root/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net7.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net7.0": {
|
||||
"targetAlias": "net7.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net7.0": {
|
||||
"targetAlias": "net7.0",
|
||||
"dependencies": {
|
||||
"BinanceDotNet": {
|
||||
"target": "Package",
|
||||
"version": "[4.12.0, )"
|
||||
},
|
||||
"SixLabors.ImageSharp": {
|
||||
"target": "Package",
|
||||
"version": "[3.1.2, )"
|
||||
},
|
||||
"SixLabors.ImageSharp.Drawing": {
|
||||
"target": "Package",
|
||||
"version": "[2.1.0, )"
|
||||
},
|
||||
"Telegram.Bot": {
|
||||
"target": "Package",
|
||||
"version": "[19.0.0, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/7.0.201/RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
18
SignalsTestCmd/obj/SignalsTestCmd.csproj.nuget.g.props
Normal file
18
SignalsTestCmd/obj/SignalsTestCmd.csproj.nuget.g.props
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/root/.nuget/packages/</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/root/.nuget/packages/</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.5.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="/root/.nuget/packages/" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)sixlabors.imagesharp/3.1.2/build/SixLabors.ImageSharp.props" Condition="Exists('$(NuGetPackageRoot)sixlabors.imagesharp/3.1.2/build/SixLabors.ImageSharp.props')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
2
SignalsTestCmd/obj/SignalsTestCmd.csproj.nuget.g.targets
Normal file
2
SignalsTestCmd/obj/SignalsTestCmd.csproj.nuget.g.targets
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
5970
SignalsTestCmd/obj/project.assets.json
Normal file
5970
SignalsTestCmd/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
109
SignalsTestCmd/obj/project.nuget.cache
Normal file
109
SignalsTestCmd/obj/project.nuget.cache
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "0dy1fIH4LXaYJNzXAGhPMDd/2Pui2dxCh3DhqG4BUXOxDx6IC01Oan1Eowgrl2aH8HNjRzJ4Ox4qNMamruXXzQ==",
|
||||
"success": true,
|
||||
"projectFilePath": "/root/c projcts/SignalsTest/SignalsTestCmd/SignalsTestCmd.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"/root/.nuget/packages/binancedotnet/4.12.0/binancedotnet.4.12.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/log4net/2.0.8/log4net.2.0.8.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.extensions.caching.abstractions/1.0.0/microsoft.extensions.caching.abstractions.1.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.extensions.caching.memory/1.0.0/microsoft.extensions.caching.memory.1.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/1.0.0/microsoft.extensions.dependencyinjection.abstractions.1.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.extensions.options/1.0.0/microsoft.extensions.options.1.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.extensions.primitives/1.0.0/microsoft.extensions.primitives.1.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.win32.primitives/4.0.1/microsoft.win32.primitives.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/microsoft.win32.registry/4.0.0/microsoft.win32.registry.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.native.system/4.3.0/runtime.native.system.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.native.system.net.http/4.3.0/runtime.native.system.net.http.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.native.system.security.cryptography.apple/4.3.0/runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.native.system.security.cryptography.openssl/4.3.2/runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/sixlabors.fonts/2.0.1/sixlabors.fonts.2.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/sixlabors.imagesharp/3.1.2/sixlabors.imagesharp.3.1.2.nupkg.sha512",
|
||||
"/root/.nuget/packages/sixlabors.imagesharp.drawing/2.1.0/sixlabors.imagesharp.drawing.2.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.appcontext/4.1.0/system.appcontext.4.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.collections/4.3.0/system.collections.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.collections.concurrent/4.3.0/system.collections.concurrent.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.collections.immutable/1.2.0/system.collections.immutable.1.2.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.collections.nongeneric/4.0.1/system.collections.nongeneric.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.componentmodel/4.0.1/system.componentmodel.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.console/4.0.0/system.console.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.diagnostics.debug/4.3.0/system.diagnostics.debug.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.diagnostics.diagnosticsource/4.3.0/system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.diagnostics.process/4.1.0/system.diagnostics.process.4.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.diagnostics.stacktrace/4.0.1/system.diagnostics.stacktrace.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.diagnostics.tracesource/4.0.0/system.diagnostics.tracesource.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.diagnostics.tracing/4.3.0/system.diagnostics.tracing.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.globalization/4.3.0/system.globalization.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.globalization.calendars/4.3.0/system.globalization.calendars.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.globalization.extensions/4.3.0/system.globalization.extensions.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.io/4.3.0/system.io.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.io.filesystem/4.3.0/system.io.filesystem.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.io.filesystem.primitives/4.3.0/system.io.filesystem.primitives.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.io.filesystem.watcher/4.0.0/system.io.filesystem.watcher.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.linq/4.3.0/system.linq.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.linq.expressions/4.1.0/system.linq.expressions.4.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.net.http/4.3.3/system.net.http.4.3.3.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.net.nameresolution/4.0.0/system.net.nameresolution.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.net.primitives/4.3.0/system.net.primitives.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.net.requests/4.0.11/system.net.requests.4.0.11.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.net.sockets/4.1.0/system.net.sockets.4.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.net.webheadercollection/4.0.1/system.net.webheadercollection.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.objectmodel/4.0.12/system.objectmodel.4.0.12.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection/4.3.0/system.reflection.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection.emit/4.0.1/system.reflection.emit.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection.emit.ilgeneration/4.0.1/system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection.emit.lightweight/4.0.1/system.reflection.emit.lightweight.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection.extensions/4.0.1/system.reflection.extensions.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection.metadata/1.3.0/system.reflection.metadata.1.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection.primitives/4.3.0/system.reflection.primitives.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.reflection.typeextensions/4.1.0/system.reflection.typeextensions.4.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.resources.resourcemanager/4.3.0/system.resources.resourcemanager.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime/4.3.0/system.runtime.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime.extensions/4.3.0/system.runtime.extensions.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime.handles/4.3.0/system.runtime.handles.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime.interopservices/4.3.0/system.runtime.interopservices.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime.interopservices.runtimeinformation/4.0.0/system.runtime.interopservices.runtimeinformation.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime.numerics/4.3.0/system.runtime.numerics.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime.serialization.formatters/4.3.0/system.runtime.serialization.formatters.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.runtime.serialization.primitives/4.3.0/system.runtime.serialization.primitives.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.claims/4.0.1/system.security.claims.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.cryptography.algorithms/4.3.0/system.security.cryptography.algorithms.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.cryptography.cng/4.3.0/system.security.cryptography.cng.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.cryptography.csp/4.3.0/system.security.cryptography.csp.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.cryptography.encoding/4.3.0/system.security.cryptography.encoding.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.cryptography.openssl/4.3.0/system.security.cryptography.openssl.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.cryptography.primitives/4.3.0/system.security.cryptography.primitives.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.cryptography.x509certificates/4.3.0/system.security.cryptography.x509certificates.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.principal/4.0.1/system.security.principal.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.security.principal.windows/4.0.0/system.security.principal.windows.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.text.encoding/4.3.0/system.text.encoding.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.text.encoding.extensions/4.0.11/system.text.encoding.extensions.4.0.11.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.text.regularexpressions/4.1.0/system.text.regularexpressions.4.1.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.threading/4.3.0/system.threading.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.threading.overlapped/4.0.1/system.threading.overlapped.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.threading.tasks/4.3.0/system.threading.tasks.4.3.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.threading.tasks.extensions/4.0.0/system.threading.tasks.extensions.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.threading.thread/4.0.0/system.threading.thread.4.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.threading.threadpool/4.0.10/system.threading.threadpool.4.0.10.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.threading.timer/4.0.1/system.threading.timer.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.xml.readerwriter/4.0.11/system.xml.readerwriter.4.0.11.nupkg.sha512",
|
||||
"/root/.nuget/packages/system.xml.xmldocument/4.0.1/system.xml.xmldocument.4.0.1.nupkg.sha512",
|
||||
"/root/.nuget/packages/telegram.bot/19.0.0/telegram.bot.19.0.0.nupkg.sha512",
|
||||
"/root/.nuget/packages/websocketsharp-netstandard/1.0.1/websocketsharp-netstandard.1.0.1.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user