diff --git a/SignalsTestCmd/ARUSDT.png b/SignalsTestCmd/ARUSDT.png new file mode 100644 index 0000000..1105ac3 Binary files /dev/null and b/SignalsTestCmd/ARUSDT.png differ diff --git a/SignalsTestCmd/CFXUSDT.png b/SignalsTestCmd/CFXUSDT.png new file mode 100644 index 0000000..8ddc6b9 Binary files /dev/null and b/SignalsTestCmd/CFXUSDT.png differ diff --git a/SignalsTestCmd/CoinWatch.cs b/SignalsTestCmd/CoinWatch.cs index 6c8342e..273a168 100644 --- a/SignalsTestCmd/CoinWatch.cs +++ b/SignalsTestCmd/CoinWatch.cs @@ -111,16 +111,22 @@ namespace SignalsTest break; } } + string triggers = ""; + if(isStSwitch){ - Picasso.DrawChart(reports, max ,min, maxVol, symbol); - await Messenger.instance.SendLastChart(filename:symbol); - await Messenger.instance.SendMessage($"`{symbol}` switched the SuperTrend lines. Current price: {reports[reports.Count-1].Close}"); + triggers += "Switched SuperTrend\n"; } - if(reports[reports.Count-1].TGOR){ - Picasso.DrawChart(reports, max ,min, maxVol, symbol); - await Messenger.instance.SendLastChart(filename:symbol); - await Messenger.instance.SendMessage($"`{symbol}` Price dropped. Current price: {reports[reports.Count-1].Close}"); + if(reports[reports.Count-1].TGOR && !reports[reports.Count-2].TGOR){//Ignore if two in row + triggers += "Price dropped\n"; } + + if(triggers!= ""){ + Picasso.DrawChart(reports, max ,min, maxVol, symbol); + + string message = $"`{symbol}` {triggers} \nCurrent price: {reports[reports.Count-1].Close}"; + Messenger.instance.ScheduleMessage(message, symbol); + } + } async void KeepUpdatingCandles() diff --git a/SignalsTestCmd/CoinsList.cs b/SignalsTestCmd/CoinsList.cs index 38ccbcf..08bc6fc 100644 --- a/SignalsTestCmd/CoinsList.cs +++ b/SignalsTestCmd/CoinsList.cs @@ -6,19 +6,14 @@ public static class CoinsList{ "XLMUSDT", "SOLUSDT", "AVAXUSDT", - "VIRTUALUSDT", "ENAUSDT", "HIVEUSDT", "STEEMUSDT", "MOVEUSDT", "DOGEUSDT", - "SHIBAUSDT", - "INUUSDT", "PEPEUSDT", - "AIXBTUSDT", "RLCUSDT", "ACTUSDT", - "CHILLGUYUSDT", "STGUSDT", "ONEUSDT", "LINKUSDT", @@ -29,6 +24,14 @@ public static class CoinsList{ "JUPUSDT", "LUNAUSDT", "DUSKUSDT", - "SUIUSDT" + "SUIUSDT", + "INJUSDT", + "FILUSDT", + "GRTUSDT", + "HBARUSDT", + "CFXUSDT", + "TLMUSDT", + "NEARUSDT", + "FORTHUSDT" ]; } \ No newline at end of file diff --git a/SignalsTestCmd/LINKUSDT.png b/SignalsTestCmd/LINKUSDT.png new file mode 100644 index 0000000..321f150 Binary files /dev/null and b/SignalsTestCmd/LINKUSDT.png differ diff --git a/SignalsTestCmd/Messenger.cs b/SignalsTestCmd/Messenger.cs index a6ec5a0..b2d2f52 100644 --- a/SignalsTestCmd/Messenger.cs +++ b/SignalsTestCmd/Messenger.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using Telegram.Bot; @@ -8,30 +9,70 @@ 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 const string chatId = "@doralockscryptosignals"; + public const string chatId_test = "@SignalTestPrivate"; + + // public const string chatId = "@doralockscryptosignals"; //prod:doralockscryptosignals //test:SignalTestPrivate - public async Task SendMessage(string text, string chat =chatId) - { - await botClient.SendTextMessageAsync(chat, text); + // public async Task SendMessage(string text, string chat =chatId) + // { + // await botClient.SendTextMessageAsync(chat, text); + // } + + // public async Task SendLastChart(string chat = chatId, string filename="test"){ + // FileStream fsSource = new FileStream($"{filename}.png", FileMode.Open, FileAccess.Read); + // InputFile photo = InputFile.FromStream(fsSource); + // await botClient.SendPhotoAsync(chat, photo); + // Console.WriteLine("Photo sent success"); + // } + + public Dictionary messagesSchedule = new Dictionary(); + + public void ScheduleMessage(string text, string filename=""){ + messagesSchedule.Add(text,filename); } - public async Task SendLastChart(string chat = chatId, string filename="test"){ - FileStream fsSource = new FileStream($"{filename}.png", FileMode.Open, FileAccess.Read); - InputFile photo = InputFile.FromStream(fsSource); - await botClient.SendPhotoAsync(chat, photo); - Console.WriteLine("Photo sent success"); + public async void InitializeScheduler(){ + string _chatId = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? chatId_test : chatId; + + while(true){ + await Task.Delay(3500); + if(messagesSchedule.Count <=0){ + continue; + } + + string message = messagesSchedule.Keys.ElementAt(0); + string filename = messagesSchedule[message]; + + try{ + if(filename.Length < 2){ + await botClient.SendTextMessageAsync(_chatId, message); + }else{ + FileStream fsSource = new FileStream($"{filename}.png", FileMode.Open, FileAccess.Read); + InputFile photo = InputFile.FromStream(fsSource); + await botClient.SendPhotoAsync(_chatId, photo,caption: message); + } + + messagesSchedule.Remove(message); + }catch(Exception e){ + Console.WriteLine($"Error occured while sending {message} to {filename}"); + Console.WriteLine(e.ToString()); + } + + } } public Messenger() @@ -44,6 +85,8 @@ namespace SignalsTest { AllowedUpdates = Array.Empty() // receive all update types except ChatMember related updates }; + + InitializeScheduler(); } } } diff --git a/SignalsTestCmd/Program.cs b/SignalsTestCmd/Program.cs index 77b2aaf..c0dd773 100644 --- a/SignalsTestCmd/Program.cs +++ b/SignalsTestCmd/Program.cs @@ -9,7 +9,7 @@ class Program private static void Main(string[] args) { Console.WriteLine("Initializing Messiah"); - Messenger.instance.SendMessage("Rebooted bot"); + Messenger.instance.ScheduleMessage("Rebooted bot"); for (int i=0; i < CoinsList.symbols.Count; i++){ CoinWatch btcWatch = new CoinWatch(CoinsList.symbols[i], i); btcWatch.PriceUpdated += CoinWatch_OnPriceUpdate; @@ -34,7 +34,7 @@ class Program } string msg = $"{failedList.Count} Failed out of {watches.Count}. Failed list: \n{commasList}"; Console.WriteLine(msg); - Messenger.instance.SendMessage(msg); + Messenger.instance.ScheduleMessage(msg); } private static void CoinWatch_OnPriceUpdate(Object? sender,BinanceTradeData data) diff --git a/SignalsTestCmd/RLCUSDT.png b/SignalsTestCmd/RLCUSDT.png new file mode 100644 index 0000000..9f56006 Binary files /dev/null and b/SignalsTestCmd/RLCUSDT.png differ diff --git a/SignalsTestCmd/STEEMUSDT.png b/SignalsTestCmd/STEEMUSDT.png index c03fea0..f9e376c 100644 Binary files a/SignalsTestCmd/STEEMUSDT.png and b/SignalsTestCmd/STEEMUSDT.png differ diff --git a/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.dll b/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.dll index d6c24ed..070bfc0 100644 Binary files a/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.dll and b/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.dll differ diff --git a/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.exe b/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.exe index 831ade4..3674d23 100644 Binary files a/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.exe and b/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.exe differ diff --git a/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.pdb b/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.pdb index e18e74b..90a66e8 100644 Binary files a/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.pdb and b/SignalsTestCmd/bin/Debug/net8.0/SignalsTestCmd.pdb differ diff --git a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfo.cs b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfo.cs index 9128010..955356a 100644 --- a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfo.cs +++ b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfo.cs @@ -13,7 +13,7 @@ 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+e30de2471325024a3d1beb937a02157b4f10643d")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+803e1a6efcd9f9c8634f90e384fcb9d1e1e5735b")] [assembly: System.Reflection.AssemblyProductAttribute("SignalsTestCmd")] [assembly: System.Reflection.AssemblyTitleAttribute("SignalsTestCmd")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfoInputs.cache b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfoInputs.cache index 2468470..180d3dd 100644 --- a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfoInputs.cache +++ b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.AssemblyInfoInputs.cache @@ -1 +1 @@ -d51df1548d76f8853335b1b69514870239705cd0805ac5ee723719964382763d +60efa4460d709a625170ed984e861ea72cc83eff5a76a9feab2ed4db32115f73 diff --git a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.dll b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.dll index d6c24ed..070bfc0 100644 Binary files a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.dll and b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.dll differ diff --git a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.pdb b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.pdb index e18e74b..90a66e8 100644 Binary files a/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.pdb and b/SignalsTestCmd/obj/Debug/net8.0/SignalsTestCmd.pdb differ diff --git a/SignalsTestCmd/obj/Debug/net8.0/apphost.exe b/SignalsTestCmd/obj/Debug/net8.0/apphost.exe index 831ade4..3674d23 100644 Binary files a/SignalsTestCmd/obj/Debug/net8.0/apphost.exe and b/SignalsTestCmd/obj/Debug/net8.0/apphost.exe differ diff --git a/SignalsTestCmd/obj/Debug/net8.0/ref/SignalsTestCmd.dll b/SignalsTestCmd/obj/Debug/net8.0/ref/SignalsTestCmd.dll index 404fb39..c05a37e 100644 Binary files a/SignalsTestCmd/obj/Debug/net8.0/ref/SignalsTestCmd.dll and b/SignalsTestCmd/obj/Debug/net8.0/ref/SignalsTestCmd.dll differ diff --git a/SignalsTestCmd/obj/Debug/net8.0/refint/SignalsTestCmd.dll b/SignalsTestCmd/obj/Debug/net8.0/refint/SignalsTestCmd.dll index 404fb39..c05a37e 100644 Binary files a/SignalsTestCmd/obj/Debug/net8.0/refint/SignalsTestCmd.dll and b/SignalsTestCmd/obj/Debug/net8.0/refint/SignalsTestCmd.dll differ