From eaaa507c3409e3f723c7d313195a9c84e33f1515 Mon Sep 17 00:00:00 2001 From: Michael Schimmel Date: Wed, 28 Jan 2026 13:47:53 +0100 Subject: [PATCH] Optimizing and Refactoring HmaClusterBot & -Indicator --- Sources/Common/MSLib/HmaSma.cs | 123 +++ Sources/Common/MSLib/MSLib.sln | 24 + Sources/Common/MSLib/SRCluster.cs | 213 ++++ .../Common/MSLib/bin/Debug/net6.0/MSLib.dll | Bin 15360 -> 20992 bytes .../Common/MSLib/bin/Debug/net6.0/MSLib.pdb | Bin 15424 -> 18328 bytes ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../MSLib/obj/Debug/net6.0/MSLib.assets.cache | Bin 142 -> 142 bytes .../MSLib.csproj.CoreCompileInputs.cache | 2 +- .../net6.0/MSLib.csproj.FileListAbsolute.txt | 12 + .../Common/MSLib/obj/Debug/net6.0/MSLib.dll | Bin 15360 -> 20992 bytes .../Common/MSLib/obj/Debug/net6.0/MSLib.pdb | Bin 15424 -> 18328 bytes .../MSLib/obj/Debug/net6.0/ref/MSLib.dll | Bin 8192 -> 10240 bytes .../MSLib/obj/Debug/net6.0/refint/MSLib.dll | Bin 8192 -> 10240 bytes .../MSLib/obj/MSLib.csproj.nuget.dgspec.json | 10 +- Sources/Common/MSLib/obj/project.nuget.cache | 4 +- .../Indicators/Candlestick Patterns DEMO.algo | Bin 16389 -> 0 bytes .../Candlestick Patterns DEMO.sln | 20 - .../Candlestick Patterns DEMO.cs | 504 ---------- .../Candlestick Patterns DEMO.csproj | 58 -- .../Properties/AssemblyInfo.cs | 16 - .../Correlation with angle v1.1.algo | Bin 7374 -> 0 bytes .../Correlation with angle v1.1.sln | 22 - .../Correlation with angle v1.1.cs | 249 ----- .../Correlation with angle v1.1.csproj | 9 - .../msAngle of MultiSymbol.cs | 182 ---- .../msAngle of MultiSymbol.csproj | 9 - .../Indicators/Economic Events On Chart.algo | Bin 303336 -> 0 bytes .../Economic Events On Chart/.gitattributes | 63 -- .../Economic Events On Chart/.gitignore | 363 ------- .../Economic Events On Chart.sln | 20 - .../Economic Events On Chart.cs | 345 ------- .../Economic Events On Chart.csproj | 60 -- .../Properties/AssemblyInfo.cs | 20 - Sources/Indicators/HmaClusterDisplay.algo | Bin 4032 -> 12225 bytes .../HmaClusterDisplay/HmaClusterDisplay.cs | 77 +- .../HmaClusterDisplay.csproj | 9 +- Sources/Indicators/HmaClusterSR.algo | Bin 6761 -> 14804 bytes .../HmaClusterSR/.vscode/tasks.json | 1 + .../HmaClusterSR/HmaClusterSR/HmaClusterSR.cs | 921 +++--------------- .../HmaClusterSR/HmaClusterSR.csproj | 9 +- ...CoreApp,Version=v6.0.AssemblyAttributes.cs | 4 + .../Debug/net6.0/HmaClusterSR.AssemblyInfo.cs | 22 + .../HmaClusterSR.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 10 + .../Debug/net6.0/HmaClusterSR.assets.cache | Bin 0 -> 571 bytes ...maClusterSR.csproj.AssemblyReference.cache | Bin 0 -> 73772 bytes .../obj/HmaClusterSR.csproj.nuget.dgspec.json | 66 ++ .../obj/HmaClusterSR.csproj.nuget.g.props | 21 + .../obj/HmaClusterSR.csproj.nuget.g.targets | 6 + .../HmaClusterSR/obj/project.assets.json | 139 +++ .../HmaClusterSR/obj/project.nuget.cache | 10 + Sources/Robots/HmaClusterBot.algo | Bin 13784 -> 23496 bytes .../HmaClusterBot/HmaClusterBot.cs | 206 ++-- .../HmaClusterBot/HmaClusterBot.csproj | 5 + 54 files changed, 909 insertions(+), 2928 deletions(-) create mode 100644 Sources/Common/MSLib/HmaSma.cs create mode 100644 Sources/Common/MSLib/MSLib.sln create mode 100644 Sources/Common/MSLib/SRCluster.cs delete mode 100644 Sources/Indicators/Candlestick Patterns DEMO.algo delete mode 100644 Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO.sln delete mode 100644 Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.cs delete mode 100644 Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.csproj delete mode 100644 Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Properties/AssemblyInfo.cs delete mode 100644 Sources/Indicators/Correlation with angle v1.1.algo delete mode 100644 Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1.sln delete mode 100644 Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.cs delete mode 100644 Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.csproj delete mode 100644 Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.cs delete mode 100644 Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.csproj delete mode 100644 Sources/Indicators/Economic Events On Chart.algo delete mode 100644 Sources/Indicators/Economic Events On Chart/.gitattributes delete mode 100644 Sources/Indicators/Economic Events On Chart/.gitignore delete mode 100644 Sources/Indicators/Economic Events On Chart/Economic Events On Chart.sln delete mode 100644 Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.cs delete mode 100644 Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.csproj delete mode 100644 Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Properties/AssemblyInfo.cs create mode 100644 Sources/Indicators/HmaClusterSR/.vscode/tasks.json create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfo.cs create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfoInputs.cache create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.assets.cache create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.csproj.AssemblyReference.cache create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.dgspec.json create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.props create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.targets create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.assets.json create mode 100644 Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.nuget.cache diff --git a/Sources/Common/MSLib/HmaSma.cs b/Sources/Common/MSLib/HmaSma.cs new file mode 100644 index 0000000..2e8d88a --- /dev/null +++ b/Sources/Common/MSLib/HmaSma.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; + +namespace Myc.HmaSma +{ + /// + /// DTO representing a single row in the HMA/SMA configuration file. + /// + public class HmaSmaParameters + { + // Initialized to string.Empty to satisfy CS8618 + public string Symbol { get; set; } = string.Empty; + public string Timeframe { get; set; } = string.Empty; + public double EntrySig { get; set; } + public double SlSig { get; set; } + public int SmaBias { get; set; } + public int HmaBias { get; set; } + public int HmaCluster { get; set; } + public bool BiasFilter { get; set; } + public int BiasAvg { get; set; } + public bool DynMgmt { get; set; } + public bool TelegramOnly { get; set; } + + public override string ToString() + { + return $"{Symbol} {Timeframe}: SMA={SmaBias}, HMA={HmaBias}, Cluster={HmaCluster}"; + } + } + + /// + /// Handles parsing and caching of HMA/SMA configuration files. + /// + public class HmaSmaLoader + { + // Key: "SYMBOL_TIMEFRAME" (Normalized to UpperCase) + private readonly Dictionary _cache = new Dictionary(); + private readonly string _filePath; + + public HmaSmaLoader(string filePath) + { + _filePath = filePath; + } + + /// + /// Reads the file and populates the internal cache. + /// Throws FileNotFoundException if file is missing. + /// Returns number of successfully loaded entries. + /// + public int Load() + { + _cache.Clear(); + + if (!File.Exists(_filePath)) + throw new FileNotFoundException($"Config file not found: {_filePath}"); + + var lines = File.ReadAllLines(_filePath); + int loadedCount = 0; + + foreach (var line in lines) + { + var trimmed = line.Trim(); + if (string.IsNullOrWhiteSpace(trimmed) || trimmed.StartsWith("#")) + continue; + + // Split by whitespace (tabs or spaces) + var cols = trimmed.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); + + // Ensure we have at least 11 columns based on specification + if (cols.Length < 11) + continue; + + try + { + var param = new HmaSmaParameters + { + Symbol = cols[0], + Timeframe = cols[1], + EntrySig = double.Parse(cols[2], CultureInfo.InvariantCulture), + SlSig = double.Parse(cols[3], CultureInfo.InvariantCulture), + SmaBias = int.Parse(cols[4], CultureInfo.InvariantCulture), + HmaBias = int.Parse(cols[5], CultureInfo.InvariantCulture), + HmaCluster = int.Parse(cols[6], CultureInfo.InvariantCulture), + BiasFilter = bool.Parse(cols[7]), + BiasAvg = int.Parse(cols[8], CultureInfo.InvariantCulture), + DynMgmt = bool.Parse(cols[9]), + TelegramOnly = bool.Parse(cols[10]) + }; + + string key = BuildKey(param.Symbol, param.Timeframe); + + // Overwrite duplicates if they exist lower in the file + _cache[key] = param; + loadedCount++; + } + catch (Exception) + { + // Fail silently for single bad lines, or log if logger provided. + // For library code, we skip invalid lines to ensure robustness. + continue; + } + } + + return loadedCount; + } + + /// + /// Retrieves configuration for a specific symbol and timeframe. + /// Returns null if not found. + /// + public HmaSmaParameters? GetParameters(string symbol, string timeframe) + { + string key = BuildKey(symbol, timeframe); + return _cache.TryGetValue(key, out var parameters) ? parameters : null; + } + + private static string BuildKey(string symbol, string timeframe) + { + return $"{symbol.ToUpperInvariant()}_{timeframe.ToUpperInvariant()}"; + } + } +} \ No newline at end of file diff --git a/Sources/Common/MSLib/MSLib.sln b/Sources/Common/MSLib/MSLib.sln new file mode 100644 index 0000000..79faa5c --- /dev/null +++ b/Sources/Common/MSLib/MSLib.sln @@ -0,0 +1,24 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSLib", "MSLib.csproj", "{35379097-39C9-E3AB-CA26-4A355536E164}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {35379097-39C9-E3AB-CA26-4A355536E164}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35379097-39C9-E3AB-CA26-4A355536E164}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35379097-39C9-E3AB-CA26-4A355536E164}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35379097-39C9-E3AB-CA26-4A355536E164}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {63787C32-34FC-4DC2-99AD-98BEA2F486EC} + EndGlobalSection +EndGlobal diff --git a/Sources/Common/MSLib/SRCluster.cs b/Sources/Common/MSLib/SRCluster.cs new file mode 100644 index 0000000..fc8f9f5 --- /dev/null +++ b/Sources/Common/MSLib/SRCluster.cs @@ -0,0 +1,213 @@ +using System; +using System.Collections.Generic; + +namespace Myc +{ + public enum PointType { Peak, Trough } + + public struct ExtremumPoint + { + public double Price; + public int Index; + public PointType Type; + } + + public struct ClusterZone + { + public double Price; + public double Score; + } + + /// + /// Hochoptimierte Engine. Hält den State im Speicher, um GC-Allocations zu vermeiden. + /// Nutzt eine permanent preis-sortierte Liste für extrem schnelle Range-Abfragen. + /// + public class ClusterCalculator + { + // Permanente Buffer verhindern "new List<>" Zuweisungen pro Tick + private readonly List _priceSortedPoints; + private readonly List _candidatesBuffer; + private readonly List _resultsBuffer; + + private readonly CandidateComparer _candidateComparer = new CandidateComparer(); + + // Status für effizientes Aufräumen (Pruning) + private int _lastPruneIndex = 0; + private const int PruneInterval = 100; // Nur alle 100 Bars aufräumen spart CPU + + public ClusterCalculator(int capacity = 2000) + { + _priceSortedPoints = new List(capacity); + _candidatesBuffer = new List(capacity); + _resultsBuffer = new List(100); + } + + /// + /// Fügt einen Punkt via BinarySearch ein, um die Sortierung beizubehalten (O(log N)). + /// + public void AddPoint(ExtremumPoint point) + { + int low = 0; + int high = _priceSortedPoints.Count - 1; + + while (low <= high) + { + int mid = low + (high - low) / 2; + if (_priceSortedPoints[mid].Price < point.Price) + low = mid + 1; + else + high = mid - 1; + } + + _priceSortedPoints.Insert(low, point); + } + + /// + /// Entfernt alte Punkte. Nutzt einen effizienten "Swap-and-Cut" Algorithmus (O(N)), + /// statt langsamem RemoveAt in einer Schleife (O(N^2)). + /// + private void PruneOldPoints(int currentIndex, int decayPeriod) + { + int cutoffIndex = currentIndex - decayPeriod; + int writeIndex = 0; + + // In-Place Filterung (vermeidet Array-Copies) + for (int i = 0; i < _priceSortedPoints.Count; i++) + { + if (_priceSortedPoints[i].Index >= cutoffIndex) + { + _priceSortedPoints[writeIndex] = _priceSortedPoints[i]; + writeIndex++; + } + } + + // Den Rest der Liste abschneiden + if (writeIndex < _priceSortedPoints.Count) + { + _priceSortedPoints.RemoveRange(writeIndex, _priceSortedPoints.Count - writeIndex); + } + } + + public (List Zones, double TotalWeight) Calculate( + int currentIndex, + double currentPrice, + double range, + int decayPeriod, + int maxZones) + { + // 1. Internes Auto-Pruning (gedrosselt) + if (currentIndex - _lastPruneIndex >= PruneInterval) + { + PruneOldPoints(currentIndex, decayPeriod); + _lastPruneIndex = currentIndex; + } + + _candidatesBuffer.Clear(); + _resultsBuffer.Clear(); + + int count = _priceSortedPoints.Count; + if (count < 2) return (_resultsBuffer, 0.0); + + double totalWeightSum = 0.0; + + // 2. Sliding Window auf der sortierten Liste + // Da die Liste nach Preis sortiert ist, können wir Fenster [Center-Range, Center+Range] effizient finden. + int left = 0; + int right = 0; + + for (int i = 0; i < count; i++) + { + var centerPt = _priceSortedPoints[i]; + double centerWeight = GetWeight(centerPt, currentIndex, currentPrice, decayPeriod); + + // Tote Punkte ignorieren (Micro-Optimierung) + if (centerWeight <= 0.001) continue; + + totalWeightSum += centerWeight; + + double minPrice = centerPt.Price - range; + double maxPrice = centerPt.Price + range; + + // Fenster nach rechts erweitern + while (right < count && _priceSortedPoints[right].Price <= maxPrice) + { + right++; + } + + // Fenster von links verkleinern + while (left < right && _priceSortedPoints[left].Price < minPrice) + { + left++; + } + + // Gewichtung im Fenster summieren + double localScore = 0; + for (int k = left; k < right; k++) + { + localScore += GetWeight(_priceSortedPoints[k], currentIndex, currentPrice, decayPeriod); + } + + if (localScore > 0.01) + { + _candidatesBuffer.Add(new ClusterZone + { + Price = centerPt.Price, + Score = localScore + }); + } + } + + // 3. Kandidaten sortieren (Allocation Free via Comparer) + _candidatesBuffer.Sort(_candidateComparer); + + // 4. Überlappungen filtern + int candCount = _candidatesBuffer.Count; + for (int i = 0; i < candCount; i++) + { + if (_resultsBuffer.Count >= maxZones) break; + + var cand = _candidatesBuffer[i]; + bool overlaps = false; + + int resCount = _resultsBuffer.Count; + for (int j = 0; j < resCount; j++) + { + if (Math.Abs(_resultsBuffer[j].Price - cand.Price) < range) + { + overlaps = true; + break; + } + } + + if (!overlaps) + { + _resultsBuffer.Add(cand); + } + } + + return (_resultsBuffer, totalWeightSum); + } + + private double GetWeight(ExtremumPoint p, int currentIndex, double currentPrice, int decayPeriod) + { + double age = currentIndex - p.Index; + if (age > decayPeriod) return 0.0; + + double w = 1.0 - (age / decayPeriod); + if (w < 0) return 0.0; + + // Role Reversal Logic + if ((p.Type == PointType.Peak && p.Price < currentPrice) || + (p.Type == PointType.Trough && p.Price > currentPrice)) + { + w *= 2.0; + } + return w; + } + + private class CandidateComparer : IComparer + { + public int Compare(ClusterZone x, ClusterZone y) => y.Score.CompareTo(x.Score); + } + } +} \ No newline at end of file diff --git a/Sources/Common/MSLib/bin/Debug/net6.0/MSLib.dll b/Sources/Common/MSLib/bin/Debug/net6.0/MSLib.dll index acf6f9a371cc8ead30bfc9cd2dc9a081c1670774..cd7721aa15a10a35af18daa4631a03ab93c30042 100644 GIT binary patch literal 20992 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 PPN}sgO#g>$e~s~fq%-MB diff --git a/Sources/Common/MSLib/bin/Debug/net6.0/MSLib.pdb b/Sources/Common/MSLib/bin/Debug/net6.0/MSLib.pdb index d1c06a665fbc4adca8323df228ed5f71e861dd3d..227563f7764cdbbf0ec119ce5dc9f8a338ef6541 100644 GIT binary patch delta 4130 zcmZu!d2o}*6@R<>^y$;#+m^8n#`wS&HrV)>aNEW`4a?B(yP3ufx+RS*;(oRY#Os^!QN$Iqt&|=agll(!$v}77jn@oSZl0ogD(eLg4 z-h2D@db?U(I{56<>~vx9AQ2U`_wGSK_ka)0;75qATZk@j)NKKu)3eVn?5C566qE&> zHu?tY-J;&w*|r+xJ@A+7!5dv(5$rYRnYUY4u4sDYg;sWV;HIfyTrNAyA1c(j}0T>5~Ksq1;FaRmQY(UsV0O8Bd+%66ZqX^&vdH@qJ4`_hf zI^uK$V*|2_)cp07}Pi9*+bTfpalxm2N4 zAS(!w2P_4)0K0&_fCqRHcnA0+@K@k-AgN5D`M`3Z8CVZ=0{eg?z&C;Oz!l&v;2LlP zxC1EV3grORKpU_L2tEp7FP|ASCx1Do-vLW1IJE;ufSZ+^{s|N;*zV857A@|zpD!_!+tknlf-8gusn`;$M|a4(@?Jh zR>0mI^FJNqt>7XtwgD?qTNAU3v=)3lcnG#ObR+l%@W;U`7zL%m2E_^(k*AV(fPVu1 zvl#CLzY9Jdl4d~|SU^c`dgr(dA1 zP@@bWG)!7K6?3e=j=l|*BArYzr$-O~2NMlAjmXBQ;A5bFK|kXo^o(ARKHDL6v=UOK zRq!;@9e7$~v;^7%O(L~JMt7fKLLzcMQRJ$cQ}r9P!!|)OdPQ1_A$25v3lz$RUQcB* z_IXH5HIij0NIQpkj3UtBihR14MBPlHl?APi847}Jaufry?GorY zT|_U~2&oA`^4Jl%%Tkc6lD8R?#i%A;^i!DaeZp$)Gk+Xi=U) zr9)M#AbIsT9PVh%=kUjj(gpf~bxwbPyn}&(!2m`6Y|P7cd537ohc<1VUdKV|84P&$?v?e( zw6Rpz?--8coBCK!Hx4G?=J$};;rkGM^=a*I0=dCr@pL_SKK+T5rZ>3)! zxYIM}===NG8x{LMx%z=KAbWqug~Xgbb9Q*;TEUM;s4(NA4YP_ z9a^|3TpC^&u8RzryJko@^1iuYhWss(Z^_qjri(ON0<3=WrB(W}zC61HFLb zJTpF=!5-F2TO!U|m64H!Yn)0r?m1i_Oht%!T+?voC|g_|iCn|cqZuub|#r?nno zFzzC*C6P@mQ?^Q}a{flD)6-mKt)B2;HB%{v5YyDqt0rbI=d=1S%@aKc3zmxv_bm;F z2|v0DSuJR2;i9wHB5mW^>}YG<;bkh8yC1*ia5Qbl>dJWqnWA#7f|%+4x>eQ9cp9jD zi#?S}R3v~=#(gk}bP+(Mb$ZHEYLm#yu@{BPeaF}UmU68y))QW+T+@*%R)i_of1Mvg z3R=j4D_Wt%RJ$CTTa>*8~K!-yvAF2 z_`6odMrW~68ykI+9lgkoPO}rK{OB@%%+8OmWG9yK6N~wYFNu#Pv9Uxp_9P3AU1DR? ze5{R~s^O;&@KfddiFQ7wUx$rnp-V`DLb30d9!7^BK&liQZc8SlA~IdB^9T9l>FleYBvvdD-=$%sa=Mm?=j&&+7dU}iMvtXNT+l8TAvVBR*a zg`N`gNVg5+wsTju;_s&25r(4Trv$hWuwW=qyRB*=+n>6N}u+H7kz7u!Yh^vKYjo;{Br+XGkL_t`_da0pyyI z8s+Vxh&9(!r#hTX87dwM*b1pZL#7V11O;=sO0~K8dz-FOvN)C^`-gQD#9KpTnb*oz oACoB+_g*WfOwm@w-g~Sp8Go$V5RA=S%MyB|6J>{fuQZ_iFHO%_7XSbN delta 1148 zcmZvaZAepb6vm%(@4RzY=X{AItTbKC)TVSL7SXDAQ0( zW|0QcLfS|t*-j3V0dk8BlNaPI`B*mk&;mco1#8IN3c+)dF-;Ki3*zK5iBt;es|3pf zf@6W?6YaAev&J71!9)Iz{FYP)4C^`CW|ZKG~li(qB;XL)ZTy^&OE2$?y>5Qdx<05iI6JH%6HdR zwQh=pHU?Weg5hq}lC>-?6b){ir}8{ARJ*5C9rSd{JoVEvU9HV7keO;{_N2nRRo#(D z_uNo;ZDd=0s4LjxZ|^bJh{MbsUtAW5s$bbn>G3P^Yw?@$JE|#X)kv~CTMg#ajwTWH zC#P6Md2^#OBY7gXesX^QJL&%@36~`DBvB}dN=ej6qB;3vW>WwE;rVIFq1mm*Ux97Y AGynhq diff --git a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.GeneratedMSBuildEditorConfig.editorconfig b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.GeneratedMSBuildEditorConfig.editorconfig index 4db8300..2387edc 100644 --- a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.GeneratedMSBuildEditorConfig.editorconfig +++ b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.GeneratedMSBuildEditorConfig.editorconfig @@ -7,4 +7,4 @@ build_property.InvariantGlobalization = build_property.PlatformNeutralAssembly = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = MSLib -build_property.ProjectDir = C:\Users\Brummel\Documents\cAlgo\Sources\Common\MSLib\ +build_property.ProjectDir = c:\Users\Brummel\Documents\cAlgo\Sources\Common\MSLib\ diff --git a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.assets.cache b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.assets.cache index d7e1628496032ca10cc92a3207c0bfcde3419d16..a98a7ac76452ea4bebaf75b73a6c394796824917 100644 GIT binary patch delta 55 zcmV-70LcH20geGFP)kQa3IG5A>YmO#d1^~Jc!P(|9IU1F;T|5ntv{Kpjw&6(@=$zQ NijgrJkw6HMOhQW_7C8U_ delta 55 zcmeBU>|@jn@OF3PVqjpX7QSG#t@`>aLr(*Ko~CcMKV?@oOKO<;R3*-yUVXRaM%P3` L>4^>;6MdWj4}BDt diff --git a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.CoreCompileInputs.cache b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.CoreCompileInputs.cache index 5a1c6bb..9bcdebf 100644 --- a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.CoreCompileInputs.cache +++ b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -375eb7427a13a6a1a036f49ce73cc2a66452e118 +3ad9fabd4c4d10fabf7ae747a073d85bece381b1 diff --git a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.FileListAbsolute.txt b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.FileListAbsolute.txt index 71d3a6b..e94742d 100644 --- a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.FileListAbsolute.txt +++ b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.csproj.FileListAbsolute.txt @@ -10,3 +10,15 @@ C:\Users\Brummel\Documents\cAlgo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.dll C:\Users\Brummel\Documents\cAlgo\Sources\Common\MSLib\obj\Debug\net6.0\refint\MSLib.dll C:\Users\Brummel\Documents\cAlgo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.pdb C:\Users\Brummel\Documents\cAlgo\Sources\Common\MSLib\obj\Debug\net6.0\ref\MSLib.dll +t:\cTrader-Algo\Sources\Common\MSLib\bin\Debug\net6.0\MSLib.deps.json +t:\cTrader-Algo\Sources\Common\MSLib\bin\Debug\net6.0\MSLib.dll +t:\cTrader-Algo\Sources\Common\MSLib\bin\Debug\net6.0\MSLib.pdb +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.csproj.AssemblyReference.cache +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.GeneratedMSBuildEditorConfig.editorconfig +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.AssemblyInfoInputs.cache +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.AssemblyInfo.cs +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.csproj.CoreCompileInputs.cache +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.dll +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\refint\MSLib.dll +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\MSLib.pdb +t:\cTrader-Algo\Sources\Common\MSLib\obj\Debug\net6.0\ref\MSLib.dll diff --git a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.dll b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.dll index acf6f9a371cc8ead30bfc9cd2dc9a081c1670774..cd7721aa15a10a35af18daa4631a03ab93c30042 100644 GIT binary patch literal 20992 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 PPN}sgO#g>$e~s~fq%-MB diff --git a/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.pdb b/Sources/Common/MSLib/obj/Debug/net6.0/MSLib.pdb index d1c06a665fbc4adca8323df228ed5f71e861dd3d..227563f7764cdbbf0ec119ce5dc9f8a338ef6541 100644 GIT binary patch delta 4130 zcmZu!d2o}*6@R<>^y$;#+m^8n#`wS&HrV)>aNEW`4a?B(yP3ufx+RS*;(oRY#Os^!QN$Iqt&|=agll(!$v}77jn@oSZl0ogD(eLg4 z-h2D@db?U(I{56<>~vx9AQ2U`_wGSK_ka)0;75qATZk@j)NKKu)3eVn?5C566qE&> zHu?tY-J;&w*|r+xJ@A+7!5dv(5$rYRnYUY4u4sDYg;sWV;HIfyTrNAyA1c(j}0T>5~Ksq1;FaRmQY(UsV0O8Bd+%66ZqX^&vdH@qJ4`_hf zI^uK$V*|2_)cp07}Pi9*+bTfpalxm2N4 zAS(!w2P_4)0K0&_fCqRHcnA0+@K@k-AgN5D`M`3Z8CVZ=0{eg?z&C;Oz!l&v;2LlP zxC1EV3grORKpU_L2tEp7FP|ASCx1Do-vLW1IJE;ufSZ+^{s|N;*zV857A@|zpD!_!+tknlf-8gusn`;$M|a4(@?Jh zR>0mI^FJNqt>7XtwgD?qTNAU3v=)3lcnG#ObR+l%@W;U`7zL%m2E_^(k*AV(fPVu1 zvl#CLzY9Jdl4d~|SU^c`dgr(dA1 zP@@bWG)!7K6?3e=j=l|*BArYzr$-O~2NMlAjmXBQ;A5bFK|kXo^o(ARKHDL6v=UOK zRq!;@9e7$~v;^7%O(L~JMt7fKLLzcMQRJ$cQ}r9P!!|)OdPQ1_A$25v3lz$RUQcB* z_IXH5HIij0NIQpkj3UtBihR14MBPlHl?APi847}Jaufry?GorY zT|_U~2&oA`^4Jl%%Tkc6lD8R?#i%A;^i!DaeZp$)Gk+Xi=U) zr9)M#AbIsT9PVh%=kUjj(gpf~bxwbPyn}&(!2m`6Y|P7cd537ohc<1VUdKV|84P&$?v?e( zw6Rpz?--8coBCK!Hx4G?=J$};;rkGM^=a*I0=dCr@pL_SKK+T5rZ>3)! zxYIM}===NG8x{LMx%z=KAbWqug~Xgbb9Q*;TEUM;s4(NA4YP_ z9a^|3TpC^&u8RzryJko@^1iuYhWss(Z^_qjri(ON0<3=WrB(W}zC61HFLb zJTpF=!5-F2TO!U|m64H!Yn)0r?m1i_Oht%!T+?voC|g_|iCn|cqZuub|#r?nno zFzzC*C6P@mQ?^Q}a{flD)6-mKt)B2;HB%{v5YyDqt0rbI=d=1S%@aKc3zmxv_bm;F z2|v0DSuJR2;i9wHB5mW^>}YG<;bkh8yC1*ia5Qbl>dJWqnWA#7f|%+4x>eQ9cp9jD zi#?S}R3v~=#(gk}bP+(Mb$ZHEYLm#yu@{BPeaF}UmU68y))QW+T+@*%R)i_of1Mvg z3R=j4D_Wt%RJ$CTTa>*8~K!-yvAF2 z_`6odMrW~68ykI+9lgkoPO}rK{OB@%%+8OmWG9yK6N~wYFNu#Pv9Uxp_9P3AU1DR? ze5{R~s^O;&@KfddiFQ7wUx$rnp-V`DLb30d9!7^BK&liQZc8SlA~IdB^9T9l>FleYBvvdD-=$%sa=Mm?=j&&+7dU}iMvtXNT+l8TAvVBR*a zg`N`gNVg5+wsTju;_s&25r(4Trv$hWuwW=qyRB*=+n>6N}u+H7kz7u!Yh^vKYjo;{Br+XGkL_t`_da0pyyI z8s+Vxh&9(!r#hTX87dwM*b1pZL#7V11O;=sO0~K8dz-FOvN)C^`-gQD#9KpTnb*oz oACoB+_g*WfOwm@w-g~Sp8Go$V5RA=S%MyB|6J>{fuQZ_iFHO%_7XSbN delta 1148 zcmZvaZAepb6vm%(@4RzY=X{AItTbKC)TVSL7SXDAQ0( zW|0QcLfS|t*-j3V0dk8BlNaPI`B*mk&;mco1#8IN3c+)dF-;Ki3*zK5iBt;es|3pf zf@6W?6YaAev&J71!9)Iz{FYP)4C^`CW|ZKG~li(qB;XL)ZTy^&OE2$?y>5Qdx<05iI6JH%6HdR zwQh=pHU?Weg5hq}lC>-?6b){ir}8{ARJ*5C9rSd{JoVEvU9HV7keO;{_N2nRRo#(D z_uNo;ZDd=0s4LjxZ|^bJh{MbsUtAW5s$bbn>G3P^Yw?@$JE|#X)kv~CTMg#ajwTWH zC#P6Md2^#OBY7gXesX^QJL&%@36~`DBvB}dN=ej6qB;3vW>WwE;rVIFq1mm*Ux97Y AGynhq diff --git a/Sources/Common/MSLib/obj/Debug/net6.0/ref/MSLib.dll b/Sources/Common/MSLib/obj/Debug/net6.0/ref/MSLib.dll index 00ff9d317ed70305d9b98cdec2306919b6db0ad2..5a0174e5fe230e2067315dad9796b61a5cb83aa3 100644 GIT binary patch literal 10240 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 literal 8192 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 literal 8192 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 diff --git a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO.sln b/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO.sln deleted file mode 100644 index b7a72d8..0000000 --- a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Candlestick Patterns DEMO", "Candlestick Patterns DEMO\Candlestick Patterns DEMO.csproj", "{B9F710D0-7DD5-4E04-B2E9-98C1878E7674}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B9F710D0-7DD5-4E04-B2E9-98C1878E7674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B9F710D0-7DD5-4E04-B2E9-98C1878E7674}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B9F710D0-7DD5-4E04-B2E9-98C1878E7674}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B9F710D0-7DD5-4E04-B2E9-98C1878E7674}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.cs b/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.cs deleted file mode 100644 index 0b8fa89..0000000 --- a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.cs +++ /dev/null @@ -1,504 +0,0 @@ -using System; -using System.IO; -using cAlgo.API; -using cAlgo.API.Internals; -using cAlgo.API.Indicators; -using cAlgo.Indicators; - -namespace cAlgo -{ - [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.FileSystem)] - public class CP : Indicator - { - #region Parameters - - [Parameter("Show names", DefaultValue = false)] - public bool Name_Status { get; set; } - - [Parameter("Show more info", DefaultValue = true)] - public bool Add_info { get; set; } - - [Parameter("Show Doji", DefaultValue = true)] - public bool Show_Doji { get; set; } - - [Parameter("Show Hammer", DefaultValue = true)] - public bool Show_Hammer { get; set; } - - [Parameter("MACD Long Cycle", DefaultValue = 26)] - public int LongCycle { get; set; } - - [Parameter("MACD Short Cycle", DefaultValue = 12)] - public int ShortCycle { get; set; } - - [Parameter("MACD Signal Periods", DefaultValue = 9)] - public int Periods { get; set; } - - [Parameter("Doji", DefaultValue = "✝")] - public string Doji_s { get; set; } - [Parameter("Hammer", DefaultValue = "☨")] - public string Hammer_s { get; set; } - - #endregion Parameters - - private MacdHistogram macd; - - private const VerticalAlignment vAlign = VerticalAlignment.Top; - private const HorizontalAlignment hAlign = HorizontalAlignment.Center; - - private const double n = 0.618; - - private const string UpArrow = "▲"; - private const string DownArrow = "▼"; - - private string Pattern_name; - - private double offset; - - private struct Candle - { - #region Data - - public double High; - public double Close; - public double Open; - public double Low; - - #endregion Data - - #region Functions - - public bool IsFallCandle() - { - if (Close < Open) - return true; - else - return false; - } - public bool IsRiseCandle() - { - if (Open < Close) - return true; - else - return false; - } - - public double Median() - { - return (High + Low) / 2; - } - - #endregion Functions - } - - private enum PatternType : int - { - Doji = 1, - Hammer = 2 - } - - protected override void Initialize() - { - macd = Indicators.MacdHistogram(MarketSeries.Close, LongCycle, ShortCycle, Periods); - offset = Symbol.PipSize * 5; - } - - private void DrawText(int index, int _Type) - { - var high = MarketSeries.High[index]; - var low = MarketSeries.Low[index]; - - int x = index; - - double h_y = high + offset; - double h_d_y = h_y + offset * 2.5; - double h_t_y = h_d_y + offset; - - double l_y = low - offset * 2.5; - double l_d_y = l_y - offset; - - - if (TimeFrame == TimeFrame.Minute) - { - h_y = high + offset / 2; - h_d_y = h_y + offset / 2; - h_t_y = h_d_y + offset; - - l_y = low - offset / 2; - l_d_y = l_y - offset / 2; - } - - - - if (TimeFrame == TimeFrame.Minute15) - { - h_y = high + offset / 1.5; - h_d_y = h_y + offset; - h_t_y = h_d_y + offset; - - l_y = low - offset * 1.5; - l_d_y = l_y - offset * 1.1; - } - - - if (TimeFrame == TimeFrame.Hour) - { - h_y = high + offset; - h_d_y = h_y + offset * 3; - h_t_y = h_d_y + offset; - - l_y = low - offset * 3; - l_d_y = l_y - offset * 3; - } - - if (TimeFrame == TimeFrame.Hour4) - { - h_y = high + offset; - h_d_y = h_y + offset * 5; - h_t_y = h_d_y + offset; - - l_y = low - offset * 5; - l_d_y = l_y - offset * 5; - } - - if (TimeFrame == TimeFrame.Daily) - { - h_y = high + offset * 3; - h_d_y = h_y + offset * 12; - h_t_y = h_d_y + offset; - - l_y = low - offset * 12; - l_d_y = l_y - offset * 12; - } - - if (TimeFrame == TimeFrame.Weekly) - { - h_y = high + offset * 6; - h_d_y = h_y + offset * 24; - h_t_y = h_d_y + offset; - - l_y = low - offset * 24; - l_d_y = l_y - offset * 24; - } - - if (TimeFrame == TimeFrame.Monthly) - { - h_y = high + offset * 24; - h_d_y = h_y + offset * 64; - h_t_y = h_d_y + offset; - - l_y = low - offset * 64; - l_d_y = l_y - offset * 64; - } - - string f_ObjName; - string s_ObjName; - - switch (_Type) - { - case (int)PatternType.Doji: - - f_ObjName = string.Format("Doji {0}", index); - s_ObjName = string.Format("Doji | {0}", index); - - ChartObjects.DrawText(f_ObjName, "Doji", x, h_d_y, vAlign, hAlign, Colors.White); - ChartObjects.DrawText(s_ObjName, "\n|", x, h_y, vAlign, hAlign, Colors.White); - - break; - - case (int)PatternType.Hammer: - - f_ObjName = string.Format("Hammer {0}", index); - s_ObjName = string.Format("Hammer | {0}", index); - - ChartObjects.DrawText(f_ObjName, "Hammer", x, h_d_y, vAlign, hAlign, Colors.White); - ChartObjects.DrawText(s_ObjName, "\n|", x, h_y, vAlign, hAlign, Colors.White); - - break; - - } - } - - private void DrawSymbols(int index, int _Type) - { - var high = MarketSeries.High[index]; - var low = MarketSeries.Low[index]; - - int x = index; - - double h_y = high + offset; - double h_d_y = h_y + offset * 2.5; - double h_t_y = h_d_y + offset; - - double l_y = low - offset * 2.5; - double l_d_y = l_y - offset; - - - if (TimeFrame == TimeFrame.Minute) - { - h_y = high + offset / 2; - h_d_y = h_y + offset / 2; - h_t_y = h_d_y + offset; - - l_y = low - offset / 2; - l_d_y = l_y - offset / 2; - } - - - - if (TimeFrame == TimeFrame.Minute15) - { - h_y = high + offset / 1.5; - h_d_y = h_y + offset; - h_t_y = h_d_y + offset; - - l_y = low - offset * 1.5; - l_d_y = l_y - offset * 1.1; - } - - - if (TimeFrame == TimeFrame.Hour) - { - h_y = high + offset; - h_d_y = h_y + offset * 3; - h_t_y = h_d_y + offset; - - l_y = low - offset * 3; - l_d_y = l_y - offset * 3; - } - - if (TimeFrame == TimeFrame.Hour4) - { - h_y = high + offset; - h_d_y = h_y + offset * 5; - h_t_y = h_d_y + offset; - - l_y = low - offset * 5; - l_d_y = l_y - offset * 5; - } - - if (TimeFrame == TimeFrame.Daily) - { - h_y = high + offset * 3; - h_d_y = h_y + offset * 12; - h_t_y = h_d_y + offset; - - l_y = low - offset * 12; - l_d_y = l_y - offset * 12; - } - - if (TimeFrame == TimeFrame.Weekly) - { - h_y = high + offset * 6; - h_d_y = h_y + offset * 24; - h_t_y = h_d_y + offset; - - l_y = low - offset * 24; - l_d_y = l_y - offset * 24; - } - - if (TimeFrame == TimeFrame.Monthly) - { - h_y = high + offset * 24; - h_d_y = h_y + offset * 64; - h_t_y = h_d_y + offset; - - l_y = low - offset * 64; - l_d_y = l_y - offset * 64; - } - - string f_ObjName; - string s_ObjName; - - switch (_Type) - { - case (int)PatternType.Doji: - - f_ObjName = string.Format("Doji {0}", index); - s_ObjName = string.Format("Doji | {0}", index); - - ChartObjects.DrawText(f_ObjName, Doji_s, x, h_d_y, vAlign, hAlign, Colors.White); - ChartObjects.DrawText(s_ObjName, "\n|", x, h_y, vAlign, hAlign, Colors.White); - - break; - - case (int)PatternType.Hammer: - - f_ObjName = string.Format("Hammer {0}", index); - s_ObjName = string.Format("Hammer | {0}", index); - - ChartObjects.DrawText(f_ObjName, Hammer_s, x, h_d_y, vAlign, hAlign, Colors.DarkOrange); - ChartObjects.DrawText(s_ObjName, "\n|", x, h_y, vAlign, hAlign, Colors.White); - - break; - - } - } - - - private bool Size(Candle candle) - { - if (candle.IsFallCandle()) - { - if ((candle.Open - candle.Close) > (candle.High - candle.Low) * n) - return true; - } - else if (candle.IsRiseCandle()) - { - if ((candle.Close - candle.Open) > (candle.High - candle.Low) * n) - return true; - } - - return false; - } - - private void Text_Info(int index, string Pattern_name) - { - if (Add_info == true) - { - - #region Pattern - - ChartObjects.DrawText("PATTERN", "LAST PATTERN : " + Pattern_name, StaticPosition.TopLeft, Colors.White); - - #endregion Pattern - - #region MACD - - if (MACD_Info(index) == "UP") - { - ChartObjects.DrawText("MACD", "\nMACD : ", StaticPosition.TopLeft, Colors.White); - ChartObjects.DrawText("ARROW MACD", "\n\t" + UpArrow, StaticPosition.TopLeft, Colors.DodgerBlue); - - } - else if (MACD_Info(index) == "DOWN") - { - ChartObjects.DrawText("MACD", "\nMACD : ", StaticPosition.TopLeft, Colors.White); - ChartObjects.DrawText("ARROW MACD", "\n\t" + DownArrow, StaticPosition.TopLeft, Colors.Crimson); - } - - #endregion MACD - - } - } - - private string MACD_Info(int index) - { - if (macd.Histogram[index] > 0) - { - return "UP"; - } - - if (macd.Histogram[index] < 0) - { - return "DOWN"; - } - return "ZERO"; - } - - - private bool Doji(Candle candle) - { - - if (candle.IsFallCandle() & (candle.Close != candle.Low)) - { - if ((candle.High - candle.Low) > 12 * (candle.Open - candle.Close)) - return true; - } - if (candle.IsRiseCandle() & (candle.Close != candle.High)) - { - if ((candle.High - candle.Low) > 12 * (candle.Close - candle.Open)) - return true; - } - return false; - } - - private bool Hammer(Candle candle) - { - if (candle.IsFallCandle() & (candle.Close == candle.Low)) - { - if ((candle.Median() > candle.Open) & (candle.Median() > candle.Close)) - { - if ((candle.Median() - candle.Low) > 1.618 * (candle.Open - candle.Close)) - return true; - } - } - - if (candle.IsRiseCandle() & (candle.Close == candle.High)) - { - if ((candle.Median() < candle.Open) & (candle.Median() < candle.Close)) - { - if ((candle.High - candle.Median()) > 1.618 * (candle.Close - candle.Open)) - return true; - } - } - - return false; - } - - public override void Calculate(int index) - { - #region structs - - Candle candle = new Candle(); - - #endregion structs - - #region variables - - int candle_index = 0; - - candle.High = MarketSeries.High.Last(candle_index); - candle.Open = MarketSeries.Open.Last(candle_index); - candle.Close = MarketSeries.Close.Last(candle_index); - candle.Low = MarketSeries.Low.Last(candle_index); - - #endregion variables - - #region Patterns - - // Doji - - if (Doji(candle)) - { - if (Show_Doji == true) - { - Pattern_name = "Doji"; - if (Name_Status == true) - { - DrawText(index, (int)PatternType.Doji); - } - else - { - DrawSymbols(index, (int)PatternType.Doji); - } - } - } - - //Hammer - - if (Hammer(candle)) - { - if (Show_Hammer == true) - { - Pattern_name = "Hammer"; - if (Name_Status == true) - { - DrawText(index, (int)PatternType.Hammer); - } - else - { - DrawSymbols(index, (int)PatternType.Hammer); - } - } - } - - #endregion Patterns - - #region Text - - Text_Info(index, Pattern_name); - - #endregion Text - } - } -} diff --git a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.csproj b/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.csproj deleted file mode 100644 index bfeb7d6..0000000 --- a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Candlestick Patterns DEMO.csproj +++ /dev/null @@ -1,58 +0,0 @@ - - - - - Debug - AnyCPU - {B9F710D0-7DD5-4E04-B2E9-98C1878E7674} - {DD87C1B2-3799-4CA2-93B6-5288EE928820};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties - cAlgo - Candlestick Patterns DEMO - v4.0 - Client - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - False - ..\..\..\..\API\cAlgo.API.dll - - - - - - - - - \ No newline at end of file diff --git a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Properties/AssemblyInfo.cs b/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Properties/AssemblyInfo.cs deleted file mode 100644 index 814d8b2..0000000 --- a/Sources/Indicators/Candlestick Patterns DEMO/Candlestick Patterns DEMO/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("Candlestick Patterns DEMO")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyProduct("Candlestick Patterns DEMO")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: Guid("35f19c43-c7cc-4f53-b8e0-61caaf9cd8e8")] - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/Sources/Indicators/Correlation with angle v1.1.algo b/Sources/Indicators/Correlation with angle v1.1.algo deleted file mode 100644 index 4f167e948977fa624ee4fe1742fd388741db21a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7374 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 Ah5!Hn diff --git a/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1.sln b/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1.sln deleted file mode 100644 index f4ad4f5..0000000 --- a/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30011.22 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Correlation with angle v1.1", "Correlation with angle v1.1\Correlation with angle v1.1.csproj", "{0e2c43ed-8f8d-446b-848e-ed1fe9ef49a2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0e2c43ed-8f8d-446b-848e-ed1fe9ef49a2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0e2c43ed-8f8d-446b-848e-ed1fe9ef49a2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0e2c43ed-8f8d-446b-848e-ed1fe9ef49a2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0e2c43ed-8f8d-446b-848e-ed1fe9ef49a2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.cs b/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.cs deleted file mode 100644 index 901975e..0000000 --- a/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.cs +++ /dev/null @@ -1,249 +0,0 @@ -using System; -using System.Linq; -using System.Threading; -using cAlgo.API; -using cAlgo.API.Indicators; -using cAlgo.API.Internals; -using cAlgo.Indicators; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace cAlgo -{ - [Indicator(IsOverlay = false, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] - public class Correlationwithanglev11 : Indicator - { - [Parameter("Symbol Selection Method", DefaultValue = SymbolSelectionMethodType.SymbolList, Group = "Symbole Choice \n(Uncomment code for more than 6 Symbole)")] - public SymbolSelectionMethodType SymbolSelectionMethod { get; set; } - public enum SymbolSelectionMethodType - { - WatchList, - SymbolList - } - - [Parameter("Symbol List 1 / WatchList Name 1:", DefaultValue = "XAUUSD", Group = "Symbol Management (5 Symbol / List Maximum)")] - public string TradedSymbols1 { get; set; } - [Parameter("Symbol List 2 / WatchList Name 2:", DefaultValue = "SpotBrent", Group = "Symbol Management (5 Symbol / List Maximum)")] - public string TradedSymbols2 { get; set; } - - [Parameter("ExtraLevel", DefaultValue = 50, Group = "Angle Level")] - public int ExtraLevel { get; set; } - - [Parameter("PeriodA ngle", DefaultValue = 14, Group = "Angle Setting")] - public int PeriodAngle { get; set; } - [Parameter("Loockback Periods Angle", DefaultValue = 1, Group = "Angle Setting")] - public int LookbackAngle { get; set; } - [Parameter("Price Smooth Type", DefaultValue = MovingAverageType.Weighted, Group = "Angle Setting")] - public MovingAverageType MaTypeAngle { get; set; } - - [Parameter("History Diff Angle", DefaultValue = 1, Group = "Base Setting")] - public int HistoryTextLookback { get; set; } - - [Parameter("ShowSignals", DefaultValue = true, Group = "Histogram Setting")] - public bool ShowSignal { get; set; } - [Parameter("Sensibility Histogram", DefaultValue = 0.3, Group = "Histogram Setting")] - public double SensibilityHisto { get; set; } - - [Parameter("Signal Periods", DefaultValue = 55, Group = "Histogram Setting")] - public int SignalPeriods { get; set; } - [Parameter("Price Smooth Type", DefaultValue = MovingAverageType.Weighted, Group = "Histogram Setting")] - public MovingAverageType MaTypeSignal { get; set; } - - [Output("List 1 : Symb n° 1", LineColor = "Lime", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN1 { get; set; } - [Output("List 1 : Symb n° 2", LineColor = "Lime", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN2 { get; set; } - [Output("List 1 : Symb n° 3", LineColor = "Lime", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN3 { get; set; } - [Output("List 1 : Symb n° 4", LineColor = "Lime", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN4 { get; set; } - [Output("List 1 : Symb n° 5", LineColor = "Lime", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN5 { get; set; } - - [Output("List 2 : Symb n° 6", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN6 { get; set; } - [Output("List 2 : Symb n° 7", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN7 { get; set; } - [Output("List 2 : Symb n° 8", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN8 { get; set; } - [Output("List 2 : Symb n° 9", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN9 { get; set; } - [Output("List 2 : Symb n° 10", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN10 { get; set; } - - [Output("LevelHigh", LineColor = "Gold", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries LevelHigh { get; set; } - [Output("LevelMid", LineColor = "White", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries LevelMid { get; set; } - [Output("LevelLow", LineColor = "Gold", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries LevelLow { get; set; } - - private MovingAverage[] angleIndex1, angleIndex2; - private AverageTrueRange[] atrIndex1, atrIndex2; - - private Symbol[] TradeList1, TradeList2; - private Bars[] bars1, bars2; - private IndicatorDataSeries[] ResPaireWatchlist1, ResPaireWatchlist2; - private int[] indexBars1, indexBars2; - - protected override void Initialize() - { - if (SymbolSelectionMethod == SymbolSelectionMethodType.WatchList) - { - // Get the trade list from the watchlist 1 provided by the user - foreach (Watchlist w in Watchlists) - { - if (w.Name == TradedSymbols1) - { - TradeList1 = Symbols.GetSymbols(w.SymbolNames.ToArray()); - } - } - // Get the trade list from the watchlist 2 provided by the user - foreach (Watchlist w in Watchlists) - { - if (w.Name == TradedSymbols2) - { - TradeList2 = Symbols.GetSymbols(w.SymbolNames.ToArray()); - } - } - Print(); - Print("Watchlist 1 : [ {0} ] = {1} symbols || Watchlist 2 : [ {2} ] = {3} symbols", Bars.ToString().Substring(0, 3), TradeList1.Length, Bars.ToString().Substring(3, 3), TradeList2.Length); - Print(); - } - else if (SymbolSelectionMethod == SymbolSelectionMethodType.SymbolList) - { - // Get the trade list from the SymbolList provided by the user - string[] SymbolList = TradedSymbols1.Split(' '); - TradeList1 = Symbols.GetSymbols(SymbolList); - - // Get the trade list from the SymbolList provided by the user - string[] SymbolList2 = TradedSymbols2.Split(' '); - TradeList2 = Symbols.GetSymbols(SymbolList2); - } - - //Create Indicators for Watchlist 1 - angleIndex1 = new MovingAverage[TradeList1.Length]; - atrIndex1 = new AverageTrueRange[TradeList1.Length]; - bars1 = new Bars[TradeList1.Length]; - indexBars1 = new int[TradeList1.Length]; - ResPaireWatchlist1 = new IndicatorDataSeries[TradeList1.Length]; - - //Create Indicators for Watchlist 2 - angleIndex2 = new MovingAverage[TradeList2.Length]; - atrIndex2 = new AverageTrueRange[TradeList2.Length]; - bars2 = new Bars[TradeList2.Length]; - indexBars2 = new int[TradeList2.Length]; - ResPaireWatchlist2 = new IndicatorDataSeries[TradeList2.Length]; - - //Initialize Indicators for Watchlist 1 - int i = 0; - foreach (var symbol in TradeList1) - { - Print("Watchlist : [ {0} ] => {1} symbols = {2}", Bars.SymbolName, (i + 1), symbol.Name); - //Load bars of watchlist 1 - bars1[i] = MarketData.GetBars(TimeFrame, symbol.Name); - while (bars1[i].OpenTimes[0] > Bars.OpenTimes[0]) - bars1[i].LoadMoreHistory(); - - //Load Futurs DataSerie watchlist 1 (calculation in Calculate(int index)) - ResPaireWatchlist1[i] = CreateDataSeries(); - - //Load Indicators watchlist 1 - - atrIndex1[i] = Indicators.AverageTrueRange(bars1[i], 500, MovingAverageType.Simple); - angleIndex1[i] = Indicators.MovingAverage(bars1[i].ClosePrices, PeriodAngle, MaTypeAngle); - i++; - } - //Initialize Indicators for Watchlist 2 - Print(); - - int j = 0; - foreach (var symbol2 in TradeList2) - { - Print("Watchlist : [ {0} ] => {1} symbols = {2}", Bars.SymbolName, (j + 1), symbol2.Name); - //Load bars of watchlist 2 - bars2[j] = MarketData.GetBars(TimeFrame, symbol2.Name); - while (bars2[j].OpenTimes[0] > Bars.OpenTimes[0]) - bars2[j].LoadMoreHistory(); - - //Load Futurs DataSerie watchlist 2 (calculation in Calculate(int index)) - ResPaireWatchlist2[j] = CreateDataSeries(); - - //Load Indicators watchlist 2 - atrIndex2[j] = Indicators.AverageTrueRange(bars2[j], 500, MovingAverageType.Simple); - angleIndex2[j] = Indicators.MovingAverage(bars2[j].ClosePrices, PeriodAngle, MaTypeAngle); - j++; - } - Print(); - } - public override void Calculate(int index) - { - //Plot Static level on indicator - LevelHigh[index] = ExtraLevel; - LevelMid[index] = 0; - LevelLow[index] = 0 - ExtraLevel; - - if (index < PeriodAngle) - return; - - //Calculate angle by symbol list 1 - for (int i = 0; i < TradeList1.Length; i++) - { - indexBars1[i] = bars1[i].OpenTimes.GetIndexByTime(Bars.OpenTimes[index]); - ResPaireWatchlist1[i][index] = GetCalculationAngle(angleIndex1[i].Result[indexBars1[i]], angleIndex1[i].Result[indexBars1[i] - LookbackAngle], atrIndex1[i].Result[indexBars1[i]]); - } - - //Remove Static text of difference into index and index - HistoryTextLookback - if (IndicatorArea.FindAllObjects(ChartObjectType.Text).Length > 0) - IndicatorArea.RemoveAllObjects(); - //Calculate difference into index and index - HistoryTextLookback list 1 - for (int i = 0; i < TradeList1.Length; i++) - IndicatorArea.DrawText((TradeList1[i]).ToString() + index, TradeList1[i] + " : " + ResPaireWatchlist1[i][index].ToString("F2"), index + 2, double.IsNaN(ResPaireWatchlist1[i][index]) ? 0 : ResPaireWatchlist1[i][index], ResPaireWatchlist1[i][index] > ResPaireWatchlist1[i][index - HistoryTextLookback] ? Color.Lime : Color.Red); - - //Output the result like symbolList number != output number list 1 - int j = TradeList1.Length - 1; - SymbN1[index] = ResPaireWatchlist1[0 < j ? 0 : j][index]; - SymbN2[index] = ResPaireWatchlist1[1 < j ? 1 : j][index]; - SymbN3[index] = ResPaireWatchlist1[2 < j ? 2 : j][index]; - SymbN4[index] = ResPaireWatchlist1[3 < j ? 3 : j][index]; - SymbN5[index] = ResPaireWatchlist1[4 < j ? 4 : j][index]; - - //Calculate angle by symbol list 2 - for (int i = 0; i < TradeList2.Length; i++) - { - indexBars2[i] = bars2[i].OpenTimes.GetIndexByTime(Bars.OpenTimes[index]); - ResPaireWatchlist2[i][index] = GetCalculationAngle(angleIndex2[i].Result[indexBars2[i]], angleIndex2[i].Result[indexBars2[i] - LookbackAngle], atrIndex2[i].Result[indexBars2[i]]); - } - - //Calculate difference into index and index - HistoryTextLookback list 2 - for (int i = 0; i < TradeList2.Length; i++) - IndicatorArea.DrawText((TradeList2[i]).ToString() + index, TradeList2[i] + " : " + ResPaireWatchlist2[i][index].ToString("F2"), index + 2, double.IsNaN(ResPaireWatchlist2[i][index]) ? 0 : ResPaireWatchlist2[i][index], ResPaireWatchlist2[i][index] > ResPaireWatchlist2[i][index - HistoryTextLookback] ? Color.Lime : Color.Red); - - //Output the result like symbolList number != output number list 2 - int k = TradeList2.Length - 1; - SymbN6[index] = ResPaireWatchlist2[0 < k ? 0 : k][index]; - SymbN7[index] = ResPaireWatchlist2[1 < k ? 1 : k][index]; - SymbN8[index] = ResPaireWatchlist2[2 < k ? 2 : k][index]; - SymbN9[index] = ResPaireWatchlist2[3 < k ? 3 : k][index]; - SymbN10[index] = ResPaireWatchlist2[4 < k ? 4 : k][index]; - - } - - //Function for angle calculation with atr normalization - public double GetCalculationAngle(double priceSmooth, double priceSmoothLoockBack, double atr) - { - var _momentumpositive = priceSmooth - priceSmoothLoockBack; - var _momentumnegative = priceSmoothLoockBack - priceSmooth; - var _momentum = priceSmooth > priceSmoothLoockBack - ? _momentumpositive / atr - : _momentumnegative / atr; - var _hypothenuse = Math.Sqrt((_momentum * _momentum) + (LookbackAngle * LookbackAngle)); - var _cos = (LookbackAngle / _hypothenuse); - var _angle = priceSmooth > priceSmoothLoockBack - ? (0 + (Math.Acos(_cos) * 100)) - : (0 - (Math.Acos(_cos) * 100)); - return _angle; - } - } -} diff --git a/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.csproj b/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.csproj deleted file mode 100644 index 4040d8c..0000000 --- a/Sources/Indicators/Correlation with angle v1.1/Correlation with angle v1.1/Correlation with angle v1.1.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - net6.0 - - - - - - diff --git a/Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.cs b/Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.cs deleted file mode 100644 index c1cd75e..0000000 --- a/Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.cs +++ /dev/null @@ -1,182 +0,0 @@ -using System; -using System.Linq; -using System.Threading; -using cAlgo.API; -using cAlgo.API.Indicators; -using cAlgo.API.Internals; -using cAlgo.Indicators; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace cAlgo -{ - //[Cloud("Fast Smooth", "Slow Smooth", FirstColor = "Green", SecondColor = "Red", Opacity = 0.1)] - [Levels(0)] - [Indicator(IsOverlay = false, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] - public class AngleOfMultiSymbol : Indicator - { - [Parameter("Symbol Selection Method", DefaultValue = SymbolSelectionMethodType.SymbolList, Group = "Symbole Choice \n(Uncomment code for more than 6 Symbole)")] - public SymbolSelectionMethodType SymbolSelectionMethod { get; set; } - [Parameter("Symbol List", DefaultValue = "EURUSD GBPUSD AUDUSD USDCHF", Group = "Symbole Choice \n(Uncomment code for more than 6 Symbole)")] - public string TradedSymbols { get; set; } - [Parameter("Watchlist Name", DefaultValue = "My Watchlist", Group = "Symbole Choice \n(Uncomment code for more than 6 Symbole)")] - public string WatchlistName { get; set; } - - public enum SymbolSelectionMethodType - { - CurrentChart, - SymbolList, - WatchList - } - - [Parameter("History Diff Angle", DefaultValue = 1, Group = "Base Setting")] - public int HistoryTextLookback { get; set; } - [Parameter("Tf", DefaultValue = "Hour1", Group = "Base Setting")] - public TimeFrame Tf { get; set; } - [Parameter("Price Smooth Period (255)", DefaultValue = 255, Group = "Angle Setting")] - public int SmoothPeriods { get; set; } - [Parameter("Price Smooth Type", DefaultValue = MovingAverageType.Weighted, Group = "Angle Setting")] - public MovingAverageType MaType { get; set; } - [Parameter("Loockback Periods Angle", DefaultValue = 1, Group = "Angle Setting")] - public int LookbackPeriodsAngle { get; set; } - [Parameter("Sensitivity (1.0)", DefaultValue = 1, Group = "Angle Setting")] - public double Sensitivity { get; set; } - - [Output("Symb n° 1", LineColor = "White", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN1 { get; set; } - [Output("Symb n° 2", LineColor = "Lime", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN2 { get; set; } - [Output("Symb n° 3", LineColor = "Green", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN3 { get; set; } - [Output("Symb n° 4", LineColor = "DeepSkyBlue", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN4 { get; set; } - [Output("Symb n° 5", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN5 { get; set; } - [Output("Symb n° 6", LineColor = "Magenta", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN6 { get; set; } - - /*Uncomment For more Symbole on the chart - [Output("Symb n° 7", LineColor = "Green", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN7 { get; set; } - [Output("Symb n° 8", LineColor = "DeepSkyBlue", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN8 { get; set; } - [Output("Symb n° 9", LineColor = "Red", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN9 { get; set; } - [Output("Symb n° 10", LineColor = "Magenta", PlotType = PlotType.Line, LineStyle = LineStyle.Solid, Thickness = 1)] - public IndicatorDataSeries SymbN10 { get; set; } - */ - - private MovingAverage[] ma; - private AverageTrueRange[] atr; - - private Symbol[] TradeList; - private Bars[] bars; - private IndicatorDataSeries[] Sources, ResSymbol; - private int[] indexBars; - - protected override void Initialize() - { - if (SymbolSelectionMethod == SymbolSelectionMethodType.WatchList) - { - // Get the trade list from the watchlist provided by the user - foreach (Watchlist w in Watchlists) - { - if (w.Name == WatchlistName) - { - TradeList = Symbols.GetSymbols(w.SymbolNames.ToArray()); - } - } - } - else if (SymbolSelectionMethod == SymbolSelectionMethodType.SymbolList) - { - // Get the trade list from the sysmbol list provided by the user - string[] SymbolList = TradedSymbols.ToUpper().Split(' '); - - TradeList = Symbols.GetSymbols(SymbolList); - } - else - { - TradeList = new Symbol[1]; - TradeList[0] = Symbol; - } - - atr = new AverageTrueRange[TradeList.Length]; - ma = new MovingAverage[TradeList.Length]; - bars = new Bars[TradeList.Length]; - indexBars = new int[TradeList.Length]; - Sources = new IndicatorDataSeries[TradeList.Length]; - ResSymbol = new IndicatorDataSeries[TradeList.Length]; - - Print("{0} traded symbols: ", TradeList.Length); - - int i = 0; - foreach (var symbol in TradeList) - { - Print(symbol.Name); - - bars[i] = MarketData.GetBars(Tf, symbol.Name); - if (bars[i].OpenTimes[0] > Bars.OpenTimes[0]) - bars[i].LoadMoreHistory(); - //Load indicators on start up EP5-ATR - Sources[i] = CreateDataSeries(); - ResSymbol[i] = CreateDataSeries(); - atr[i] = Indicators.AverageTrueRange(bars[i], 500, MovingAverageType.Simple); - - ma[i] = Indicators.MovingAverage(Sources[i], SmoothPeriods, MaType); - i++; - } - } - - public override void Calculate(int index) - { - if (index < SmoothPeriods) - return; - - for (int i = 0; i < TradeList.Length; i++) - { - //indexBars[i] = GetIndexByDate(bars[i], Bars.OpenTimes[index]); - - indexBars[i] = bars[i].OpenTimes.GetIndexByTime(Bars.OpenTimes[index]); - Sources[i][index] = bars[i].ClosePrices[indexBars[i]]; - ResSymbol[i][index] = GetCalculationSymbol(ma[i].Result[index], ma[i].Result[index - LookbackPeriodsAngle], atr[i].Result[indexBars[i]]); - } - - SymbN1[index] = ResSymbol[0][index]; - SymbN2[index] = ResSymbol[1][index]; - SymbN3[index] = ResSymbol[2][index]; - SymbN4[index] = ResSymbol[3][index]; - SymbN5[index] = ResSymbol[4][index]; - SymbN6[index] = ResSymbol[5][index]; - - /* Uncomment For More Symbols on chart - SymbN7[index] = ResSymbol[2][index]; - SymbN8[index] = ResSymbol[3][index]; - SymbN9[index] = ResSymbol[4][index]; - SymbN10[index] = ResSymbol[5][index]; - */ - - IndicatorArea.RemoveAllObjects(); - - for (int i = 0; i < TradeList.Length; i++) - { - IndicatorArea.DrawText((TradeList[i]).ToString() + index, TradeList[i] + " : " + ResSymbol[i][index].ToString("F2"), index, ResSymbol[i][index], ResSymbol[i][index] > ResSymbol[i][index - HistoryTextLookback] ? Color.Lime : Color.Red); - } - - } - public double GetCalculationSymbol(double priceSmooth, double priceSmoothLoockBack, double atr) - { - var _momentumpositive = priceSmooth - priceSmoothLoockBack; - var _momentumnegative = priceSmoothLoockBack - priceSmooth; - var _momentum = priceSmooth > priceSmoothLoockBack - ? _momentumpositive / atr - : _momentumnegative / atr; - var _hypothenuse = Math.Sqrt((_momentum * _momentum) + (LookbackPeriodsAngle * LookbackPeriodsAngle)); - var _cos = (LookbackPeriodsAngle / _hypothenuse); - var _angle = priceSmooth > priceSmoothLoockBack - ? (0 + (Math.Acos(_cos) * 100)) * Sensitivity - : (0 - (Math.Acos(_cos) * 100)) * Sensitivity; - return _angle; - } - } -} diff --git a/Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.csproj b/Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.csproj deleted file mode 100644 index 4040d8c..0000000 --- a/Sources/Indicators/Correlation with angle v1.1/msAngle of MultiSymbol.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - net6.0 - - - - - - diff --git a/Sources/Indicators/Economic Events On Chart.algo b/Sources/Indicators/Economic Events On Chart.algo deleted file mode 100644 index bd94e709bd6a7b6b26d6c590b20ea2cd174881ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303336 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

8tb978Mvob$v9_#UnR2+-(JB?j5l+I0iP)mPO6 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

{hXJ-56)bOL z{|PM*F%MSo`|#wcumqa9+-Ub+NAn}%*Y3&{I%GJ9iD8`zqO8*|0?3gAbez|ch;R=* z7jv5^BkKfR(XAiV;+l0;l6R?%sQ+t}%>VM62?w0#=zv#%M>h+bMf1zesx(=+Uea9x z?!hl7P2bBVW$jP5Le^rAnZ-vEF);-slZp|LycmBwUQO&w&&{3%b$y;&tW0aHqj;Z{|N{^AZaZVFvzICEhY$1q$86vvjQWn5$ zr9p!b&UA1%O-FfM&cY*W@RvzG$M@p#_eD_kBW#0k2zQv|2~p#ei*{(O9DmYzUM0rg+D5miVFBPl1{o&93)>Nr%Vf_n zM=ftQ6_tn1QNndli|gfre7@3&d5qi(Db%D90z|@dONaZ*q!ReLJGhA&&Aj`*7{_I) z6?NIS{w=t63KNxvVpzA+iKb}a){7C31z1ai5Hc8&U*9=9=`hK!?T-~!bs2n;D}>>iZD$sImkzFcB23Oe>7rHM{G?3~- z{Ovoki*I&Vq(a1+#}3dSd>{8{6x>Ar14zpD??(iu3WYE^@I+P3RrB;Gd49FIt$

  • 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 diff --git a/Sources/Indicators/Economic Events On Chart/.gitattributes b/Sources/Indicators/Economic Events On Chart/.gitattributes deleted file mode 100644 index 1ff0c42..0000000 --- a/Sources/Indicators/Economic Events On Chart/.gitattributes +++ /dev/null @@ -1,63 +0,0 @@ -############################################################################### -# Set default behavior to automatically normalize line endings. -############################################################################### -* text=auto - -############################################################################### -# Set default behavior for command prompt diff. -# -# This is need for earlier builds of msysgit that does not have it on by -# default for csharp files. -# Note: This is only used by command line -############################################################################### -#*.cs diff=csharp - -############################################################################### -# Set the merge driver for project and solution files -# -# Merging from the command prompt will add diff markers to the files if there -# are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following -# file extensions to fail to load in VS. An alternative would be to treat -# these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just uncomment the entries below -############################################################################### -#*.sln merge=binary -#*.csproj merge=binary -#*.vbproj merge=binary -#*.vcxproj merge=binary -#*.vcproj merge=binary -#*.dbproj merge=binary -#*.fsproj merge=binary -#*.lsproj merge=binary -#*.wixproj merge=binary -#*.modelproj merge=binary -#*.sqlproj merge=binary -#*.wwaproj merge=binary - -############################################################################### -# behavior for image files -# -# image files are treated as binary by default. -############################################################################### -#*.jpg binary -#*.png binary -#*.gif binary - -############################################################################### -# diff behavior for common document formats -# -# Convert binary document formats to text before diffing them. This feature -# is only available from the command line. Turn it on by uncommenting the -# entries below. -############################################################################### -#*.doc diff=astextplain -#*.DOC diff=astextplain -#*.docx diff=astextplain -#*.DOCX diff=astextplain -#*.dot diff=astextplain -#*.DOT diff=astextplain -#*.pdf diff=astextplain -#*.PDF diff=astextplain -#*.rtf diff=astextplain -#*.RTF diff=astextplain diff --git a/Sources/Indicators/Economic Events On Chart/.gitignore b/Sources/Indicators/Economic Events On Chart/.gitignore deleted file mode 100644 index 9491a2f..0000000 --- a/Sources/Indicators/Economic Events On Chart/.gitignore +++ /dev/null @@ -1,363 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Oo]ut/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file diff --git a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart.sln b/Sources/Indicators/Economic Events On Chart/Economic Events On Chart.sln deleted file mode 100644 index d5b245c..0000000 --- a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Economic Events On Chart", "Economic Events On Chart\Economic Events On Chart.csproj", "{7D9A4560-D021-4B46-8D58-83DCBEBBE654}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7D9A4560-D021-4B46-8D58-83DCBEBBE654}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D9A4560-D021-4B46-8D58-83DCBEBBE654}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D9A4560-D021-4B46-8D58-83DCBEBBE654}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D9A4560-D021-4B46-8D58-83DCBEBBE654}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.cs b/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.cs deleted file mode 100644 index b831773..0000000 --- a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.cs +++ /dev/null @@ -1,345 +0,0 @@ -using System; -using cAlgo.API; -using System.Collections.Generic; -using System.Xml; -using System.Net; -using System.Xml.Serialization; -using System.IO; -using System.Text; -using System.Linq; -using System.Globalization; - -namespace cAlgo -{ - [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.Internet)] - public class EconomicEventsOnChart : Indicator - { - private Color _colorHighImpact, _colorMediumImpact, _colorLowImpact, _colorOthers; - - private TextBlock _textBlock; - - [Parameter("Data URI", DefaultValue = "https://nfs.faireconomy.media/ff_calendar_thisweek.xml", Group = "General")] - public string DataUri { get; set; } - - [Parameter("Only Symbol Events", DefaultValue = true, Group = "General")] - public bool OnlySymbolEvents { get; set; } - - [Parameter("Show Past Events", DefaultValue = true, Group = "General")] - public bool ShowPastEvents { get; set; } - - [Parameter("Show", DefaultValue = true, Group = "High Impact")] - public bool ShowHighImpact { get; set; } - - [Parameter("Color", DefaultValue = "Red", Group = "High Impact")] - public string ColorHighImpact { get; set; } - - [Parameter("Style", DefaultValue = LineStyle.Solid, Group = "High Impact")] - public LineStyle LineStyleHighImpact { get; set; } - - [Parameter("Thickness", DefaultValue = 1, Group = "High Impact")] - public int ThicknessHighImpact { get; set; } - - [Parameter("Show", DefaultValue = true, Group = "Medium Impact")] - public bool ShowMediumImpact { get; set; } - - [Parameter("Color", DefaultValue = "Gold", Group = "Medium Impact")] - public string ColorMediumImpact { get; set; } - - [Parameter("Style", DefaultValue = LineStyle.Solid, Group = "Medium Impact")] - public LineStyle LineStyleMediumImpact { get; set; } - - [Parameter("Thickness", DefaultValue = 1, Group = "Medium Impact")] - public int ThicknessMediumImpact { get; set; } - - [Parameter("Show", DefaultValue = true, Group = "Low Impact")] - public bool ShowLowImpact { get; set; } - - [Parameter("Color", DefaultValue = "Yellow", Group = "Low Impact")] - public string ColorLowImpact { get; set; } - - [Parameter("Style", DefaultValue = LineStyle.Solid, Group = "Low Impact")] - public LineStyle LineStyleLowImpact { get; set; } - - [Parameter("Thickness", DefaultValue = 1, Group = "Low Impact")] - public int ThicknessLowImpact { get; set; } - - [Parameter("Show", DefaultValue = false, Group = "Others")] - public bool ShowOthers { get; set; } - - [Parameter("Color", DefaultValue = "Gray", Group = "Others")] - public string ColorOthers { get; set; } - - [Parameter("Style", DefaultValue = LineStyle.Solid, Group = "Others")] - public LineStyle LineStyleOthers { get; set; } - - [Parameter("Thickness", DefaultValue = 1, Group = "Others")] - public int ThicknessOthers { get; set; } - - [Parameter("Show", DefaultValue = true, Group = "Text Block")] - public bool ShowTextBlock { get; set; } - - [Parameter("Background Color", DefaultValue = "#969696", Group = "Text Block")] - public string TextBlockBackgroundColor { get; set; } - - [Parameter("Color", DefaultValue = "White", Group = "Text Block")] - public string TextBlockColor { get; set; } - - [Parameter("Horizontal Alignment", DefaultValue = HorizontalAlignment.Center, Group = "Text Block")] - public HorizontalAlignment TextBlockHorizontalAlignment { get; set; } - - [Parameter("Vertical Alignment", DefaultValue = VerticalAlignment.Bottom, Group = "Text Block")] - public VerticalAlignment TextBlockVerticalAlignment { get; set; } - - [Parameter("Text Alignment", DefaultValue = TextAlignment.Center, Group = "Text Block")] - public TextAlignment TextBlockTextAlignment { get; set; } - - [Parameter("Font Weight", DefaultValue = FontWeight.Bold, Group = "Text Block")] - public FontWeight TextBlockFontWeight { get; set; } - - protected override void Initialize() - { - RemoveEventLines(); - - if (ShowTextBlock) - { - _textBlock = new TextBlock - { - IsVisible = false, - HorizontalAlignment = TextBlockHorizontalAlignment, - VerticalAlignment = TextBlockVerticalAlignment, - BackgroundColor = GetColor(TextBlockBackgroundColor), - ForegroundColor = GetColor(TextBlockColor), - TextAlignment = TextBlockTextAlignment, - FontWeight = TextBlockFontWeight, - Padding = 5 - }; - - Chart.AddControl(_textBlock); - - Chart.ObjectHoverChanged += Chart_ObjectHoverChanged; - } - - _colorHighImpact = GetColor(ColorHighImpact); - _colorMediumImpact = GetColor(ColorMediumImpact); - _colorLowImpact = GetColor(ColorLowImpact); - _colorOthers = GetColor(ColorOthers); - - var events = GetNewsEvents(); - - DisplayEvents(events); - } - - private void Chart_ObjectHoverChanged(ChartObjectHoverChangedEventArgs obj) - { - if (!obj.IsObjectHovered || obj.ChartObject == null || string.IsNullOrWhiteSpace(obj.ChartObject.Name) || !obj.ChartObject.Name.EndsWith("Event", StringComparison.OrdinalIgnoreCase)) - { - _textBlock.IsVisible = false; - - return; - } - - _textBlock.Text = string.Format("{0} | {1}", obj.ChartObject.Name.Replace(" | Event", string.Empty), obj.ChartObject.Comment); - - _textBlock.IsVisible = true; - } - - public override void Calculate(int index) - { - } - - private IEnumerable GetNewsEvents() - { - using (var webClient = new WebClient()) - { - var data = webClient.DownloadString(DataUri); - - return GetNewsEventsFromXml(data); - } - } - - private IEnumerable GetNewsEventsFromXml(string xml) - { - var xmlSerializer = new XmlSerializer(typeof(WeeklyEvents)); - - var stream = new StringReader(xml); - - var weeklyEvents = xmlSerializer.Deserialize(stream) as WeeklyEvents; - - foreach (var newsEvent in weeklyEvents.Events) - { - var timeString = string.Format("{0} {1}", newsEvent.UtcDate, newsEvent.UtcTime); - - DateTimeOffset time; - - if (DateTimeOffset.TryParseExact(timeString, "MM-dd-yyyy h:mmtt", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out time)) - { - newsEvent.Time = time; - } - } - - return weeklyEvents.Events; - } - - private void DisplayEvents(IEnumerable events) - { - foreach (var newsEvent in events) - { - if (!newsEvent.Time.HasValue - || (newsEvent.Impact == NewsEventImpact.High && !ShowHighImpact) - || (newsEvent.Impact == NewsEventImpact.Medium && !ShowMediumImpact) - || (newsEvent.Impact == NewsEventImpact.Low && !ShowLowImpact) - || ((newsEvent.Impact == NewsEventImpact.None || newsEvent.Impact == NewsEventImpact.Holiday) && !ShowOthers) - || (OnlySymbolEvents && !IsEventRelatedToSymbol(newsEvent.Currency)) - || (!ShowPastEvents && newsEvent.Time < Server.TimeInUtc)) continue; - - var lineSettings = GetLineSettings(newsEvent.Impact); - - var eventLine = Chart.DrawVerticalLine(string.Format("{0} | {1} | {2} | Event", newsEvent.Title, newsEvent.Currency, newsEvent.Impact), newsEvent.Time.Value.UtcDateTime, lineSettings.Color, lineSettings.Thickness, lineSettings.Style); - - var stringBuilder = new StringBuilder(); - - if (!string.IsNullOrWhiteSpace(newsEvent.Forecast)) - { - stringBuilder.Append(string.Format("Forecast: {0} | ", newsEvent.Forecast)); - } - - if (!string.IsNullOrWhiteSpace(newsEvent.Previous)) - { - stringBuilder.Append(string.Format("Previous: {0} | ", newsEvent.Previous)); - } - - if (newsEvent.Time.HasValue) - { - var time = newsEvent.Time.Value.ToOffset(Application.UserTimeOffset); - - stringBuilder.Append(string.Format("Time: {0:s}", time)); - } - - eventLine.Comment = stringBuilder.ToString(); - eventLine.IsInteractive = true; - eventLine.IsLocked = true; - } - } - - private bool IsEventRelatedToSymbol(string eventCurrency) - { - return SymbolName.StartsWith(eventCurrency, StringComparison.OrdinalIgnoreCase) || SymbolName.EndsWith(eventCurrency, StringComparison.OrdinalIgnoreCase); - } - - private Color GetColor(string colorString, int alpha = 255) - { - var color = colorString[0] == '#' ? Color.FromHex(colorString) : Color.FromName(colorString); - - return Color.FromArgb(alpha, color); - } - - private LineSettings GetLineSettings(NewsEventImpact impact) - { - switch (impact) - { - case NewsEventImpact.High: - return new LineSettings - { - Color = _colorHighImpact, - Style = LineStyleHighImpact, - Thickness = ThicknessHighImpact - }; - - case NewsEventImpact.Medium: - return new LineSettings - { - Color = _colorMediumImpact, - Style = LineStyleMediumImpact, - Thickness = ThicknessMediumImpact - }; - - case NewsEventImpact.Low: - return new LineSettings - { - Color = _colorLowImpact, - Style = LineStyleLowImpact, - Thickness = ThicknessLowImpact - }; - - default: - return new LineSettings - { - Color = _colorOthers, - Style = LineStyleOthers, - Thickness = ThicknessOthers - }; - } - } - - private void RemoveEventLines() - { - var chartObjects = Chart.Objects.ToArray(); - - foreach (var chartObject in chartObjects) - { - if (chartObject.ObjectType != ChartObjectType.VerticalLine || !chartObject.IsInteractive || string.IsNullOrEmpty(chartObject.Name) || !chartObject.Name.EndsWith("Event", StringComparison.OrdinalIgnoreCase)) - { - continue; - } - - Chart.RemoveObject(chartObject.Name); - } - } - } - - [XmlRoot("weeklyevents")] - public class WeeklyEvents - { - [XmlElement("event")] - public List Events { get; set; } - } - - public class NewsEvent - { - [XmlElement("title")] - public string Title { get; set; } - - [XmlElement("country")] - public string Currency { get; set; } - - [XmlElement("date")] - public string UtcDate { get; set; } - - [XmlElement("time")] - public string UtcTime { get; set; } - - [XmlIgnore] - public DateTimeOffset? Time { get; set; } - - [XmlElement("impact")] - public NewsEventImpact Impact { get; set; } - - [XmlElement("previous")] - public string Previous { get; set; } - - [XmlElement("forecast")] - public string Forecast { get; set; } - } - - public enum NewsEventImpact - { - None, - - High, - - Medium, - - Low, - - Holiday - } - - public struct LineSettings - { - public Color Color { get; set; } - - public LineStyle Style { get; set; } - - public int Thickness { get; set; } - } -} \ No newline at end of file diff --git a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.csproj b/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.csproj deleted file mode 100644 index b2d03cf..0000000 --- a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Economic Events On Chart.csproj +++ /dev/null @@ -1,60 +0,0 @@ - - - - - 7.2 - Debug - AnyCPU - {7D9A4560-D021-4B46-8D58-83DCBEBBE654} - {DD87C1B2-3799-4CA2-93B6-5288EE928820};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties - cAlgo - Economic Events On Chart - v4.0 - Client - 512 - True - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - False - ..\..\..\..\API\cAlgo.API.dll - - - - - - - - - \ No newline at end of file diff --git a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Properties/AssemblyInfo.cs b/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Properties/AssemblyInfo.cs deleted file mode 100644 index 5334d9f..0000000 --- a/Sources/Indicators/Economic Events On Chart/Economic Events On Chart/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Diagnostics; -using System.Reflection; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("Economic Events On Chart")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyProduct("Economic Events On Chart")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: Guid("35f19c43-c7cc-4f53-b8e0-61caaf9cd8e8")] - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -#if DEBUG - [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations)] -#endif \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterDisplay.algo b/Sources/Indicators/HmaClusterDisplay.algo index 17e0f4958fb56a0c81517707954a7772277d22a7..a6155d4d989b354226a6fecdc2a64bc01b4e8489 100644 GIT binary patch literal 12225 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 PI^|YKtFmC@TT}B8VY#Y- literal 4032 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 mIkU~Zx+T!bo net6.0 - - + + + ..\..\..\Common\MSLib\obj\Debug\net6.0\MSLib.dll + + + \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterSR.algo b/Sources/Indicators/HmaClusterSR.algo index 329c2c45555dc6769b8c782abecad67472f2f5b3..d1d1a03d0b5bc1a854fb70396d0548acf75644e9 100644 GIT binary patch literal 14804 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 _strategies = new List(); - private static readonly HttpClient _httpClient = new HttpClient(); - - protected override void OnStart() - { - try - { - if (string.IsNullOrWhiteSpace(SymbolsCsv)) - { - Print("CSV is empty. Running in Single-Symbol Mode on Chart Symbol."); - - var config = new StrategyConfig - { - SymbolName = SymbolName, - EntrySigThreshold = EntrySigThreshold, - SlSigThreshold = SlSigThreshold, - SmaBiasPeriod = SmaBiasPeriod, - HmaBiasPeriod = HmaBiasPeriod, - HmaClusterPeriod = HmaClusterPeriod, - UseBiasDeviationFilter = UseBiasDeviationFilter, - BiasDeviationAvgPeriod = BiasDeviationAvgPeriod, - UseDynamicPositionManagement = UseDynamicPositionManagement, - CloseProfitOnBiasFlip = CloseProfitOnBiasFlip, - SendTelegramOnly = SendTelegramOnly, - RiskPercent = RiskPercent, - MaxPoints = MaxPoints, - DecayPeriod = DecayPeriod - }; - - var strategy = new ClusterStrategy(this, Symbol, Bars, config, _httpClient, TelegramBotToken, TelegramChatId, BroadcastError); - _strategies.Add(strategy); - strategy.Start(); - } - else - { - Print("CSV detected. Running in Multi-Symbol Mode."); - ParseCsvAndCreateStrategies(); - } - } - catch (Exception ex) - { - BroadcastError($"CRITICAL STARTUP ERROR: {ex.Message}"); - Stop(); - } - } - - protected override void OnStop() - { - foreach (var strategy in _strategies) - { - strategy.Stop(); - } - } - - protected override void OnError(Error error) - { - BroadcastError($"TRADING ERROR [{error.Code}]: {error.ToString}"); - } - - public void BroadcastError(string message) - { - Print(message); - - if (!string.IsNullOrWhiteSpace(TelegramBotToken) && !string.IsNullOrWhiteSpace(TelegramChatId)) - { - string formattedMsg = $"⚠️ ERROR @ {DateTime.UtcNow:HH:mm:ss} UTC\n\n{message}"; - _ = SendTelegramRawAsync(TelegramBotToken, TelegramChatId, formattedMsg); - } - } - - private async Task SendTelegramRawAsync(string token, string chatId, string message) - { - try - { - string url = $"https://api.telegram.org/bot{token}/sendMessage?chat_id={chatId}&text={Uri.EscapeDataString(message)}&parse_mode=HTML"; - await _httpClient.GetAsync(url); - } - catch (Exception ex) - { - Print("FAILED TO SEND TELEGRAM ERROR: " + ex.Message); - } - } - - private void ParseCsvAndCreateStrategies() - { - var normalizedCsv = SymbolsCsv.Replace("\n", ",").Replace("\r", ","); - - var tokens = normalizedCsv.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) - .Select(t => t.Trim()) - .Where(t => !string.IsNullOrEmpty(t)) - .ToArray(); - - int paramsPerSymbol = 10; - - if (tokens.Length % paramsPerSymbol != 0) - { - string err = $"CSV Token count ({tokens.Length}) is not a multiple of {paramsPerSymbol}. Check format."; - BroadcastError(err); - } - - for (int i = 0; i < tokens.Length; i += paramsPerSymbol) - { - if (i + paramsPerSymbol > tokens.Length) break; - - string symName = tokens[i]; - - try - { - Symbol symbol = Symbols.GetSymbol(symName); - if (symbol == null) - { - BroadcastError($"Symbol '{symName}' not found in cTrader."); - continue; - } - - Bars bars = MarketData.GetBars(TimeFrame, symName); - - var config = new StrategyConfig - { - SymbolName = symName, - EntrySigThreshold = double.Parse(tokens[i + 1], CultureInfo.InvariantCulture), - SlSigThreshold = double.Parse(tokens[i + 2], CultureInfo.InvariantCulture), - SmaBiasPeriod = int.Parse(tokens[i + 3], CultureInfo.InvariantCulture), - HmaBiasPeriod = int.Parse(tokens[i + 4], CultureInfo.InvariantCulture), - HmaClusterPeriod = int.Parse(tokens[i + 5], CultureInfo.InvariantCulture), - UseBiasDeviationFilter = bool.Parse(tokens[i + 6]), - BiasDeviationAvgPeriod = int.Parse(tokens[i + 7], CultureInfo.InvariantCulture), - UseDynamicPositionManagement = bool.Parse(tokens[i + 8]), - SendTelegramOnly = bool.Parse(tokens[i + 9]), - - // Default values for parameters not in CSV yet - CloseProfitOnBiasFlip = CloseProfitOnBiasFlip, - RiskPercent = RiskPercent, - MaxPoints = MaxPoints, - DecayPeriod = DecayPeriod - }; - - var strategy = new ClusterStrategy(this, symbol, bars, config, _httpClient, TelegramBotToken, TelegramChatId, BroadcastError); - _strategies.Add(strategy); - strategy.Start(); - - Print("Initialized Strategy for {0}", symName); - } - catch (Exception ex) - { - BroadcastError($"Config Error for '{symName}': {ex.Message}"); - } - } - } - } - - public class StrategyConfig - { - public string SymbolName { get; set; } - public double EntrySigThreshold { get; set; } - public double SlSigThreshold { get; set; } - public int SmaBiasPeriod { get; set; } - public int HmaBiasPeriod { get; set; } - public int HmaClusterPeriod { get; set; } - public bool UseBiasDeviationFilter { get; set; } - public int BiasDeviationAvgPeriod { get; set; } - public bool UseDynamicPositionManagement { get; set; } - public bool CloseProfitOnBiasFlip { get; set; } - public bool SendTelegramOnly { get; set; } - public double RiskPercent { get; set; } - public int MaxPoints { get; set; } - public int DecayPeriod { get; set; } - } - - public class ClusterStrategy - { - #region Types & Fields - - private enum PointType { Peak, Trough } - private enum Bias { Long, Short, Neutral } - - private struct ExtremumPoint - { - public double Price; - public int Index; - public PointType Type; - } - - public struct ClusterLevel - { - public double Price; - public double Significance; - } - - private readonly Robot _robot; - private readonly Symbol _symbol; - private readonly Bars _bars; - private readonly StrategyConfig _config; - private readonly HttpClient _httpClient; - private readonly string _botToken; - private readonly string _chatId; - private readonly Action _errorCallback; - - private SimpleMovingAverage _smaBias; - private HullMovingAverage _hmaBias; - private HullMovingAverage _hmaCluster; - - private readonly Queue _deviationQueue = new Queue(); - private double _runningDeviationSum; + #region Fields + private HullMovingAverage _hma; - private bool _deviationConditionMetInCurrentCycle; - private bool _isTradingAllowedBasedOnPrevCycle; + // Neue optimierte Engine + private ClusterCalculator _calculator; - private readonly List _extremaPoints = new(); + // Lokaler State für Trend private readonly List _amplitudes = new(); - private double _trendExtremum; private int _trendExtremumIndex; private double _lastExtremumPrice; private bool? _isUpTrend; private double _currentDynamicRange; - - private const string Label = "HmaClusterBot"; - #endregion - public ClusterStrategy( - Robot robot, - Symbol symbol, - Bars bars, - StrategyConfig config, - HttpClient httpClient, - string token, - string chatId, - Action errorCallback) + protected override void Initialize() { - _robot = robot; - _symbol = symbol; - _bars = bars; - _config = config; - _httpClient = httpClient; - _botToken = token; - _chatId = chatId; - _errorCallback = errorCallback; - } - - public void Start() - { - int requiredBars = Math.Max(_config.SmaBiasPeriod, _config.HmaBiasPeriod); - requiredBars = Math.Max(requiredBars, _config.BiasDeviationAvgPeriod) + 10; - - while (_bars.Count < requiredBars) - { - int loaded = _bars.LoadMoreHistory(); - if (loaded == 0) - { - _errorCallback?.Invoke($"Not enough history for {_config.SymbolName}. Loaded: {_bars.Count}, Req: {requiredBars}"); - return; - } - } - - _smaBias = _robot.Indicators.SimpleMovingAverage(_bars.ClosePrices, _config.SmaBiasPeriod); - _hmaBias = _robot.Indicators.HullMovingAverage(_bars.ClosePrices, _config.HmaBiasPeriod); - _hmaCluster = _robot.Indicators.HullMovingAverage(_bars.ClosePrices, _config.HmaClusterPeriod); - - _currentDynamicRange = 5.0 * _symbol.PipSize; - _deviationConditionMetInCurrentCycle = false; - _isTradingAllowedBasedOnPrevCycle = false; - - int startIndex = Math.Max(_config.SmaBiasPeriod, _config.HmaBiasPeriod); - startIndex = Math.Max(startIndex, _config.BiasDeviationAvgPeriod); + Print("Initializing HmaClusterSR with Optimized Engine. Symbol: {0}", Symbol.Name); - for (int i = startIndex; i < _bars.Count; i++) - { - UpdateFilterState(i); - UpdateClusterData(i); - } - - _bars.BarOpened += OnBarOpened; - } - - public void Stop() - { - _bars.BarOpened -= OnBarOpened; - } - - private void OnBarOpened(BarOpenedEventArgs obj) - { - try - { - int index = _bars.Count - 2; - if (index < _config.BiasDeviationAvgPeriod) return; - - UpdateFilterState(index); - UpdateClusterData(index); - - var clusters = CalculateClusters(index); - - // 1. Dynamic SL/TP Management - if (!_config.SendTelegramOnly && _config.UseDynamicPositionManagement && clusters.Count >= 2) - { - ManagePositions(clusters); - } - - var currentBias = GetCurrentBias(index); - - // 2. Check for Profit Close on Bias Flip - if (!_config.SendTelegramOnly && _config.CloseProfitOnBiasFlip) - { - CloseReversedPositions(currentBias); - } - - // 3. New Entry Logic - ManageOrders(currentBias, index, clusters); - } - catch (Exception ex) - { - _errorCallback?.Invoke($"Runtime Error ({_config.SymbolName}): {ex.Message}\n{ex.StackTrace}"); - } - } - - private void CloseReversedPositions(Bias currentBias) - { - if (currentBias == Bias.Neutral) return; - - foreach (var pos in _robot.Positions) - { - if (pos.SymbolName != _config.SymbolName || pos.Label != Label) continue; - if (pos.NetProfit <= 0) continue; - - bool close = false; - - if (currentBias == Bias.Short && pos.TradeType == TradeType.Buy) - close = true; - else if (currentBias == Bias.Long && pos.TradeType == TradeType.Sell) - close = true; - - if (close) - { - var result = _robot.ClosePosition(pos); - if (result.IsSuccessful) - { - string msg = $"🔒 CLOSE PROFIT (Bias Flip) @ {_config.SymbolName}\n" + - $"Profit: {pos.NetProfit:F2}"; - _ = SendTelegramMessageAsync(msg); - } - } - } - } - - private void UpdateFilterState(int index) - { - double currHma = _hmaBias.Result[index]; - double currSma = _smaBias.Result[index]; - double prevHma = _hmaBias.Result[index - 1]; - double prevSma = _smaBias.Result[index - 1]; - - double currentBiasDeviation = Math.Abs(currHma - currSma); + _hma = Indicators.HullMovingAverage(Bars.ClosePrices, HmaPeriod); - _deviationQueue.Enqueue(currentBiasDeviation); - _runningDeviationSum += currentBiasDeviation; - - if (_deviationQueue.Count > _config.BiasDeviationAvgPeriod) - { - double removed = _deviationQueue.Dequeue(); - _runningDeviationSum -= removed; - } - - double averageDeviation = (_deviationQueue.Count > 0) - ? _runningDeviationSum / _deviationQueue.Count - : 0.0; - - bool currHmaAbove = currHma > currSma; - bool prevHmaAbove = prevHma > prevSma; - - if (currHmaAbove != prevHmaAbove) - { - _isTradingAllowedBasedOnPrevCycle = _deviationConditionMetInCurrentCycle; - _deviationConditionMetInCurrentCycle = false; - } - - if (currentBiasDeviation > averageDeviation) - { - _deviationConditionMetInCurrentCycle = true; - } - } - - private Bias GetCurrentBias(int index) - { - double hma = _hmaBias.Result[index]; - double sma = _smaBias.Result[index]; - double prevSma = _smaBias.Result[index - 1]; - - if ((hma > sma) && (sma > prevSma)) return Bias.Long; - if ((hma < sma) && (sma < prevSma)) return Bias.Short; - - return Bias.Neutral; - } - - private void ManagePositions(List clusters) - { - double pNow = _symbol.Bid; - - foreach (var pos in _robot.Positions) - { - if (pos.Label != Label || pos.SymbolName != _config.SymbolName) continue; - - ClusterLevel? newSl = null; - ClusterLevel? newTp = null; - - if (pos.TradeType == TradeType.Buy) - { - double highestSlPrice = double.MinValue; - double highestTpPrice = double.MinValue; - - foreach (var c in clusters) - { - if (c.Price < pNow && c.Significance < _config.SlSigThreshold && c.Price > highestSlPrice) - { - newSl = c; - highestSlPrice = c.Price; - } - if (c.Price > pNow && c.Significance >= _config.EntrySigThreshold && c.Price > highestTpPrice) - { - newTp = c; - highestTpPrice = c.Price; - } - } - - double proposedSl = (newSl.HasValue) ? newSl.Value.Price : (pos.StopLoss ?? 0); - double proposedTp = (newTp.HasValue) ? newTp.Value.Price : (pos.TakeProfit ?? 0); - - bool modifySl = pos.StopLoss.HasValue && (proposedSl > pos.StopLoss.Value + _symbol.TickSize); - if (!pos.StopLoss.HasValue && newSl.HasValue) modifySl = true; - - bool modifyTp = newTp.HasValue && Math.Abs(proposedTp - (pos.TakeProfit ?? 0)) > _symbol.TickSize; - - if (modifySl || modifyTp) - { - double finalSl = modifySl ? proposedSl : pos.StopLoss ?? 0; - double finalTp = modifyTp ? proposedTp : pos.TakeProfit ?? 0; - - if (finalSl < _symbol.Bid && (finalTp == 0 || finalTp > _symbol.Bid)) - { - _robot.ModifyPosition(pos, finalSl, finalTp, ProtectionType.Absolute); - } - } - } - else // Sell - { - double lowestSlPrice = double.MaxValue; - double lowestTpPrice = double.MaxValue; - - foreach (var c in clusters) - { - if (c.Price > pNow && c.Significance < _config.SlSigThreshold && c.Price < lowestSlPrice) - { - newSl = c; - lowestSlPrice = c.Price; - } - if (c.Price < pNow && c.Significance >= _config.EntrySigThreshold && c.Price < lowestTpPrice) - { - newTp = c; - lowestTpPrice = c.Price; - } - } - - double proposedSl = (newSl.HasValue) ? newSl.Value.Price : (pos.StopLoss ?? 0); - double proposedTp = (newTp.HasValue) ? newTp.Value.Price : (pos.TakeProfit ?? 0); - - bool modifySl = pos.StopLoss.HasValue && (proposedSl < pos.StopLoss.Value - _symbol.TickSize); - if (!pos.StopLoss.HasValue && newSl.HasValue) modifySl = true; - - bool modifyTp = newTp.HasValue && Math.Abs(proposedTp - (pos.TakeProfit ?? 0)) > _symbol.TickSize; - - if (modifySl || modifyTp) - { - double finalSl = modifySl ? proposedSl : pos.StopLoss ?? 0; - double finalTp = modifyTp ? proposedTp : pos.TakeProfit ?? 0; - - if (finalSl > _symbol.Ask && (finalTp == 0 || finalTp < _symbol.Ask)) - { - _robot.ModifyPosition(pos, finalSl, finalTp, ProtectionType.Absolute); - } - } - } - } - } - - private void ManageOrders(Bias bias, int index, List clusters) - { - CleanupOrders(bias); - - if (_config.UseBiasDeviationFilter && !_isTradingAllowedBasedOnPrevCycle) - return; - - if (bias == Bias.Neutral) return; - - if (!_config.SendTelegramOnly) - { - bool hasLong = _robot.Positions.Any(p => p.SymbolName == _config.SymbolName && p.Label == Label && p.TradeType == TradeType.Buy); - bool hasShort = _robot.Positions.Any(p => p.SymbolName == _config.SymbolName && p.Label == Label && p.TradeType == TradeType.Sell); - - if ((bias == Bias.Long && hasLong) || (bias == Bias.Short && hasShort)) - return; - } - - if (clusters.Count < 2) return; - - double pNow = _bars.ClosePrices[index]; - - if (bias == Bias.Short) - ProcessShortSetup(clusters, pNow); - else if (bias == Bias.Long) - ProcessLongSetup(clusters, pNow); - } - - private void CleanupOrders(Bias currentBias) - { - if (_config.SendTelegramOnly) return; - - foreach (var order in _robot.PendingOrders) - { - if (order.Label != Label || order.SymbolName != _config.SymbolName) continue; - - if (currentBias == Bias.Long && order.TradeType == TradeType.Sell) - _robot.CancelPendingOrder(order); - else if (currentBias == Bias.Short && order.TradeType == TradeType.Buy) - _robot.CancelPendingOrder(order); - else if (currentBias == Bias.Neutral) - _robot.CancelPendingOrder(order); - } - } - - private void ProcessShortSetup(List clusters, double pNow) - { - ClusterLevel? entry = null; - ClusterLevel? sl = null; - ClusterLevel? tp = null; - - double highestEntryPrice = double.MinValue; - double lowestSlPrice = double.MaxValue; - double lowestTpPrice = double.MaxValue; - - foreach (var c in clusters) - { - if (c.Price > pNow) - { - if ((c.Significance >= _config.EntrySigThreshold) && (c.Price > highestEntryPrice)) - { - entry = c; - highestEntryPrice = c.Price; - } - if ((c.Significance < _config.SlSigThreshold) && (c.Price < lowestSlPrice)) - { - sl = c; - lowestSlPrice = c.Price; - } - } - } - - if (entry == null || sl == null) return; - - foreach (var c in clusters) - { - if ((c.Price < entry.Value.Price) && (c.Significance >= _config.EntrySigThreshold)) - { - if (c.Price < lowestTpPrice) - { - tp = c; - lowestTpPrice = c.Price; - } - } - } - - if (tp != null && (sl.Value.Price > entry.Value.Price)) - { - double risk = sl.Value.Price - entry.Value.Price; - double reward = entry.Value.Price - tp.Value.Price; - - if (risk <= reward) - UpdateOrPlaceLimitOrder(TradeType.Sell, entry.Value.Price, sl.Value.Price, tp.Value.Price); - } - } - - private void ProcessLongSetup(List clusters, double pNow) - { - ClusterLevel? entry = null; - ClusterLevel? sl = null; - ClusterLevel? tp = null; - - double lowestEntryPrice = double.MaxValue; - double highestSlPrice = double.MinValue; - double highestTpPrice = double.MinValue; - - foreach (var c in clusters) - { - if (c.Price < pNow) - { - if ((c.Significance >= _config.EntrySigThreshold) && (c.Price < lowestEntryPrice)) - { - entry = c; - lowestEntryPrice = c.Price; - } - if ((c.Significance < _config.SlSigThreshold) && (c.Price > highestSlPrice)) - { - sl = c; - highestSlPrice = c.Price; - } - } - } - - if (entry == null || sl == null) return; - - foreach (var c in clusters) - { - if ((c.Price > entry.Value.Price) && (c.Significance >= _config.EntrySigThreshold)) - { - if (c.Price > highestTpPrice) - { - tp = c; - highestTpPrice = c.Price; - } - } - } - - if (tp != null && (sl.Value.Price < entry.Value.Price)) - { - double risk = entry.Value.Price - sl.Value.Price; - double reward = tp.Value.Price - entry.Value.Price; - - if (risk <= reward) - UpdateOrPlaceLimitOrder(TradeType.Buy, entry.Value.Price, sl.Value.Price, tp.Value.Price); - } - } - - private void UpdateOrPlaceLimitOrder(TradeType type, double entry, double sl, double tp) - { - double slDistPips = Math.Abs(entry - sl) / _symbol.PipSize; - if (slDistPips <= 0) return; - - double riskAmount = _robot.Account.Balance * (_config.RiskPercent / 100.0); - double volume = _symbol.VolumeForFixedRisk(riskAmount, slDistPips); + // Calculator initialisieren mit der Kapazität aus den Parametern + _calculator = new ClusterCalculator(MaxPoints); - volume = _symbol.NormalizeVolumeInUnits(volume, RoundingMode.Down); - if (volume < _symbol.VolumeInUnitsMin) return; - - double lots = _symbol.VolumeInUnitsToQuantity(volume); - - if (_config.SendTelegramOnly) - { - string directionStr = type == TradeType.Buy ? "BUY" : "SELL"; - string directionIcon = type == TradeType.Buy ? "📈" : "📉"; - string msg = $"{directionIcon} {directionStr} Signal @ {_config.SymbolName}\n\n" + - $"Entry: {entry}\n" + - $"SL: {sl}\n" + - $"TP: {tp}\n" + - $"Vol: {lots:F2} Lots"; - - _ = SendTelegramMessageAsync(msg); - return; - } - - var existingOrder = _robot.PendingOrders.FirstOrDefault(o => o.SymbolName == _config.SymbolName && o.Label == Label && o.TradeType == type); - - if (existingOrder != null) - { - bool volumeChanged = Math.Abs(existingOrder.VolumeInUnits - volume) > _symbol.VolumeInUnitsStep; - bool entryChanged = Math.Abs(existingOrder.TargetPrice - entry) > _symbol.TickSize; - bool slChanged = Math.Abs((existingOrder.StopLoss ?? 0) - sl) > _symbol.TickSize; - bool tpChanged = Math.Abs((existingOrder.TakeProfit ?? 0) - tp) > _symbol.TickSize; - - if (volumeChanged || entryChanged || slChanged || tpChanged) - { - _robot.ModifyPendingOrder(existingOrder, entry, sl, tp, ProtectionType.Absolute, null, volume); - } - } - else - { - _robot.Print("[SIGNAL] {0} {1} | Entry: {2} | SL: {3} | TP: {4} | Vol: {5:F2} Lots", - (type == TradeType.Buy ? "BUY" : "SELL"), _config.SymbolName, entry, sl, tp, lots); - - _robot.PlaceLimitOrder(type, _config.SymbolName, volume, entry, Label, sl, tp, ProtectionType.Absolute); - } + _currentDynamicRange = 5.0 * Symbol.PipSize; } - private async Task SendTelegramMessageAsync(string message) + public override void Calculate(int index) { - if (_robot.IsBacktesting) return; - if (string.IsNullOrWhiteSpace(_botToken) || string.IsNullOrWhiteSpace(_chatId)) return; + if (index < 1) return; - try - { - string url = $"https://api.telegram.org/bot{_botToken}/sendMessage?chat_id={_chatId}&text={Uri.EscapeDataString(message)}&parse_mode=HTML"; - HttpResponseMessage response = await _httpClient.GetAsync(url); - - if (!response.IsSuccessStatusCode) - { - _errorCallback?.Invoke($"Telegram Error: {response.StatusCode}"); - } - } - catch (Exception ex) - { - _errorCallback?.Invoke($"Telegram Exception: {ex.Message}"); - } - } + double currentHma = _hma.Result[index]; + double prevHma = _hma.Result[index - 1]; + + if (double.IsNaN(currentHma)) return; - private void UpdateClusterData(int index) - { - double currentHma = _hmaCluster.Result[index]; - double prevHma = _hmaCluster.Result[index - 1]; bool currentDirectionUp = (currentHma > prevHma); if (_isUpTrend == null) @@ -784,22 +79,7 @@ namespace cAlgo.Robots if (currentDirectionUp != _isUpTrend) { - double amp = Math.Abs(_trendExtremum - _lastExtremumPrice); - if (amp > 0) - { - _amplitudes.Add(amp); - if (_amplitudes.Count > 50) _amplitudes.RemoveAt(0); - - double sum = 0; - for (int i = 0; i < _amplitudes.Count; i++) sum += _amplitudes[i]; - _currentDynamicRange = (sum / _amplitudes.Count) * 0.5; - } - _extremaPoints.Add(new ExtremumPoint { Price = _trendExtremum, Index = _trendExtremumIndex, Type = _isUpTrend.Value ? PointType.Peak : PointType.Trough }); - if (_extremaPoints.Count > _config.MaxPoints) _extremaPoints.RemoveAt(0); - - _lastExtremumPrice = _trendExtremum; - _isUpTrend = currentDirectionUp; - SetExtremum(index); + HandleTrendReversal(index, currentDirectionUp); } else { @@ -807,69 +87,132 @@ namespace cAlgo.Robots } } + private void HandleTrendReversal(int index, bool currentDirectionUp) + { + // 1. Amplitude berechnen & Dynamische Range updaten + double amplitude = Math.Abs(_trendExtremum - _lastExtremumPrice); + if (amplitude > 0) + { + _amplitudes.Add(amplitude); + if (_amplitudes.Count > AmplitudePeriod) _amplitudes.RemoveAt(0); + + // Simples Average hier direkt berechnen, da es nur ein UI-Scaling ist + double avgAmp = _amplitudes.Count > 0 ? _amplitudes.Average() : 5.0 * Symbol.PipSize; + _currentDynamicRange = avgAmp * RangeMultiplier; + } + + // 2. Punkt in die optimierte Engine pushen + // ACHTUNG: AddPoint sortiert automatisch ein (BinarySearch) + _calculator.AddPoint(new ExtremumPoint + { + Price = _trendExtremum, + Index = _trendExtremumIndex, + Type = _isUpTrend.Value ? PointType.Peak : PointType.Trough + }); + + _lastExtremumPrice = _trendExtremum; + + // 3. Cluster neu berechnen & Zeichnen + UpdateClusters(); + + // 4. Reset für neuen Trend + _isUpTrend = currentDirectionUp; + SetExtremum(index); + } + private void SetExtremum(int index) { - _trendExtremum = _isUpTrend.Value ? _bars.HighPrices[index] : _bars.LowPrices[index]; + _trendExtremum = _isUpTrend.Value ? Bars.HighPrices[index] : Bars.LowPrices[index]; _trendExtremumIndex = index; } private void UpdateExtremum(int index) { - if (_isUpTrend.Value && (_bars.HighPrices[index] > _trendExtremum)) + if (_isUpTrend.Value && Bars.HighPrices[index] > _trendExtremum) { - _trendExtremum = _bars.HighPrices[index]; + _trendExtremum = Bars.HighPrices[index]; _trendExtremumIndex = index; } - else if (!_isUpTrend.Value && (_bars.LowPrices[index] < _trendExtremum)) + else if (!_isUpTrend.Value && Bars.LowPrices[index] < _trendExtremum) { - _trendExtremum = _bars.LowPrices[index]; + _trendExtremum = Bars.LowPrices[index]; _trendExtremumIndex = index; } } - private List CalculateClusters(int currentIndex) + private void UpdateClusters() { - int count = _extremaPoints.Count; - if (count < 2) return new List(); + // Abrufen der aktuellen Markt-Situation + int currentIndex = Bars.Count - 1; + double currentPrice = Bars.ClosePrices[currentIndex]; - double currentPrice = _bars.ClosePrices[currentIndex]; - double range = _currentDynamicRange; + // Engine aufrufen + // DecayPeriod ist wichtig für das interne Pruning der Engine + var result = _calculator.Calculate( + currentIndex, + currentPrice, + _currentDynamicRange, + DecayPeriod, + MaxZones + ); - // Score-First / Global Density Approach (Matches Indicator) - var candidates = _extremaPoints - .Select(p => { - double weightedScore = _extremaPoints - .Where(other => Math.Abs(other.Price - p.Price) <= range) - .Sum(other => GetWeight(other, currentIndex, currentPrice)); - - return new { Price = p.Price, Score = weightedScore }; - }) - .OrderByDescending(z => z.Score) - .ToList(); - - var topZones = new List(); - foreach (var zone in candidates) + if (result.Zones.Count == 0) { - // Filter Overlap - if (!topZones.Any(z => Math.Abs(z.Price - zone.Price) < range)) + ClearLines(); + return; + } + + DrawSignificance(result.Zones, result.TotalWeight); + } + + private void DrawSignificance(List zones, double totalWeightSum) + { + Color baseColor = Color.Aqua; + + // Wir iterieren bis MaxZones oder Listen-Ende. + // Die Engine gibt maximal 'MaxZones' zurück, aber sicher ist sicher. + int count = Math.Min(zones.Count, MaxZones); + + for (int i = 0; i < MaxZones; i++) + { + string lineId = $"SR_Line_{i}"; + string textId = $"SR_Text_{i}"; + + if (i < count && zones[i].Score > 0) { - // Normalize Score relative to total Weight of all points (Matches Indicator Normalization) - double totalWeightSum = _extremaPoints.Sum(p => GetWeight(p, currentIndex, currentPrice)); - double sigPercent = (totalWeightSum > 0) ? (zone.Score / totalWeightSum) * 100.0 : 0; + var zone = zones[i]; - topZones.Add(new ClusterLevel { Price = zone.Price, Significance = sigPercent }); + // Verhindere Division durch Null + double absSignificance = totalWeightSum > 0 ? zone.Score / totalWeightSum : 0; + + // Transparenz basierend auf Stärke + int alpha = (int)(Math.Sqrt(absSignificance) * 255); + alpha = Math.Clamp(alpha, 40, 255); + + Color sigColor = Color.FromArgb(alpha, baseColor.R, baseColor.G, baseColor.B); + + // Zeichnen + Chart.DrawHorizontalLine(lineId, zone.Price, sigColor, 2, LineStyle.Solid); + + string label = $" {absSignificance:P1}"; + Chart.DrawText(textId, label, Chart.LastVisibleBarIndex, zone.Price, sigColor); + } + else + { + // Aufräumen nicht benutzter Linien-Slots + Chart.RemoveObject(lineId); + Chart.RemoveObject(textId); } } - - return topZones; } - private double GetWeight(ExtremumPoint point, int currentIndex, double currentPrice) + private void ClearLines() { - double weight = Math.Max(0.0, 1.0 - ((double)(currentIndex - point.Index) / _config.DecayPeriod)); - if ((point.Type == PointType.Peak) && (point.Price < currentPrice)) weight *= 2.0; - else if ((point.Type == PointType.Trough) && (point.Price > currentPrice)) weight *= 2.0; - return weight; + for (int i = 0; i < MaxZones; i++) + { + Chart.RemoveObject($"SR_Line_{i}"); + Chart.RemoveObject($"SR_Text_{i}"); + } } } } \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/HmaClusterSR.csproj b/Sources/Indicators/HmaClusterSR/HmaClusterSR/HmaClusterSR.csproj index da1fef1..866383b 100644 --- a/Sources/Indicators/HmaClusterSR/HmaClusterSR/HmaClusterSR.csproj +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/HmaClusterSR.csproj @@ -1,9 +1,14 @@ + net6.0 - - + + + ..\..\..\Common\MSLib\obj\Debug\net6.0\MSLib.dll + + + \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs new file mode 100644 index 0000000..32c95f9 --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")] diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfo.cs b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfo.cs new file mode 100644 index 0000000..ff2bfe8 --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("HmaClusterSR")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("HmaClusterSR")] +[assembly: System.Reflection.AssemblyTitleAttribute("HmaClusterSR")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfoInputs.cache b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfoInputs.cache new file mode 100644 index 0000000..81b1cbc --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +9e01ea14fd7f1cf3abff0b8c1e9bec07e427b59e diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.GeneratedMSBuildEditorConfig.editorconfig b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..04fe673 --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,10 @@ +is_global = true +build_property.TargetFramework = net6.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = HmaClusterSR +build_property.ProjectDir = C:\Users\Brummel\Documents\cAlgo\Sources\Indicators\HmaClusterSR\HmaClusterSR\ diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.assets.cache b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/Debug/net6.0/HmaClusterSR.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..b1b7b3c07d8db18dc9a910e81cc9231269db925d GIT binary patch literal 571 zcmWIWc6a1rU|{I%(_*V#I*&1KPGqdYZSV5Lk{KDhGT&!uRG)LN@OsxcnGvW63P8+2 zXRDad;?$zz7^kAr+}zZh7`?pG^wg4=g2d$P#PrnSnBidR(!7$) p+*D5I{DMlK{N%(OmXe~Ma8@7nXdk- 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 literal 0 HcmV?d00001 diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.dgspec.json b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.dgspec.json new file mode 100644 index 0000000..5046328 --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.dgspec.json @@ -0,0 +1,66 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\HmaClusterSR.csproj": {} + }, + "projects": { + "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\HmaClusterSR.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\HmaClusterSR.csproj", + "projectName": "HmaClusterSR", + "projectPath": "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\HmaClusterSR.csproj", + "packagesPath": "C:\\Users\\Brummel\\.nuget\\packages\\", + "outputPath": "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Brummel\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net6.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "dependencies": { + "cTrader.Automate": { + "target": "Package", + "version": "[*, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.200\\RuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.props b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.props new file mode 100644 index 0000000..0b161ac --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.props @@ -0,0 +1,21 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Brummel\.nuget\packages\ + PackageReference + 6.1.0 + + + + + + + + + C:\Users\Brummel\.nuget\packages\ctrader.automate\1.0.14 + + \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.targets b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.targets new file mode 100644 index 0000000..46f142c --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/HmaClusterSR.csproj.nuget.g.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.assets.json b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.assets.json new file mode 100644 index 0000000..de99536 --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.assets.json @@ -0,0 +1,139 @@ +{ + "version": 3, + "targets": { + "net6.0": { + "cTrader.Automate/1.0.14": { + "type": "package", + "compile": { + "lib/net6.0/cAlgo.API.dll": {} + }, + "runtime": { + "lib/net6.0/cAlgo.API.dll": {} + }, + "build": { + "build/cTrader.Automate.props": {}, + "build/cTrader.Automate.targets": {} + } + } + } + }, + "libraries": { + "cTrader.Automate/1.0.14": { + "sha512": "eNwE7WL90MGBKb5MuLAtZLdQy0vxkI5EVhLWAQ9S83EAdYkGAzdccvGFLk2oqmtSGBtD+gEpyrJUW/ej4dI4jw==", + "type": "package", + "path": "ctrader.automate/1.0.14", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/cTrader.Automate.props", + "build/cTrader.Automate.targets", + "ctrader.automate.1.0.14.nupkg.sha512", + "ctrader.automate.nuspec", + "eula.md", + "icon.png", + "lib/net40/cAlgo.API.dll", + "lib/net40/cAlgo.API.xml", + "lib/net6.0/cAlgo.API.dll", + "lib/net6.0/cAlgo.API.xml", + "tools/net472/Core.AlgoFormat.Compose.Reflection.dll", + "tools/net472/Core.AlgoFormat.Writer.dll", + "tools/net472/Core.AlgoFormat.dll", + "tools/net472/Core.Domain.Primitives.dll", + "tools/net472/Newtonsoft.Json.dll", + "tools/net472/System.Buffers.dll", + "tools/net472/System.Collections.Immutable.dll", + "tools/net472/System.Memory.dll", + "tools/net472/System.Numerics.Vectors.dll", + "tools/net472/System.Reflection.Metadata.dll", + "tools/net472/System.Reflection.MetadataLoadContext.dll", + "tools/net472/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net472/cTrader.Automate.Sdk.Tasks.dll", + "tools/net6.0/Core.AlgoFormat.Compose.Reflection.dll", + "tools/net6.0/Core.AlgoFormat.Writer.dll", + "tools/net6.0/Core.AlgoFormat.dll", + "tools/net6.0/Core.Connection.Protobuf.Common.dll", + "tools/net6.0/Core.Domain.Primitives.dll", + "tools/net6.0/Microsoft.Win32.SystemEvents.dll", + "tools/net6.0/Newtonsoft.Json.dll", + "tools/net6.0/System.Drawing.Common.dll", + "tools/net6.0/System.Reflection.MetadataLoadContext.dll", + "tools/net6.0/System.Security.Permissions.dll", + "tools/net6.0/System.Windows.Extensions.dll", + "tools/net6.0/cTrader.Automate.Sdk.Tasks.dll", + "tools/net6.0/protobuf-net.Core.dll", + "tools/net6.0/protobuf-net.dll", + "tools/net6.0/runtimes/unix/lib/net6.0/System.Drawing.Common.dll", + "tools/net6.0/runtimes/win/lib/net6.0/Microsoft.Win32.SystemEvents.dll", + "tools/net6.0/runtimes/win/lib/net6.0/System.Drawing.Common.dll", + "tools/net6.0/runtimes/win/lib/net6.0/System.Windows.Extensions.dll" + ] + } + }, + "projectFileDependencyGroups": { + "net6.0": [ + "cTrader.Automate >= *" + ] + }, + "packageFolders": { + "C:\\Users\\Brummel\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\HmaClusterSR.csproj", + "projectName": "HmaClusterSR", + "projectPath": "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\HmaClusterSR.csproj", + "packagesPath": "C:\\Users\\Brummel\\.nuget\\packages\\", + "outputPath": "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Brummel\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net6.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net6.0": { + "targetAlias": "net6.0", + "dependencies": { + "cTrader.Automate": { + "target": "Package", + "version": "[*, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.200\\RuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.nuget.cache b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.nuget.cache new file mode 100644 index 0000000..e377815 --- /dev/null +++ b/Sources/Indicators/HmaClusterSR/HmaClusterSR/obj/project.nuget.cache @@ -0,0 +1,10 @@ +{ + "version": 2, + "dgSpecHash": "44vzUq/Lw+XLcrX6CWh7QZnxKTbL7SBSGBbM9ijWJIaHajpDybp1KWXAjmIYPIEKiHbzs2dgB4Wmenl5+uQxng==", + "success": true, + "projectFilePath": "C:\\Users\\Brummel\\Documents\\cAlgo\\Sources\\Indicators\\HmaClusterSR\\HmaClusterSR\\HmaClusterSR.csproj", + "expectedPackageFiles": [ + "C:\\Users\\Brummel\\.nuget\\packages\\ctrader.automate\\1.0.14\\ctrader.automate.1.0.14.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/Sources/Robots/HmaClusterBot.algo b/Sources/Robots/HmaClusterBot.algo index c70f58cb275540282dc98937fd83764c35c33e51..0bc74a9dedc3e1afc7b6a00d9cda355bcc7bbdee 100644 GIT binary patch literal 23496 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 Hj8FAZm?)eD literal 13784 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 OdpM2+15fOvGxIJcYq_!j diff --git a/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.cs b/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.cs index 6a1f1b9..bb96d2a 100644 --- a/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.cs +++ b/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; +using Myc; // Referenz auf die extrahierte Cluster-Logik namespace cAlgo.Robots { @@ -71,12 +72,12 @@ namespace cAlgo.Robots protected override void OnStart() { - try + try { if (string.IsNullOrWhiteSpace(SymbolsCsv)) { Print("CSV is empty. Running in Single-Symbol Mode on Chart Symbol."); - + var config = new StrategyConfig { SymbolName = SymbolName, @@ -129,6 +130,10 @@ namespace cAlgo.Robots { Print(message); + // WICHTIG: Im Backtest NIEMALS Netzwerk-Calls machen, auch nicht bei Fehlern. + // Das führt bei vielen Fehlern zum Stillstand der Simulation. + if (IsBacktesting) return; + if (!string.IsNullOrWhiteSpace(TelegramBotToken) && !string.IsNullOrWhiteSpace(TelegramChatId)) { string formattedMsg = $"⚠️ ERROR @ {DateTime.UtcNow:HH:mm:ss} UTC\n\n{message}"; @@ -138,6 +143,8 @@ namespace cAlgo.Robots private async Task SendTelegramRawAsync(string token, string chatId, string message) { + if (IsBacktesting) return; + try { string url = $"https://api.telegram.org/bot{token}/sendMessage?chat_id={chatId}&text={Uri.EscapeDataString(message)}&parse_mode=HTML"; @@ -152,7 +159,7 @@ namespace cAlgo.Robots private void ParseCsvAndCreateStrategies() { var normalizedCsv = SymbolsCsv.Replace("\n", ",").Replace("\r", ","); - + var tokens = normalizedCsv.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(t => t.Trim()) .Where(t => !string.IsNullOrEmpty(t)) @@ -195,9 +202,8 @@ namespace cAlgo.Robots BiasDeviationAvgPeriod = int.Parse(tokens[i + 7], CultureInfo.InvariantCulture), UseDynamicPositionManagement = bool.Parse(tokens[i + 8]), SendTelegramOnly = bool.Parse(tokens[i + 9]), - - // Defaults from global params - CloseProfitOnBiasFlip = CloseProfitOnBiasFlip, + + CloseProfitOnBiasFlip = CloseProfitOnBiasFlip, RiskPercent = RiskPercent, MaxPoints = MaxPoints, DecayPeriod = DecayPeriod @@ -239,16 +245,8 @@ namespace cAlgo.Robots { #region Types & Fields - private enum PointType { Peak, Trough } private enum Bias { Long, Short, Neutral } - private struct ExtremumPoint - { - public double Price; - public int Index; - public PointType Type; - } - public struct ClusterLevel { public double Price; @@ -270,13 +268,14 @@ namespace cAlgo.Robots private readonly Queue _deviationQueue = new Queue(); private double _runningDeviationSum; - + private bool _deviationConditionMetInCurrentCycle; private bool _isTradingAllowedBasedOnPrevCycle; - private readonly List _extremaPoints = new(); + // --- OPTIMIERUNG: Nutzt Calculator statt Liste --- + private readonly Myc.ClusterCalculator _clusterCalculator; private readonly List _amplitudes = new(); - + private double _trendExtremum; private int _trendExtremumIndex; private double _lastExtremumPrice; @@ -288,12 +287,12 @@ namespace cAlgo.Robots #endregion public ClusterStrategy( - Robot robot, - Symbol symbol, - Bars bars, - StrategyConfig config, - HttpClient httpClient, - string token, + Robot robot, + Symbol symbol, + Bars bars, + StrategyConfig config, + HttpClient httpClient, + string token, string chatId, Action errorCallback) { @@ -305,17 +304,20 @@ namespace cAlgo.Robots _botToken = token; _chatId = chatId; _errorCallback = errorCallback; + + // Calculator mit Reserve initialisieren + _clusterCalculator = new Myc.ClusterCalculator(_config.MaxPoints + 200); } public void Start() { int requiredBars = Math.Max(_config.SmaBiasPeriod, _config.HmaBiasPeriod); - requiredBars = Math.Max(requiredBars, _config.BiasDeviationAvgPeriod) + 10; + requiredBars = Math.Max(requiredBars, _config.BiasDeviationAvgPeriod) + 10; while (_bars.Count < requiredBars) { int loaded = _bars.LoadMoreHistory(); - if (loaded == 0) + if (loaded == 0) { _errorCallback?.Invoke($"Not enough history for {_config.SymbolName}. Loaded: {_bars.Count}, Req: {requiredBars}"); return; @@ -332,11 +334,11 @@ namespace cAlgo.Robots int startIndex = Math.Max(_config.SmaBiasPeriod, _config.HmaBiasPeriod); startIndex = Math.Max(startIndex, _config.BiasDeviationAvgPeriod); - + for (int i = startIndex; i < _bars.Count; i++) { UpdateFilterState(i); - UpdateClusterData(i); + UpdateClusterData(i); } _bars.BarOpened += OnBarOpened; @@ -356,24 +358,21 @@ namespace cAlgo.Robots UpdateFilterState(index); UpdateClusterData(index); - + var clusters = CalculateClusters(index); - // 1. Dynamic SL/TP Management if (!_config.SendTelegramOnly && _config.UseDynamicPositionManagement && clusters.Count >= 2) { ManagePositions(clusters); } - + var currentBias = GetCurrentBias(index); - // 2. Check for Profit Close on Bias Flip if (!_config.SendTelegramOnly && _config.CloseProfitOnBiasFlip) { CloseReversedPositions(currentBias); } - // 3. New Entry Logic with FIXED Orphan-Cleanup and Validations ManageOrders(currentBias, index, clusters); } catch (Exception ex) @@ -389,7 +388,7 @@ namespace cAlgo.Robots foreach (var pos in _robot.Positions) { if (pos.SymbolName != _config.SymbolName || pos.Label != Label) continue; - if (pos.NetProfit <= 0) continue; + if (pos.NetProfit <= 0) continue; bool close = false; @@ -405,7 +404,7 @@ namespace cAlgo.Robots { string msg = $"🔒 CLOSE PROFIT (Bias Flip) @ {_config.SymbolName}\n" + $"Profit: {pos.NetProfit:F2}"; - _ = SendTelegramMessageAsync(msg); + _ = SendTelegramMessageAsync(msg); } } } @@ -419,7 +418,7 @@ namespace cAlgo.Robots double prevSma = _smaBias.Result[index - 1]; double currentBiasDeviation = Math.Abs(currHma - currSma); - + _deviationQueue.Enqueue(currentBiasDeviation); _runningDeviationSum += currentBiasDeviation; @@ -429,8 +428,8 @@ namespace cAlgo.Robots _runningDeviationSum -= removed; } - double averageDeviation = (_deviationQueue.Count > 0) - ? _runningDeviationSum / _deviationQueue.Count + double averageDeviation = (_deviationQueue.Count > 0) + ? _runningDeviationSum / _deviationQueue.Count : 0.0; bool currHmaAbove = currHma > currSma; @@ -462,7 +461,7 @@ namespace cAlgo.Robots private void ManagePositions(List clusters) { - double pNow = _symbol.Bid; + double pNow = _symbol.Bid; foreach (var pos in _robot.Positions) { @@ -509,7 +508,7 @@ namespace cAlgo.Robots } } } - else // Sell + else { double lowestSlPrice = double.MaxValue; double lowestTpPrice = double.MaxValue; @@ -552,10 +551,9 @@ namespace cAlgo.Robots private void ManageOrders(Bias bias, int index, List clusters) { - // Standard Cleanup: Orders in wrong direction (Bias Change) CleanupWrongBiasOrders(bias); - if (_config.UseBiasDeviationFilter && !_isTradingAllowedBasedOnPrevCycle) + if (_config.UseBiasDeviationFilter && !_isTradingAllowedBasedOnPrevCycle) return; if (bias == Bias.Neutral) return; @@ -565,11 +563,9 @@ namespace cAlgo.Robots bool hasLong = _robot.Positions.Any(p => p.SymbolName == _config.SymbolName && p.Label == Label && p.TradeType == TradeType.Buy); bool hasShort = _robot.Positions.Any(p => p.SymbolName == _config.SymbolName && p.Label == Label && p.TradeType == TradeType.Sell); - // --- FIX 1: Open Positions Cleanup --- - // If we are already invested, we ensure no pending orders for the same direction are lingering around. if (bias == Bias.Long && hasLong) { - CancelPendingOrders(TradeType.Buy); + CancelPendingOrders(TradeType.Buy); return; } if (bias == Bias.Short && hasShort) @@ -723,38 +719,18 @@ namespace cAlgo.Robots { var existingOrder = _robot.PendingOrders.FirstOrDefault(o => o.SymbolName == _config.SymbolName && o.Label == Label && o.TradeType == type); - // --- FIX 4: Market Proximity Check --- - // If the limit price is invalid (e.g. Buy Limit above Ask), we must abort/cancel. - bool priceInvalid = false; - double buffer = _symbol.PipSize; + double buffer = _symbol.PipSize; + if (type == TradeType.Buy && entry >= (_symbol.Ask - buffer)) return; + if (type == TradeType.Sell && entry <= (_symbol.Bid + buffer)) return; - if (type == TradeType.Buy && entry >= (_symbol.Ask - buffer)) priceInvalid = true; - if (type == TradeType.Sell && entry <= (_symbol.Bid + buffer)) priceInvalid = true; - - if (priceInvalid) - { - if (existingOrder != null) _robot.CancelPendingOrder(existingOrder); - return; - } - - // --- FIX 3: SL Distance Check --- double slDistPips = Math.Abs(entry - sl) / _symbol.PipSize; - if (slDistPips <= 0) - { - if (existingOrder != null) _robot.CancelPendingOrder(existingOrder); - return; - } + if (slDistPips <= 0) return; - // --- FIX 2: Volume Check --- double riskAmount = _robot.Account.Balance * (_config.RiskPercent / 100.0); double volume = _symbol.VolumeForFixedRisk(riskAmount, slDistPips); volume = _symbol.NormalizeVolumeInUnits(volume, RoundingMode.Down); - if (volume < _symbol.VolumeInUnitsMin) - { - if (existingOrder != null) _robot.CancelPendingOrder(existingOrder); - return; - } + if (volume < _symbol.VolumeInUnitsMin) return; double lots = _symbol.VolumeInUnitsToQuantity(volume); @@ -763,11 +739,11 @@ namespace cAlgo.Robots string directionStr = type == TradeType.Buy ? "BUY" : "SELL"; string directionIcon = type == TradeType.Buy ? "📈" : "📉"; string msg = $"{directionIcon} {directionStr} Signal @ {_config.SymbolName}\n\n" + - $"Entry: {entry}\n" + - $"SL: {sl}\n" + - $"TP: {tp}\n" + - $"Vol: {lots:F2} Lots"; - + $"Entry: {entry}\n" + + $"SL: {sl}\n" + + $"TP: {tp}\n" + + $"Vol: {lots:F2} Lots"; + _ = SendTelegramMessageAsync(msg); return; } @@ -784,16 +760,13 @@ namespace cAlgo.Robots var result = _robot.ModifyPendingOrder(existingOrder, entry, sl, tp, ProtectionType.Absolute, null, volume); if (!result.IsSuccessful) { - // Fallback: If modify fails (e.g. spread jump), cancel it to avoid stale orders + // Falls Modifikation fehlschlägt (z.B. Spread), löschen wir die Order, um keine veralteten Levels zu handeln _robot.CancelPendingOrder(existingOrder); } } } else { - _robot.Print("[SIGNAL] {0} {1} | Entry: {2} | SL: {3} | TP: {4} | Vol: {5:F2} Lots", - (type == TradeType.Buy ? "BUY" : "SELL"), _config.SymbolName, entry, sl, tp, lots); - _robot.PlaceLimitOrder(type, _config.SymbolName, volume, entry, Label, sl, tp, ProtectionType.Absolute); } } @@ -807,7 +780,7 @@ namespace cAlgo.Robots { string url = $"https://api.telegram.org/bot{_botToken}/sendMessage?chat_id={_chatId}&text={Uri.EscapeDataString(message)}&parse_mode=HTML"; HttpResponseMessage response = await _httpClient.GetAsync(url); - + if (!response.IsSuccessStatusCode) { _errorCallback?.Invoke($"Telegram Error: {response.StatusCode}"); @@ -842,11 +815,18 @@ namespace cAlgo.Robots if (_amplitudes.Count > 50) _amplitudes.RemoveAt(0); double sum = 0; - for (int i = 0; i < _amplitudes.Count; i++) sum += _amplitudes[i]; + for(int i=0; i<_amplitudes.Count; i++) sum += _amplitudes[i]; _currentDynamicRange = (sum / _amplitudes.Count) * 0.5; + if (_currentDynamicRange < _symbol.PipSize) _currentDynamicRange = _symbol.PipSize; } - _extremaPoints.Add(new ExtremumPoint { Price = _trendExtremum, Index = _trendExtremumIndex, Type = _isUpTrend.Value ? PointType.Peak : PointType.Trough }); - if (_extremaPoints.Count > _config.MaxPoints) _extremaPoints.RemoveAt(0); + + // Neuen Punkt in den optimierten Calculator einspeisen + _clusterCalculator.AddPoint(new Myc.ExtremumPoint + { + Price = _trendExtremum, + Index = _trendExtremumIndex, + Type = _isUpTrend.Value ? Myc.PointType.Peak : Myc.PointType.Trough + }); _lastExtremumPrice = _trendExtremum; _isUpTrend = currentDirectionUp; @@ -880,57 +860,23 @@ namespace cAlgo.Robots private List CalculateClusters(int currentIndex) { - int count = _extremaPoints.Count; - if (count == 0) return new List(); - double currentPrice = _bars.ClosePrices[currentIndex]; - double[] weights = new double[count]; - double totalWeightSum = 0; - for (int i = 0; i < count; i++) + var result = _clusterCalculator.Calculate( + currentIndex, + currentPrice, + _currentDynamicRange, + _config.DecayPeriod, + 100 + ); + + if (result.TotalWeight == 0 || result.Zones.Count == 0) return new List(); + + return result.Zones.Select(z => new ClusterLevel { - weights[i] = GetWeight(_extremaPoints[i], currentIndex, currentPrice); - totalWeightSum += weights[i]; - } - - if (totalWeightSum == 0) return new List(); - - var zones = new List(); - for (int i = count - 1; i >= 0; i--) - { - var p = _extremaPoints[i]; - - bool exists = false; - for (int j = 0; j < zones.Count; j++) - { - if (Math.Abs(zones[j].Price - p.Price) < _currentDynamicRange) - { - exists = true; - break; - } - } - if (exists) continue; - - double score = 0; - for (int k = 0; k < count; k++) - { - if (Math.Abs(_extremaPoints[k].Price - p.Price) <= _currentDynamicRange) - { - score += weights[k]; - } - } - - zones.Add(new ClusterLevel { Price = p.Price, Significance = (score / totalWeightSum) * 100.0 }); - } - return zones; - } - - private double GetWeight(ExtremumPoint point, int currentIndex, double currentPrice) - { - double weight = Math.Max(0.0, 1.0 - ((double)(currentIndex - point.Index) / _config.DecayPeriod)); - if ((point.Type == PointType.Peak) && (point.Price < currentPrice)) weight *= 2.0; - else if ((point.Type == PointType.Trough) && (point.Price > currentPrice)) weight *= 2.0; - return weight; + Price = z.Price, + Significance = (z.Score / result.TotalWeight) * 100.0 + }).ToList(); } } } \ No newline at end of file diff --git a/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.csproj b/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.csproj index c8ec96f..866383b 100644 --- a/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.csproj +++ b/Sources/Robots/HmaClusterBot/HmaClusterBot/HmaClusterBot.csproj @@ -6,4 +6,9 @@ + + + ..\..\..\Common\MSLib\obj\Debug\net6.0\MSLib.dll + + \ No newline at end of file