mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-17 10:08:05 +00:00
Add chatmodes and update test files
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
*Act:** meticulous auto-agent; finish fully—no early stop.
|
||||||
|
Cycle: State→Do→Verify→Iterate→Validate.
|
||||||
|
Style: concise, exact, verifiable.
|
||||||
|
|
||||||
|
### 🧰 Tool Roles
|
||||||
|
| Tool | Purpose |
|
||||||
|
|------|----------|
|
||||||
|
| **seq-think-mcp** | plan & decompose tasks |
|
||||||
|
| **tavily-mcp** | fresh info, web/news search |
|
||||||
|
| **ref-tools-mcp** | lib/framework specs |
|
||||||
|
| **wolfram-mcp** | math/logic/symbolic verify |
|
||||||
|
| **git-mcp** | code/docs search, lint, commit rules |
|
||||||
|
| **qdrant-mcp** | long-term memory (no secrets) |
|
||||||
|
|
||||||
|
Fallback: search→tavily→ref→git | plan→seq | calc→wolfram | persist→qdrant.
|
||||||
|
|
||||||
|
### ⚙️ Workflow
|
||||||
|
1️⃣ **Recall/Discover:** qdrant for mem, tavily/ref/wolfram for current info.
|
||||||
|
2️⃣ **Analyze:** define expected, edges, deps, pitfalls; plan via seq-think.
|
||||||
|
3️⃣ **Investigate:** git search→read context→root cause; log in qdrant.
|
||||||
|
4️⃣ **Research:** tavily search→extract; ref-tools for stds; git for docs; recurse; save refs.
|
||||||
|
5️⃣ **Plan:** seq-think build TODO (emoji status); store in qdrant.
|
||||||
|
6️⃣ **Implement:** small testable edits; read ≤2k lines; make `.env` if missing.
|
||||||
|
7️⃣ **Debug:** logs/probes; fix root; reverify each step.
|
||||||
|
8️⃣ **Test:** run per change; add edges; repeat till pass.
|
||||||
|
9️⃣ **Validate:** confirm intent; hidden tests; math check via wolfram.
|
||||||
|
🔟 **Memorize:** store verified facts `{text,meta:{src,proj,date,tags}}` → qdrant; tag old deprecated.
|
||||||
|
|
||||||
|
### 💬 Comm
|
||||||
|
Speak clear, brief, pro-casual.
|
||||||
|
Use bullets/code; no filler.
|
||||||
|
Write direct to files; show only if asked.
|
||||||
|
|
||||||
|
### 🪶 Git Policy
|
||||||
|
No auto-commit—only on user cmd.
|
||||||
|
Before commit:
|
||||||
|
1) verify scope/tests ✔
|
||||||
|
2) check rules via git + qdrant ✔
|
||||||
|
3) `git add` → `git commit -m "<msg>"`
|
||||||
|
Msg: subj ≤50ch, imperative; body ≤72ch what/why; footer refs/trailers.
|
||||||
|
Checklist: concise ✔ why ✔ refs ✔ style ✔ tests ✔
|
||||||
|
|
||||||
|
### ⚠️ Error Handling
|
||||||
|
If unclear → reverify (tavily/ref).
|
||||||
|
Math gap → wolfram.
|
||||||
|
Missing ctx → qdrant.
|
||||||
|
Multi-path → seq-think fork.
|
||||||
|
|
||||||
|
### ✅ Goal
|
||||||
|
Deliver complete, tested, verified soln; persist in qdrant.
|
||||||
|
Loop: Plan→Exec→Verify→Persist→Confirm.
|
||||||
+3
-1
@@ -69,7 +69,9 @@ public class BarIndicatorTests
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type">The type of the indicator.</param>
|
/// <param name="type">The type of the indicator.</param>
|
||||||
/// <returns>The MethodInfo for the Calc method.</returns>
|
/// <returns>The MethodInfo for the Calc method.</returns>
|
||||||
private static MethodInfo FindCalcMethod(Type type)
|
[UnconditionalSuppressMessage("Trimming", "IL2072:Target parameter argument does not satisfy 'DynamicallyAccessedMembersAttribute' in call to target method. The return value of the source method does not have matching annotations.",
|
||||||
|
Justification = "BaseType will have the same dynamic access requirements as the derived type in this reflection scenario.")]
|
||||||
|
private static MethodInfo FindCalcMethod([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] Type type)
|
||||||
{
|
{
|
||||||
while (type != null && type != typeof(object))
|
while (type != null && type != typeof(object))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ extern alias experiments;
|
|||||||
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using TradingPlatform.BusinessLayer;
|
using TradingPlatform.BusinessLayer;
|
||||||
using statistics::QuanTAlib;
|
using statistics::QuanTAlib;
|
||||||
using averages::QuanTAlib;
|
using averages::QuanTAlib;
|
||||||
@@ -21,7 +22,7 @@ namespace QuanTAlib
|
|||||||
{
|
{
|
||||||
public class QuantowerTests
|
public class QuantowerTests
|
||||||
{
|
{
|
||||||
private static void TestIndicator<T>(string fieldName = "ma") where T : Indicator, new()
|
private static void TestIndicator<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.NonPublicFields)] T>(string fieldName = "ma") where T : Indicator, new()
|
||||||
{
|
{
|
||||||
var indicator = new T();
|
var indicator = new T();
|
||||||
try
|
try
|
||||||
@@ -51,7 +52,7 @@ namespace QuanTAlib
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void TestIndicatorMultipleFields<T>(string[] fieldNames) where T : Indicator, new()
|
private static void TestIndicatorMultipleFields<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.NonPublicMethods | DynamicallyAccessedMemberTypes.NonPublicFields)] T>(string[] fieldNames) where T : Indicator, new()
|
||||||
{
|
{
|
||||||
var indicator = new T();
|
var indicator = new T();
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
<PackageIcon>QuanTAlib2.png</PackageIcon>
|
<PackageIcon>QuanTAlib2.png</PackageIcon>
|
||||||
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
|
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
|
||||||
|
<NoPackageAnalysis>true</NoPackageAnalysis>
|
||||||
<PackageTags>
|
<PackageTags>
|
||||||
Indicators;Stock;Market;Technical;Analysis;Algorithmic;Trading;Trade;Trend;Momentum;Finance;Algorithm;Algo;
|
Indicators;Stock;Market;Technical;Analysis;Algorithmic;Trading;Trade;Trend;Momentum;Finance;Algorithm;Algo;
|
||||||
AlgoTrading;Financial;Strategy;Chart;Charting;Oscillator;Overlay;Equity;Bitcoin;Crypto;Cryptocurrency;Forex;
|
AlgoTrading;Financial;Strategy;Chart;Charting;Oscillator;Overlay;Equity;Bitcoin;Crypto;Cryptocurrency;Forex;
|
||||||
|
|||||||
Reference in New Issue
Block a user