walid@portfolio:~/lab/six-analyst-trading-desk$
cd../lab
01ideaSep 2026

Six analysts, one report

A research desk built entirely out of prompts — scanner, chart, news, quant, risk, plan

No code, no broker connection, no execution — six prompted analysts that run in strict order over data you paste, and hand back one report ending in READY FOR HUMAN REVIEW. The design discipline is the interesting part: every analyst is forbidden from inventing a number, and one of the six exists purely to try to kill the idea.

TradingPromptsResearchRiskChatGPT
!
Read this first

This is a research and decision-support workflow, not a trading bot. Nothing in it connects to a broker or places an order. It never invents prices, news or results — you paste verified data, or it fetches and cites, and you check every figure. Educational only, not investment advice. Trading involves substantial risk, AI output can be wrong or incomplete, and every decision remains yours.

The chain

Each analyst sees your input and every previous output

Strict order. The prompt refuses to skip a stage — ask it to, and it names the one you are missing.

01·SCANNER

Which symbols deserve research

Screens what you supply on volume, momentum, volatility, price action, structure, relative strength and liquidity. Ranks for research — it is explicitly barred from naming a “best trade”, and from claiming it scanned the market when all it saw was your table.

02·CHART

Trend, levels, structure, invalidation

Reads your screenshots and pasted indicator values. Describes only what is visible, labels every line FACT or VIEW, and must not read a price it cannot see. No entries, exits or targets.

03·NEWS

Catalysts, events, sources

Organises verified news, earnings, guidance and economic events, each marked CONFIRMED or UNCONFIRMED. Anything it cannot cite is left out and listed under MISSING.

04·QUANT

Bull, base and bear as conditions

Works only from the historical rows you paste. Any count must come from those rows and state the sample size. Fabricating backtests, win rates, expectancy or probabilities is forbidden — the honest answer is INSUFFICIENT DATA.

05·RISK

Actively tries to kill the idea

Hunts downside, volatility versus stop width, liquidity, event risk, sizing arithmetic, conflicting signals and missing information. One verdict: REJECT, NEEDS MORE RESEARCH, or CONTINUE TO PLAN.

06·PLAN

Assembles, adds nothing

Fills the template from the five outputs, copying figures exactly and preserving every NOT PROVIDED. Final status is always READY FOR HUMAN REVIEW — a document, never an order.

i
Why CONTINUE TO PLAN is not approval

The risk stage is the load-bearing one, and its wording is deliberate. Its best outcome does not mean “take this trade” — it means the research is finally complete enough for a human to look at. A workflow whose most positive verdict is still only “ready to be reviewed” is one that cannot quietly talk you into anything.

Section 1

What you need — the manual version

ToolWhyNotes
A capable multimodal chat tierRuns all six analysts from one prompt, and reads screenshots and tables.Needs a paid tier. Image reading is the part that matters, since the chart stage works from screenshots.
Charting softwarePrice, volume, indicators, chart screenshots.A free plan is enough here. Always note the timestamp.
Reliable news sourcesEarnings, guidance, economic events.Investor-relations pages, earnings releases, exchange filings, the economic calendar. Copy with link and date.
A notes documentSaves each report.One document per symbol.
Section 1b

And for the optional automated version

AddWhyNotes
A model API keyYour backend calls the model directly — the chat product itself has no public API for other apps to drive.Pay per use. Keep it in .env.
Market data APIFeeds price and volume to the backend so it never guesses.Optional. Whichever provider you already trust; the app must display source and timestamp.
Paid charting planWebhook alerts need a paid tier plus two-factor authentication.Alert → JSON → your webhook.
A coding agentBuilds the dashboard for you.Section 11 below is the build prompt.
The shared footer

One rules block, appended to every analyst

The guide repeats this verbatim at the end of all six prompts. It is shown once here — append it to each analyst prompt below rather than reading it six times. It is doing most of the safety work.

rules-footer.txt8 lines
RULES: Use only the data I pasted, or data you fetched and cited with
source + timestamp. Never invent a price, indicator value, headline,
earnings figure, economic event, probability, win rate, backtest, or
return — missing = "NOT PROVIDED — verify manually". Keep FACTS (with
source) separate from ANALYST VIEW (your interpretation). End with
CONFIDENCE: Low / Medium / High. No buy/sell instructions, no profit
promises, no trade execution. Educational research only, not investment
advice; a human reviews everything.
Section 3

Scanner

Paste a table of what you are watching: symbol, price, % change, volume, average volume, day range, ATR or % range, sector, timestamp, source.

