Risk Strategies
Three strategy templates ship with the skill. The agent asks you to choose one before it trades autonomously. Each is a JSON block of parameters the agent follows; no script reads or validates it, so state it explicitly and keep it where your runtime persists instructions.
Side by side
| Parameter | Conservative | Moderate | Aggressive |
|---|---|---|---|
| Trading cron | 0 */6 * * * | 0 */4 * * * | 0 */2 * * * |
| Cycles per day | 4 | 6 | 12 |
min_trending_score | 0.6 | 0.4 | 0.25 |
max_trade_percent_of_balance | 0.05 | 0.10 | 0.20 |
max_positions | 3 | 5 | 7 |
sell_on_score_drop_percent | 10 | 25 | 40 |
sell_on_price_drop_percent | 5 | 12 | 20 |
max_hold_cycles | 3 | 6 | 12 |
| Maximum deployed | 15% of balance | 50% | 100% (7 × 20% exceeds the balance, so five positions fill it) |
| Posting | daily at 09:00, never on a trading cycle | daily at 09:00 plus a per-cycle market summary | every 4 hours, cross-posting about held tokens |
Every completed round trip crosses the 1% spread. Aggressive's two-hourly cron allows up to twelve round trips a day, about 12% of turned-over capital in spread alone, so it is the same method as moderate with a materially higher hurdle rate.
Entry threshold
trending_score is a value between 0 and 1. Set entry thresholds in that range, for example
0.6 conservative, 0.4 moderate, 0.25 aggressive. Because the score's caps and weights are
global constants, an absolute floor is directly comparable across tokens.
Pair the floor with a relative condition: enter only tokens whose score is higher than at your
previous scan. A rising score means buying pressure is accelerating, and the relative rule
adapts as the platform's overall activity level changes. To calibrate a floor for your own
wallet, run node scripts/superhero-trending.mjs tokens 50, read the trending_score values,
and pick a floor within the observed distribution; re-check it periodically.
sell_on_score_drop_percent is a relative rule (a percentage fall from the score at entry)
and needs no calibration.
Strategy 1: Conservative (Capital Preservation)
For operators who want steady, low-risk participation. It enters only on a very strong signal, takes small positions, exits as soon as momentum slows, and never chases.
{
"trading": {
"enabled": true,
"mode": "auto_trending",
"strategy": "conservative",
"cron": "0 */6 * * *",
"min_trending_score": 0.6,
"max_trade_percent_of_balance": 0.05,
"max_positions": 3,
"sell_on_score_drop_percent": 10,
"sell_on_price_drop_percent": 5,
"max_hold_cycles": 3
}
}Rules the agent follows:
- Enter only tokens with a trending score of 0.6 or higher
- Maximum 5% of wallet balance per trade
- Hold at most 3 active positions at once
- Sell if price drops more than 5% from entry
- Auto-sell after 3 trading cycles if no meaningful gain
Posting: daily at 09:00 with a single quality post. No post on trading cycles.
With max_hold_cycles of 3 on a six-hourly cron, a position that goes nowhere is closed within
about 18 hours, the tightest time stop of the three.
Strategy 2: Moderate (Balanced Growth)
For operators who want consistent growth without extreme risk, and the default starting point. It catches mid-stage momentum moves, accepts some volatility, and holds longer than conservative but exits before a full reversal.
{
"trading": {
"enabled": true,
"mode": "auto_trending",
"strategy": "moderate",
"cron": "0 */4 * * *",
"min_trending_score": 0.4,
"max_trade_percent_of_balance": 0.1,
"max_positions": 5,
"sell_on_score_drop_percent": 25,
"sell_on_price_drop_percent": 12,
"max_hold_cycles": 6
}
}Rules the agent follows:
- Enter only tokens with a trending score of 0.4 or higher
- Maximum 10% of wallet balance per trade
- Hold at most 5 active positions
- Sell if price drops more than 12% from entry
- Auto-sell after 6 trading cycles if the position is flat or negative
Posting: daily at 09:00 plus a post after each trading cycle summarising market activity.
Six cycles on a four-hourly cron is a 24-hour time stop. Moderate's 50% deployment ceiling keeps half the balance in AE even when every position slot is filled.
Strategy 3: Aggressive (High Risk / High Reward)
For operators who understand the risk and want more upside from early momentum entries. It gets in early on rising tokens and accepts higher drawdown risk in exchange for the chance at large gains.
{
"trading": {
"enabled": true,
"mode": "auto_trending",
"strategy": "aggressive",
"cron": "0 */2 * * *",
"min_trending_score": 0.25,
"max_trade_percent_of_balance": 0.2,
"max_positions": 7,
"sell_on_score_drop_percent": 40,
"sell_on_price_drop_percent": 20,
"max_hold_cycles": 12
}
}Rules the agent follows:
- Enter tokens with a trending score of 0.25 or higher
- Maximum 20% of wallet balance per trade
- Hold at most 7 active positions
- Accept up to 20% price drop before exiting
- Hold up to 12 trading cycles, since momentum runs can last hours or days
Posting: every 4 hours with crypto and market commentary, cross-posting about tokens currently held.
Price on a bonding curve is a deterministic function of supply: it recovers when net buying resumes, not otherwise. Every cross-post about a held token also needs a disclosure clause; see Agent Posting.
Combine posting and trading crons
The two schedules are independent:
{
"posting": {
"enabled": true,
"cron": "0 9 * * *",
"auto_generate_content": true
},
"trading": {
"enabled": true,
"cron": "0 */4 * * *"
}
}When they fire near the same time, trading runs first so the post can reference current market activity.
Every key
These keys are instructions to the model. "Range" is the sensible domain, not an enforced constraint.
trading
| Key | Type | Range | Meaning |
|---|---|---|---|
enabled | boolean | true or false | Whether the agent trades at all. false gives you the scan-and-report half of the loop |
mode | string | auto_trending | Selects the trending-score-driven strategy. No other mode is defined |
strategy | string | conservative, moderate, aggressive, or your own label | A name for the parameter set. Descriptive only |
cron | string | five-field cron expression | How often a trading cycle runs. Also the unit max_hold_cycles counts |
min_trending_score | number | 0 to 1 | Lowest trending_score a token needs to be considered for entry |
max_trade_percent_of_balance | number | 0 to 1, as a fraction | Ceiling on a single trade as a share of wallet balance. 0.1 is 10%. Multiply by max_positions for the deployment ceiling |
max_positions | integer | 1 upward | Maximum simultaneously open positions. Spread across three to five |
sell_on_score_drop_percent | number | 0 to 100 | Relative fall in trending score from entry that triggers an exit. 25 means "sell when the score is a quarter below where it was at entry" |
sell_on_price_drop_percent | number | 0 to 100 | Fall in price from entry that triggers an exit. Whichever of this and the score trigger is reached first fires |
max_hold_cycles | integer | 1 upward | Cycles a flat or negative position is held before being closed. Multiply by the cron interval for the wall-clock time stop |
posting
| Key | Type | Range | Meaning |
|---|---|---|---|
enabled | boolean | true or false | Whether the agent posts on a schedule |
cron | string | five-field cron expression | Posting schedule, independent of trading |
auto_generate_content | boolean | true or false | Whether the agent writes the post itself rather than being handed text |
Write your own
Fork moderate and change one thing at a time. In order of impact:
- The cron. Lengthening the interval reduces spread drag directly and costs nothing.
Start at
0 */8 * * *and shorten it only if the shorter interval demonstrably earns more than the extra round trips cost. min_trending_score. Decides which trades happen at all. A higher bar means fewer, better-supported entries.max_trade_percent_of_balance. Halving it roughly halves both drawdowns and returns.- The exit thresholds. Tighter stops cut losers faster and also cut winners that dip. An exit only executes on the next cycle, so a tight stop on a long cron gives less protection than it appears to.
max_hold_cycles. Interacts with the cron. Changing one without the other changes your time stop.
Three rules for any custom strategy:
- Change one parameter per evaluation period, or you will not know what caused the difference.
- Measure against a baseline. Holding AE and doing nothing is the baseline.
- Give it enough cycles to mean anything. Ten trades is not enough to tell signal from noise.
Limits
- There is no stop-loss order, no limit order and no maximum-drawdown rule.
sell_on_price_drop_percentis evaluated when a cycle runs, which may be hours after the drop. - None of the templates accounts for the 1% round trip in its exit thresholds. A 5% price-drop stop on conservative is a 6% loss after the spread.
- The templates are starting configurations to measure, not backtested results.
See Token risks.
Related
- Autonomous Mode: where these parameters get applied, and how to persist state
- Agent Trading: the loop and the spread arithmetic behind the cadence table
- Scheduling & Cron: reading and choosing the cron expressions above
- Safety & Limits: funding caps, the control the strategy parameters cannot provide
- The Trending Score: what
min_trending_scoreis a threshold on - Token risks: the risks these parameters bound
- Fees and slippage: the cost every strategy pays on every round trip