@sherwoodagent/cli 0.53.3 → 0.53.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5196,8 +5196,10 @@ var DEFAULT_GRID_CONFIG = {
5196
5196
  allocationPct: 0.5,
5197
5197
  leverage: 5,
5198
5198
  // was 4 — +25% profit per RT
5199
- levelsPerSide: 15,
5200
- atrMultiplier: 2,
5199
+ levelsPerSide: 12,
5200
+ // disjoint-window winner — lowest MaxDD (18% vs 21-22%) at modest avg PnL trade-off
5201
+ atrMultiplier: 3,
5202
+ // ATR×3 dominates ATR×2 across all tested windows (lower fee burn)
5201
5203
  atrPeriod: 14,
5202
5204
  rebalanceDriftPct: 0.4,
5203
5205
  // was 0.55 — rebalance faster, keep levels near price
@@ -6762,7 +6764,7 @@ function parseTokenSplit(raw, tokens) {
6762
6764
  }
6763
6765
  function registerGridCommand(program2) {
6764
6766
  const grid = program2.command("grid").description("Grid trading strategy \u2014 ATR-based grid on BTC/ETH/SOL");
6765
- grid.command("start").description("Start the grid trading loop").option("--capital <usd>", "Starting capital in USD", "5000").option("--cycle <seconds>", "Cycle interval in seconds", "60").option("--tokens <list>", "Comma-separated token list", "bitcoin,ethereum,solana").option("--leverage <n>", "Leverage multiplier", "5").option("--levels <n>", "Grid levels per side", "15").option("--live", "enable live execution (places real orders on Hyperliquid)").option("--asset-indices <pairs>", "comma-separated token=index pairs (e.g. bitcoin=3,ethereum=4,solana=5)").option("--strategy <address>", "on-chain strategy contract address (enables on-chain executor)").option("--token-split <pairs>", "Comma-separated token=weight pairs (must sum to 1.0). Default: equal-weight.").action(async (opts) => {
6767
+ grid.command("start").description("Start the grid trading loop").option("--capital <usd>", "Starting capital in USD", "5000").option("--cycle <seconds>", "Cycle interval in seconds", "60").option("--tokens <list>", "Comma-separated token list", "bitcoin,ethereum,solana").option("--leverage <n>", "Leverage multiplier", String(DEFAULT_GRID_CONFIG.leverage)).option("--levels <n>", "Grid levels per side", String(DEFAULT_GRID_CONFIG.levelsPerSide)).option("--live", "enable live execution (places real orders on Hyperliquid)").option("--asset-indices <pairs>", "comma-separated token=index pairs (e.g. bitcoin=3,ethereum=4,solana=5)").option("--strategy <address>", "on-chain strategy contract address (enables on-chain executor)").option("--token-split <pairs>", "Comma-separated token=weight pairs (must sum to 1.0). Default: equal-weight.").action(async (opts) => {
6766
6768
  const capital = parseFloat(opts.capital);
6767
6769
  const cycleMs = parseInt(opts.cycle, 10) * 1e3;
6768
6770
  const tokens = opts.tokens.split(",").map((t) => t.trim());