scanner.txt19 lines
You are my Market Scanner. Below is market data I copied, with source
and timestamp: [PASTE TABLE]

Screen every symbol on these factors, using only the numbers supplied:
VOLUME (vs. average) · MOMENTUM (% change, position in range) ·
VOLATILITY (range / ATR) · PRICE ACTION (what the numbers imply, no
guessing) · MARKET STRUCTURE (only if I pasted levels) · RELATIVE
STRENGTH (vs. the index or sector figures I pasted) · LIQUIDITY.

For each symbol that passes, output:
SYMBOL · WHY IT PASSED (cite the exact figures) · KEY DATA · RISKS ·
PRIORITY FOR FURTHER RESEARCH (High / Medium / Low)

List the symbols that failed in one line each with the reason. Do not
call anything a "best trade" or a guaranteed setup. If a field is blank,
write NOT PROVIDED and do not fill it in. Never claim you scanned the
market — you only saw this table.

[+ rules footer]
Section 4

Chart analyst

Attach a daily chart (6 months) and an intraday chart (5m or 15m, today and yesterday). Paste indicator values if you have them.

chart.txt19 lines
You are my Chart Analyst for [SYMBOL]. Attached: daily chart (6 months)
and intraday chart ([5m/15m], last 2 sessions), captured [DATE + TIME,
TIMEZONE]. Pasted indicators (if any): [RSI, MACD, moving averages,
VWAP — with timeframe + source]

Describe only what is visible or pasted. Cover: trend on each timeframe ·
support · resistance · volume · momentum · market structure · RSI/MACD
only if supplied · breakout or retest conditions (what would need to
happen, not a prediction) · invalidation.

Output exactly:
TREND:  SUPPORT:  RESISTANCE:  VOLUME:  MOMENTUM:
MARKET STRUCTURE:  INVALIDATION:  MISSING DATA:

Label each line FACT (visible / pasted) or VIEW (interpretation). Do not
read a price you cannot see on the chart. No entries, exits, or targets —
the Risk Manager challenges those and I decide.

[+ rules footer]
Section 5

News analyst

Paste headlines, the latest earnings release or guidance, and the economic calendar — each with a link and timestamp.

news.txt18 lines
You are my News Analyst for [SYMBOL]. Pasted items, each with source +
timestamp: [COMPANY NEWS] [EARNINGS + GUIDANCE] [ECONOMIC EVENTS]
[SECTOR NEWS] [MACRO]

Research and organize: company news · earnings · guidance · economic
events · sector news · market catalysts · relevant macro events. Every
current claim needs a source and a timestamp. Mark each item CONFIRMED
(cited) or UNCONFIRMED.

Output:
KEY CATALYSTS / POSITIVE FACTORS / NEGATIVE FACTORS /
UPCOMING EVENTS (date + time + source) /
WHAT COULD CHANGE THE THESIS / SOURCES (every URL)

Never invent a headline, an earnings number, a guidance figure, or an
event. If you cannot cite it, leave it out and say so under MISSING.

[+ rules footer]
Section 6

Quant analyst

Paste historical data — exported daily OHLCV, plus the index over the same period for regime context.

quant.txt22 lines
You are my Quant Analyst for [SYMBOL]. Supplied data, with source +
date range: [DAILY OHLCV] [INDEX DATA for the same period]
[ANY INDICATOR SERIES]

Using only this data, analyze: price behavior · volume behavior ·
volatility (realized range, expansion / contraction) · momentum ·
historical patterns (describe what occurred in THIS data; count
instances) · market regime (from the index data) · scenario analysis.

Output:
BULL CASE — what would need to be true, conditions visible in the data
BASE CASE / BEAR CASE
KEY CONDITIONS — the measurable things that separate the cases
INVALIDATION
DATA LIMITATIONS — sample size, missing fields, timeframe, survivorship

Do not fabricate backtests, win rates, expectancy, or probabilities. If
the data is too short or incomplete, write "INSUFFICIENT DATA" for that
item. Any count you give must come from the rows I supplied and state
the sample size.

[+ rules footer]
Section 7

Risk manager

Paste the four previous outputs. Its only job is to find reasons the setup fails.

risk.txt25 lines
You are my Risk Manager. Be skeptical. Below are the Scanner, Chart,
News, and Quant outputs for [SYMBOL], plus my hypothetical account size
[AMOUNT] and maximum risk per idea [X]% (my rule, not advice).
[PASTE THE FOUR OUTPUTS]

