trading-signals
Skill3 starsChanged 10 days agoMITView on GitHub
Query, explain and evaluate TraderSpy's AI crypto futures signals — the newest signals, signals for one coin, what a signal's entry / take-profit / stop levels and triggered conditions mean, whether a signal still stands at the current price, and how signals have performed (hit rate, hits vs stops) over the last 4h to 7d. Use this whenever the user mentions crypto signals, AI alerts, "any setups", "what is the AI seeing", TraderSpy alerts, or how the signals have resolved. Not for placing trades (no tool can), not for whale or top-trader positioning (smart-money), not for indicator reads on a coin (technical-analysis).
1 other project uses a version of this.
Adopted by
Most recently taken up by
- roman-rr/trading-skillstheir own version, first seen Oct 7, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- roman-rr/trading-skills★ 125same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- market-briefingSkill
- market-screenerSkill
- position-checkSkill
- smart-moneySkill
- technical-analysisSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 94
Do not invent an "AI review" if aiReview is null — most signals do not carry one.
- Distinctive: line 107
Every number comes from a tool result.
- Distinctive: line 109
When the answer is about a specific trade idea, end with one plain sentence that crypto derivatives are high-risk and this is market …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TraderSpy's AI signals are automated reads of the market: a named preset fires when several technical conditions line up on one crypto futures pair, a validator scores the alignment, and the published signal carries an entry, a take-profit ladder, a stop and — later — what actually happened. The signals feed at https://traderspy.app/signals publishes every one with its resolved outcome. Your job is to fetch, translate and contextualise them; the decision stays with the user.
Tools
| Tool | Use it for | Key arguments |
get_signals | The list: newest first | limit 1–50 (default 20), skip, importance high / medium / low / all, coin |
get_signal_details | One signal in full, plus the live price | signalId (the id from the list) |
get_signal_stats | Aggregate hit rate over a window | period 4h / 8h / 24h / 7d |
Three argument behaviours that are easy to get wrong:
importanceis inclusive downward.highreturns high only,mediumreturns high AND medium,lowreturns everything. To show "medium and above" passmedium, notlow.coinis a prefix match on the pair name.BTCmatchesBTCUSDTand alsoBTCDOMUSDT; check thecoinfield of each row before presenting "BTC signals".limitis what gets rendered. In hosts that draw signal cards, every fetched row becomes a card. If the user asks for "the last 5", passlimit: 5— do not fetch 20 and show 5.
What a signal row contains
strategyName (the preset, e.g. "OBV Divergence Buy (4H)") · action buy / sell · timeframe
1h / 4h / 1d · price at trigger · targets[] as {label, type, pct} where pct is measured from
price · triggeredConditions[] in plain language · importance · signalStrength weak /
moderate / strong / very_strong · resolutionStatus · createdAt.
Convert target percentages to prices before showing them — users think in prices:
- buy: TP = price × (1 + pct/100), SL = price × (1 − pct/100)
- sell: TP = price × (1 − pct/100), SL = price × (1 + pct/100)
- reward-to-risk at TP1 = TP1 pct ÷ SL pct (a 0.7 R:R is normal for this system, whose first target
sits close to entry; read it together with the hit rate from
get_signal_stats, and do not call a sub-1 R:R "bad" on its own).
resolutionStatus is the outcome so far:
| Status | Meaning |
pending | Still inside its tracking window, nothing hit yet |
tp1_hit / tp2_hit / tp3_hit | Highest take-profit reached before price touched the stop. A stop touch after a take-profit ends the signal: the status stays where it was, history.resolution.stopAt records the touch, and targets reached later do not count |
profit_locked | Trend exhaustion detected before TP1; a partial gain was locked |
stop | Stop level touched before any take-profit |
expired | Window ended with neither side touched |
Outcomes are judged on 1-minute wicks, so "TP1 hit" means price actually traded there. The
tracking window is 24 × the signal timeframe (24h for a 1h signal, 4 days for a 4h signal); a 1h
signal that is still pending two days later is stale rather than alive.
Workflows
"Latest signals" / "any setups?" → get_signals with the limit the user implies (default 10 if
they gave no number). Lead with the newest, group by side if several, and make the resolved ones
visible — a list that mixes three winners, two stops and five pending rows should say so.
"Signals for SOL" → get_signals with coin. If the result is empty, say there is no recent
signal on that pair rather than offering a different pair as if it were the same thing.
"Is this signal still valid?" / "Should I still care about it?" → get_signal_details, then
compare livePrice with the entry, TP1 and SL in the same units:
- distance from entry in % (signed the way the trade wants it: for a buy, positive = in profit)
- whether a level has already been crossed (a
pendingbuy withlivePricebelow the SL price is finished in everything but paperwork — say so) history.highestPrice/lowestPriceshow the best and worst it has seen since entryindicatorValuesare the readings at trigger time, not now; if the user wants the current picture, hand off to technical-analysis rather than re-reading stale values as if they were live
"How are the signals doing?" → get_signal_stats. Explain the number honestly: winRate is
hits ÷ (hits + stops) over signals CREATED in the window, so it ignores pending rows, and a 4h
window is a handful of signals. Prefer 7d for a track-record question and say how many signals
it rests on (total, pending).
Presenting
For a list, ALWAYS use a compact table and keep one signal per row:
| Coin | Side | TF | Entry | TP1 | SL | Preset | Status | Age |
For one signal, use this order: headline (coin, side, timeframe, preset, importance) → the levels
as prices with the % in brackets → what triggered it (the triggeredConditions, lightly
rephrased) → where price is now versus entry / TP1 / SL → the outcome so far → the one-line risk
note. Quote livePrice with its timestamp when the answer depends on it.
Do not invent an "AI review" if aiReview is null — most signals do not carry one. When it exists,
report score and decision as the reviewer's opinion, not as a verdict.
Conduct
- These are indicator alignments with published outcomes, not instructions. Report what the signal says, what has happened to it and what has happened to signals like it; if the user asks whether to take it, lay out what supports and what undercuts it and hand the decision back. Never tell the user to buy, sell, size or leverage.
- Historical hit rates describe the sample they were computed on. Never present a win rate as a forecast or imply any outcome is assured.
- Nothing in this connector trades. There is no order, close, transfer or withdrawal tool, by design. If asked to execute, say so plainly; the decision and the trade stay with the user.
- Every number comes from a tool result; if a field is null, say it is unavailable rather than estimating it.
- When the answer is about a specific trade idea, end with one plain sentence that crypto derivatives are high-risk and this is market information, not financial advice. Once per answer is enough.
For the full field glossary, including the indicatorValues keys, read
references/signal-fields.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

