agentleFS
target1mtarget1m/traderspy-mcp/skills/trading-signals/SKILL.md

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

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    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.

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
  1. Very specific:

    Do not invent an "AI review" if aiReview is null — most signals do not carry one.

    line 94
  2. Distinctive:

    Every number comes from a tool result.

    line 107
  3. Distinctive:

    When the answer is about a specific trade idea, end with one plain sentence that crypto derivatives are high-risk and this is market …

    line 109

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

ToolUse it forKey arguments
get_signalsThe list: newest firstlimit 1–50 (default 20), skip, importance high / medium / low / all, coin
get_signal_detailsOne signal in full, plus the live pricesignalId (the id from the list)
get_signal_statsAggregate hit rate over a windowperiod 4h / 8h / 24h / 7d

Three argument behaviours that are easy to get wrong:

  • importance is inclusive downward. high returns high only, medium returns high AND medium, low returns everything. To show "medium and above" pass medium, not low.
  • coin is a prefix match on the pair name. BTC matches BTCUSDT and also BTCDOMUSDT; check the coin field of each row before presenting "BTC signals".
  • limit is what gets rendered. In hosts that draw signal cards, every fetched row becomes a card. If the user asks for "the last 5", pass limit: 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:

StatusMeaning
pendingStill inside its tracking window, nothing hit yet
tp1_hit / tp2_hit / tp3_hitHighest 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_lockedTrend exhaustion detected before TP1; a partial gain was locked
stopStop level touched before any take-profit
expiredWindow 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 pending buy with livePrice below the SL price is finished in everything but paperwork — say so)
  • history.highestPrice / lowestPrice show the best and worst it has seen since entry
  • indicatorValues are 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.