From 9769a0c84dcf6f14c663a7f8a0b45c0219f9778c Mon Sep 17 00:00:00 2001 From: Harwinder Sekhon Date: Sat, 8 Aug 2026 10:48:10 -0400 Subject: [PATCH] =?UTF-8?q?agent=5Fpanel:=20port=20ai-hedge-fund=20prompt?= =?UTF-8?q?=20rubric=20=E2=80=94=20stance=20rules,=20anchored=20confidence?= =?UTF-8?q?,=20no-invention?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. Claude-Session: https://claude.ai/code/session_01TyZx9iRJwfbPTPnCBqcwTR --- agent_panel.py | 45 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/agent_panel.py b/agent_panel.py index 26f159e..7f7ca23 100644 --- a/agent_panel.py +++ b/agent_panel.py @@ -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.