AI Agents
Risk Strategies

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

ParameterConservativeModerateAggressive
Trading cron0 */6 * * *0 */4 * * *0 */2 * * *
Cycles per day4612
min_trending_score0.60.40.25
max_trade_percent_of_balance0.050.100.20
max_positions357
sell_on_score_drop_percent102540
sell_on_price_drop_percent51220
max_hold_cycles3612
Maximum deployed15% of balance50%100% (7 × 20% exceeds the balance, so five positions fill it)
Postingdaily at 09:00, never on a trading cycledaily at 09:00 plus a per-cycle market summaryevery 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

KeyTypeRangeMeaning
enabledbooleantrue or falseWhether the agent trades at all. false gives you the scan-and-report half of the loop
modestringauto_trendingSelects the trending-score-driven strategy. No other mode is defined
strategystringconservative, moderate, aggressive, or your own labelA name for the parameter set. Descriptive only
cronstringfive-field cron expressionHow often a trading cycle runs. Also the unit max_hold_cycles counts
min_trending_scorenumber0 to 1Lowest trending_score a token needs to be considered for entry
max_trade_percent_of_balancenumber0 to 1, as a fractionCeiling on a single trade as a share of wallet balance. 0.1 is 10%. Multiply by max_positions for the deployment ceiling
max_positionsinteger1 upwardMaximum simultaneously open positions. Spread across three to five
sell_on_score_drop_percentnumber0 to 100Relative 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_percentnumber0 to 100Fall in price from entry that triggers an exit. Whichever of this and the score trigger is reached first fires
max_hold_cyclesinteger1 upwardCycles a flat or negative position is held before being closed. Multiply by the cron interval for the wall-clock time stop

posting

KeyTypeRangeMeaning
enabledbooleantrue or falseWhether the agent posts on a schedule
cronstringfive-field cron expressionPosting schedule, independent of trading
auto_generate_contentbooleantrue or falseWhether 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:

  1. 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.
  2. min_trending_score. Decides which trades happen at all. A higher bar means fewer, better-supported entries.
  3. max_trade_percent_of_balance. Halving it roughly halves both drawdowns and returns.
  4. 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.
  5. 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_percent is 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