diff --git a/index.html b/index.html
index 598ac0f..36d505e 100644
--- a/index.html
+++ b/index.html
@@ -738,9 +738,7 @@ footer{margin-top:34px;padding-top:22px;border-top:1px solid var(--border);color
const GAMMA = "https://gamma-api.polymarket.com";
const STARTING_BALANCE = 10000;
const STOP_LOSS_TIERS = [
- {id:"15",drawdown:0.15,sellFrac:0.33,label:"-15%"},
- {id:"30",drawdown:0.30,sellFrac:0.33,label:"-30%"},
- {id:"45",drawdown:0.45,sellFrac:1.00,label:"-45%"},
+ {id:"18",drawdown:0.18,sellFrac:1.00,label:"-18%"},
];
const GAIN_STOP_TIERS = [
{id:"75",gain:0.75,multiple:1.75,sellFrac:0.25,label:"+75%"},
@@ -1092,9 +1090,9 @@ function adaptiveDecision(cfg,p,rank,total,leaderEq){
mode="Recover";minConv+=6;maxNew=Math.max(1,maxNew-1);maxFrac*=0.72;reserve=0.08;
reason="in drawdown, so it tightens entries, shrinks bets, and waits for stronger confirmation.";
}
- if(ret<-15){
+ if(ret<-18){
mode="Crisis Guard";minConv+=12;maxNew=1;maxFrac=Math.min(maxFrac*0.45,0.045);reserve=0.16;
- reason="down more than 15%, so it stops chasing, keeps more cash, and only allows one high-conviction recovery trade.";
+ reason="down more than 18%, so it stops chasing, keeps more cash, and only allows one high-conviction recovery trade.";
}
if((p.cash/Math.max(eq,1))<0.12){maxNew=Math.max(1,Math.min(maxNew,2));reason+=" Cash is tight, so new entries are rationed.";}
const maxCap=cfg.kind==="whale"?0.34:0.18;
@@ -1167,10 +1165,10 @@ function gainStopLabel(pos){
function stopLossLabel(pos){
const done=doneStopLosses(pos),doneCount=STOP_LOSS_TIERS.filter(t=>done[t.id]).length;
const tier=STOP_LOSS_TIERS.find(t=>!done[t.id]);
- if(!tier)return "Stop loss: final tier fired";
+ if(!tier)return "Stop loss: fired at -18%";
const target=stopLossTarget(pos,tier);
- const sold=doneCount===0?"":`${Math.round(doneCount*33)}% sold; next `;
- return `Stop loss: ${sold}${tier.id==="45"?"sell all":"sell 33%"} at ${pct(target)} (${tier.label})`;
+ const action=tier.sellFrac>=1?"sell all":`sell ${Math.round(tier.sellFrac*100)}%`;
+ return `Stop loss: ${action} at ${pct(target)} (${tier.label})`;
}
function stopOutPosition(p,pos){
const proceeds=+(pos.shares*pos.current_price).toFixed(2);
@@ -1755,7 +1753,7 @@ function renderAgentBrief(cfg,p,st){
Trade Rule
${esc(cadence)}
- Stop Loss
Sell 33% at -15%, 33% at -30%, all at -45%
+ Stop Loss
Sell all at -18%
Gain Stop
Sell 25% at +75%, +150%, +300%
Policy Exit
${esc(exitRule)}
Best / Worst
${esc(bw.best)}
${esc(bw.worst)}
`;
@@ -2129,7 +2127,7 @@ function renderAgentReports(){
const thesis=agentPlainBlurb(row.c,st);
const plan=agentCompetitionPlan(row.c,row,rank,leader);
const line=reportPositionLine(row.p);
- const crash=row.ret<-15?`Drawdown guard: This account is down more than 15%, so new trades are throttled to one high-conviction entry with extra cash reserve. It is not trying to force a comeback.
`:"";
+ const crash=row.ret<-18?`Drawdown guard: This account is down more than 18%, so new trades are throttled to one high-conviction entry with extra cash reserve. It is not trying to force a comeback.
`:"";
return `
${row.c.emoji} ${row.c.name}
#${rank} ยท ${ret}
Strategy: ${esc(thesis)}
@@ -2178,7 +2176,7 @@ function agentChatReply(agentId,question){
return `My strategy: ${agentPlainBlurb(cfg,st)}\n\nCurrent adaptation: ${decisionSummary(p)}`;
}
if(/risk|stop|loss|gain|take profit|sell/.test(q)){
- return `My risk rules are mechanical:\n\nStop loss: sell 33% at -15%, another 33% at -30%, and all remaining at -45%.\nGain stop: sell 25% at +75%, another 25% at +150%, and another 25% at +300%.\n\nRecent risk behavior: ${recentActionSummary(p)}.`;
+ return `My risk rules are mechanical:\n\nStop loss: sell the full remaining position at -18% from entry.\nGain stop: sell 25% at +75%, another 25% at +150%, and another 25% at +300%.\n\nRecent risk behavior: ${recentActionSummary(p)}.`;
}
if(/plan|next|compete|leader|rank|catch/.test(q)){
return `${agentCompetitionPlan(cfg,row,rank,leader)}\n\nI am #${rank}. ${leader&&leader.c.id!==cfg.id?`${leader.c.name} leads at ${fmtUSD(leader.eq)}, so I am trailing by ${fmtUSD(leader.eq-row.eq)}.`:"I am currently defending the lead."}\n\nMy best near-term ideas from the current suggestion pool:\n${relevantSuggestionText(cfg)}`;