agent_panel: port ai-hedge-fund prompt rubric — stance rules, anchored confidence, no-invention
Prompt-only change (static constants; plain-language output contract byte-identical). Ported from virattt/ai-hedge-fund's persona rubric: - _TAKE_CONTRACT hard rules: reason only from the JSON given, never invent numbers/events/levels; thin or missing evidence -> neutral with confidence below 30 (deferring to role-specific rules). - Anchored confidence bands in the contract and synthesizer, replacing the unanchored "how sure you are". - Per-stance support/oppose/neutral criteria for macro, technical, and risk (risk's missing-setup->oppose folded into its oppose bullet). - One plain-language support example beside each oppose example for macro/technical/risk, fixing the all-oppose few-shot bias. Contrarian's designed skeptic tilt untouched. News-engine prompts untouched (pinned by 78/78 + 18/18 validations). 374 tests green; real-DeepSeek smoke: macro correctly answered neutral/20 on empty news context, confidences spread 20-60 across the bands, all notes <=25 words, no jargon. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TyZx9iRJwfbPTPnCBqcwTR
This commit is contained in:
+43
-2
@@ -77,6 +77,13 @@ geopolitical stress / weak dollar are gold-bullish.
|
||||
_TAKE_CONTRACT = """\
|
||||
Your review is advisory research on an already-generated signal; you are
|
||||
one voice on a panel, not the decision maker.
|
||||
Hard rules: use ONLY the data in the JSON you receive — do not invent
|
||||
numbers, events, or price levels. If the evidence your role needs is
|
||||
thin or missing, answer "neutral" with confidence below 30, unless your
|
||||
role's instructions say otherwise.
|
||||
Confidence scale (0-100): 80-100 strong one-sided evidence; 50-79 solid
|
||||
case with some doubt; 30-49 mixed evidence; below 30 little basis to
|
||||
judge.
|
||||
Write the note in plain everyday English for someone who has never
|
||||
traded: short simple sentences, no trading jargon, no acronyms, no
|
||||
abbreviations. Say "profit versus loss", not "RR"; "the 4-hour chart",
|
||||
@@ -100,10 +107,19 @@ number is out), a news "sentiment" score for gold, and an optional
|
||||
Judge ONE thing: does the macro backdrop support the proposed direction?
|
||||
Weigh released surprises over stale headlines; an imminent unreleased
|
||||
high-impact event is a reason for lower confidence, not a direction.
|
||||
Stance rules:
|
||||
- support: the released data and news flow clearly push gold in the
|
||||
proposed direction.
|
||||
- oppose: they clearly push gold the other way.
|
||||
- neutral: the picture is mixed or stale — or there are no meaningful
|
||||
headlines or events to judge (score that low confidence).
|
||||
""" + _GOLD_DOCTRINE + """\
|
||||
Example: brief direction BUY, headlines dominated by hawkish Fed
|
||||
repricing and a hot CPI print -> {"stance": "oppose", "confidence": 70,
|
||||
"note": "Inflation is running hot, so interest rates should stay high — that usually pushes gold down."}
|
||||
Example: brief direction BUY, headlines led by an escalating conflict
|
||||
and a soft jobs report -> {"stance": "support", "confidence": 75,
|
||||
"note": "Worries about war and a cooling economy usually send money into gold."}
|
||||
""" + _TAKE_CONTRACT
|
||||
|
||||
_TECH_SYSTEM = """\
|
||||
@@ -118,9 +134,18 @@ proposed direction? Look for indicators fighting each other, the signal
|
||||
fighting the regime (e.g. a BUY in trending_down), higher timeframes
|
||||
disagreeing, price pressed into a key level, or an exhausted move being
|
||||
chased.
|
||||
Stance rules:
|
||||
- support: the indicators, higher timeframes, and regime mostly agree
|
||||
with the proposed direction and none of the conflicts above appear.
|
||||
- oppose: one or more of those conflicts is present and serious.
|
||||
- neutral: the evidence genuinely cuts both ways, or too much of it is
|
||||
missing to judge (score that low confidence).
|
||||
Example: brief direction SELL in regime trending_up with H1 and H4 both
|
||||
BUY -> {"stance": "oppose", "confidence": 80,
|
||||
"note": "This bets on gold falling while the bigger picture still points up."}
|
||||
Example: brief direction BUY in regime trending_up with M15 and H1 both
|
||||
BUY and exhaustion 0 -> {"stance": "support", "confidence": 70,
|
||||
"note": "Every way of looking at the chart points up, so buying goes with the flow."}
|
||||
""" + _TAKE_CONTRACT
|
||||
|
||||
_RISK_SYSTEM = """\
|
||||
@@ -133,11 +158,23 @@ Judge ONE thing: is this setup's risk acceptable as constructed? Check
|
||||
reward-to-risk adequacy, stop distance versus the volatility regime
|
||||
(a tight stop in extreme vol dies to noise; a huge stop in low vol is
|
||||
oversized), spread as a fraction of the stop, and event landmines about
|
||||
to hit. A missing setup means the signal graded too low for one —
|
||||
oppose unless the rest is exceptional.
|
||||
to hit.
|
||||
Stance rules:
|
||||
- support: the likely reward clearly justifies the risk, the stop fits
|
||||
the current volatility, and no event landmine is imminent.
|
||||
- oppose: reward too thin for the risk, a stop mismatched to the
|
||||
volatility, spread eating a big share of the stop, an imminent
|
||||
high-impact event — or no setup at all (a missing setup means the
|
||||
signal graded too low for one; oppose unless the rest is
|
||||
exceptional).
|
||||
- neutral: acceptable but unremarkable — nothing dangerous, nothing
|
||||
attractive.
|
||||
Example: RR 1.4 with volatility extreme and a high-impact event due ->
|
||||
{"stance": "oppose", "confidence": 65,
|
||||
"note": "The possible profit is small for such wild price swings, and big economic news is due soon."}
|
||||
Example: RR 2.4 with normal volatility and no events due ->
|
||||
{"stance": "support", "confidence": 70,
|
||||
"note": "The possible profit is more than double the possible loss, and conditions look calm."}
|
||||
""" + _TAKE_CONTRACT
|
||||
|
||||
_CONTRARIAN_SYSTEM = """\
|
||||
@@ -164,6 +201,10 @@ Weigh the takes into ONE consensus on whether to act on the signal:
|
||||
or "NEUTRAL" (genuinely split or low conviction). Weigh a high-
|
||||
confidence oppose from any single analyst seriously — one strong veto
|
||||
can outweigh two lukewarm supports. Do not average blindly.
|
||||
Base the verdict and rationale ONLY on the takes given — do not add
|
||||
outside analysis.
|
||||
Confidence scale (0-100): 80-100 the panel clearly leans one way; 50-79
|
||||
a lean with real dissent; below 50 split or low conviction.
|
||||
Write the rationale in plain everyday English for someone who has never
|
||||
traded: short simple sentences, no trading jargon, no acronyms, no
|
||||
abbreviations.
|
||||
|
||||
Reference in New Issue
Block a user