model: deepseek
update frequency: weekly
weight: 0.25
promt:
You are executing a MECHANICAL rule. Almost nothing here is a judgement call.
Follow the steps in order and do not substitute your own preferences at any step.
STEP 1 — MEMBERSHIP. Use the constituents of the EURO STOXX 50 index. That index
has exactly fifty members by definition, so membership is a matter of fact and
not of ranking — you are not choosing the fifty largest, you are listing the
index. Include all 50 constituents. Do not skip a company because you lack a view on it, and do not
substitute one you find more interesting. Order deterministically: largest market
capitalisation first, ties broken alphabetically by ticker.
Positions are European listings — MIC XETR, XPAR, XLON, XAMS, XMIL, XMAD,
XSWX, XSTO, XCSE, XOSL, XHEL, XBRU, XDUB, XWBO.
Because membership is mechanical, two runs of this prompt a week apart must
contain essentially the SAME 50 companies. That is the point.
STEP 2 — DIRECTION, by rank, not by opinion. Rank those same 50 companies by
total shareholder yield — trailing dividend plus net buyback, as a percentage
of market capitalisation, highest first. Highest total yield ranks first.
- Ranks 1 to 35: LONG, positive confidence_score.
- Ranks 36 to 50 (the lowest-yielding 15): SHORT, negative confidence_score.
This is an ordinal rule over a fixed list. Applied twice it must give the same
answer, so do not override it with a qualitative view about a company's quality
or prospects.
STEP 3 — CONVICTION, by rank position. Set the MAGNITUDE of confidence_score
from the company's position in the STEP 2 ranking:
- rank 1 gets 0.90, falling linearly to 0.40 at rank 35;
- rank 50 gets 0.90, falling linearly to 0.40 at rank 36.
Round to two decimals. The sign comes from STEP 2.
STEP 4 — HORIZON. Set investment_horizon to the trading days until that company's next scheduled
results date or ex-dividend date, whichever comes first, plus 25. This universe
reports and pays on staggered calendars, so the number differs by name.
STEP 5 — SIZE. Set return_prediction to that company's total shareholder yield itself, capped
at 0.25.
The thesis: in a large-cap European universe, cash actually returned to
shareholders is a stable discriminator, and the extremes of that ranking behave
differently from the middle. All the alpha is in STEP 2 and STEP 5. None of it
is in choosing which companies appear.
REPRODUCIBILITY — this is the most important instruction in this prompt.
Use the lowest temperature, or the equivalent deterministic / most-reproducible
setting available to you. This prompt will be re-run on a schedule and the
output must be substantially the SAME SET of companies each time. Two runs a
week apart should overlap by well over 80% of names. Achieve that by:
- Selecting from the fixed universe named above, not from whatever is in the
news this week.
- Ranking on the slow-moving company attributes named above. Do not let a recent
price move, a single headline, or a fresh announcement change the ranking.
- Breaking ties deterministically: if two companies rank equally, prefer the one
whose ticker sorts earlier alphabetically.
- Returning EXACTLY 50 companies, always. Never return fewer because you are
unsure — if you cannot confirm an identifier for your 50th choice, move to the
next-ranked company in the universe and include that instead.
Use web search to VERIFY current facts and identifiers. Do not use it to
discover a new candidate set each run — the universe and the ranking rule are
fixed above and they are what determine membership.
OUTPUT CONTRACT — follow exactly:
Return ONLY a JSON array of exactly 50 objects. No prose, no commentary, no
markdown fence, no explanation before or after.
{"company_name": str, "ticker": str, "isin": str, "mic": str,
"confidence_score": float, "investment_horizon": int, "return_prediction": float}
- "confidence_score": a number in [-1.0, 1.0]. THE SIGN IS THE DIRECTION —
positive is long, NEGATIVE IS SHORT. Magnitude is conviction.
- "return_prediction": a number >= 0.0, ALWAYS. The unsigned MAGNITUDE of the
move expected over the horizon, as a decimal (0.045 = a 4.5% move). Never
negative; a short's direction lives in the negative confidence_score.
- "investment_horizon": trading days, an integer. Derive it from the company's
own reporting cadence and the rule stated above, so it is reproducible and
still differs across names. Do not reuse one number for every position.
- "ticker": the plain exchange ticker only. No spaces, no Bloomberg-style
country suffix, no exchange suffix. Write "NDA" not "NDA FI", "NOVO-B" not
"NOVO B", "BHARTIARTL" not "BHARTIARTL.NS". The receiving system rejects
anything else and one bad ticker voids the whole submission.
- "isin": the real 12-character ISIN of that listing line, valid ISO 6166 check
digit. "mic": the ISO 10383 operating MIC of the venue you are pricing.
Verify both by search.