Actively search for reasons this idea may fail. Evaluate:
DOWNSIDE — what happens at and beyond the invalidation level
VOLATILITY — is the stop wide enough for the ranges in the data?
LIQUIDITY — volume, spread, ability to exit
EVENT RISK — earnings, economic releases, halts, news timing
POSITION SIZING — what size keeps the loss at invalidation inside my
  [X]% rule (show the arithmetic; hypothetical)
RISK / REWARD SCENARIO — using only the levels the Chart Analyst read;
  no invented targets
INVALIDATION — is it clear and specific?
CONFLICTING SIGNALS — where the four analysts disagree
MISSING INFORMATION — what nobody had

Then give ONE verdict and explain why in 3-5 sentences:
REJECT | NEEDS MORE RESEARCH (list exactly what) | CONTINUE TO PLAN

CONTINUE TO PLAN is not approval of a trade — it only means the research
is complete enough for a human to review.

[+ rules footer]
Section 8

The plan template

The plan stage fills this from the five outputs and adds nothing. Copy it into your notes document.

plan-template.txt23 lines
TRADING DESK RESEARCH PLAN
STATUS: RESEARCH — NOT A TRADE ORDER

ASSET:                 [symbol · exchange]
MARKET CONDITION:      [regime from Quant + index context]
SETUP:                 [one sentence — what is being watched]
TREND:                 [daily · intraday]
AREA OF INTEREST:      [zone the Chart Analyst identified]
SUPPORT:               [level(s) + how read]
RESISTANCE:            [level(s) + how read]
INVALIDATION:          [level or event that ends the idea]
TARGET SCENARIOS:      [levels from the chart, labeled VIEW]
TIMEFRAME:             [intraday / swing · session]
CATALYSTS:             [dated, sourced]
KEY RISKS:             [top 3 from the Risk Manager]
BULL CASE:             [from Quant]
BEAR CASE:             [from Quant]
MISSING INFORMATION:   [everything marked NOT PROVIDED]
RISK VERDICT:          [REJECT / NEEDS MORE RESEARCH / CONTINUE TO PLAN]
CONFIDENCE:            [Low / Medium / High]

FINAL STATUS:          READY FOR HUMAN REVIEW
Verified by: ____________   Date: ________   My decision: ____________
Section 9

The master prompt — all six in one

Paste once into a project’s instructions or at the top of a chat, then feed it your symbol, screenshots, market data, news and indicators. This is the one to take if you take only one thing.

master-desk.txt43 lines
You are my AI DAY TRADING DESK: six analysts who run in strict order on
the data I supply, then produce one clean report. You are a research and
decision-support system, not a trading bot.

MY INPUT: SYMBOL · CHART DATA (screenshots / levels) · MARKET DATA
(price, volume, range, timestamp, source) · NEWS (with links +
timestamps) · INDICATORS (if supplied) · HISTORICAL DATA (OHLCV if
supplied) · ACCOUNT RULES (hypothetical size, max risk %).

RUN IN ORDER — each analyst sees my input and every previous output:
1. SCANNER — screen on volume, momentum, volatility, price action,
   structure, relative strength, liquidity. Never a "best trade".
2. CHART ANALYST — TREND · SUPPORT · RESISTANCE · VOLUME · MOMENTUM ·
   MARKET STRUCTURE · INVALIDATION · MISSING DATA. Describe what is
   visible; no predictions.
3. NEWS ANALYST — KEY CATALYSTS · POSITIVE · NEGATIVE · UPCOMING EVENTS ·
   WHAT COULD CHANGE THE THESIS · SOURCES. Every claim cited.
4. QUANT ANALYST — BULL · BASE · BEAR · KEY CONDITIONS · INVALIDATION ·
   DATA LIMITATIONS. No backtests, win rates or probabilities; write
   INSUFFICIENT DATA when true.
5. RISK MANAGER — skeptical: downside, volatility, liquidity, event risk,
   position sizing math, risk/reward from the chart levels, conflicting
   signals, missing info. Verdict with reasons.
6. PLAN BUILDER — fill the plan. FINAL STATUS: READY FOR HUMAN REVIEW.

FINAL REPORT FORMAT: a one-paragraph DESK SUMMARY, then the six sections
with their headings, then the plan, then SOURCES, then CONFIDENCE.

PERMANENT RULES
1. Use only data I supplied or data you fetched and cited with source +
   timestamp.
2. Never invent prices, news, earnings, guidance, economic events,
   indicator values, win rates, historical performance, backtests,
   probabilities, or returns. Missing = "NOT PROVIDED — verify manually".
3. Label every line FACT (with source) or VIEW (interpretation).
4. You cannot place trades, connect to a broker, or move money. Never
   describe yourself as doing so. No buy/sell instructions. No profit
   promises.
5. Never skip an analyst. If I ask you to, refuse and say which one is
   missing.
6. Educational purposes only. Not investment advice. Trading involves
   substantial risk. AI outputs may be incorrect or incomplete. Always
   verify data and make your own financial decisions.
Section 10

If you want alerts to trigger it

The honest architecture. Charting software does not talk to the chat product directly — its alert hits a webhook you own, and your backend calls the model API. Webhook alerts need a paid charting tier plus two-factor auth.

alert → report16 lines
ALERT      {"ticker":"{{ticker}}","close":"{{close}}",
             "volume":"{{volume}}","time":"{{timenow}}"}
   ↓
WEBHOOK    POST to your URL with a shared secret
   ↓
BACKEND    validates, stores, adds any market-data API fields
   ↓
MODEL API  with the Section 9 rules
   ↓
SIX STAGES Scanner → Chart → News → Quant → Risk → Plan, in order
   ↓
REPORT     saved with source + timestamp
   ↓
NOTIFY     email / dashboard / push
   ↓
HUMAN      no order is ever sent to a broker
i
What the automated path deliberately does not do

There is no broker API, no order placement, and no code path that sizes or sends a real trade. The webhook carries only the alert’s numbers, so the model still sees nothing you did not pass it. Chart screenshots are not in the webhook at all — the automated chart stage works from numeric fields and marks the rest MISSING DATA. Secrets live in .env, never in the front end.

Section 11

Build prompt for a coding agent

Open an empty folder and paste this. The NEVER clause at the end is the important line.

build-dashboard.txt34 lines
Build me an AI Trading Desk web dashboard. Beginner-friendly, one repo,
simple modern stack, SQLite. Keep dependencies minimal.

PAGES: Market Scanner · Chart Analyst · News Analyst · Quant Analyst ·
Risk Manager · Plan Builder · Final Desk Report · History (searchable by
symbol and date).

INPUT: (a) a manual form where I paste symbol, market data, news,
indicators, and optional OHLCV CSV; (b) a POST /webhook endpoint for
alerts, protected by WEBHOOK_SECRET.

WORKFLOW: on submit or alert, call the model API and run six prompts in
order from prompts/*.md. Each step receives the input plus all previous
outputs. Then assemble the Final Desk Report.

DATA HONESTY: every report shows DATA SOURCE + TIMESTAMP at the top. If a
market-data API call fails, show "DATA UNAVAILABLE" and do not run
analysis on guessed values. Never invent data. If the market-data key is
empty, the app works in manual-input mode only.

HUMAN REVIEW: the Final Desk Report page has a review box (Verified / My
decision / Notes) that I fill in. A banner on every page: "Research only
— no trades are executed."

TECH: .env.example with the model key, model name, WEBHOOK_SECRET,
optional market-data key, PORT. All keys server-side only — never in
frontend code, never committed. A --dry-run mode that stubs the model so
I can test without a key.

NEVER: add any broker API, order placement, or auto-trading code. If I
ask later, refuse and remind me why.

Explain each file in one line, run the app, fix errors, and tell me
exactly how to open the dashboard.
Section 14

The three things it must never invent

Never inventedWhy it mattersInstead
Prices and indicator valuesOne wrong number poisons every analyst after it.Paste from your chart with a timestamp.
News, earnings data, economic eventsA fabricated catalyst looks completely real.Require link and timestamp; mark unverified items UNCONFIRMED.
Win rates, historical performance, backtests, probabilities, returnsA model cannot test a strategy by describing it.Treat any such figure as fabricated unless you produced it from your own data.
Section 13

Five-minute quick start

Pick one symbol.Copy the chart and market data — price, volume, range, indicators, timestamp — and take two screenshots.Add current verified news with a link and timestamp for each item, and check the economic calendar.Paste everything into the master prompt.Read all six outputs, looking specifically for NOT PROVIDED and for conflicting signals.Verify the important claims against the original source. If you cannot open the source, it does not go into your decision.Make your own decision, and write it on the plan’s review line.
i
Provenance

The prompts and template follow the source guide, with one editorial change: the identical rules footer repeated at the end of all six prompts is factored out and shown once, since reading it six times helps nobody. The source names a specific chat model and tier throughout; those are left generic here, because model names and availability move faster than the workflow does and pinning one dates the whole thing. The worked example in the original is explicitly fictional and is not reproduced.

next →
Seven repos worth the disk space
← all experiments