Pump.fun 新币动量接力策略(Jupiter 多层风控)
Pump.fun Launch Momentum & Flow Strategy (Jupiter Risk Controls)
Live-trading risk notice: Setting Enable Live Trading to 1 lets this strategy submit real buy and sell transactions on Solana. A Pump.fun token can lose liquidity or become worthless quickly. Stops, slippage settings, priority fees and account limits cannot guarantee execution or cap the final loss. Use a dedicated wallet and verify each step with a very small amount you can afford to lose.
1. Strategy Principle
The strategy uses Jupiter’s pump.new interface to find SOL-quoted Pump.fun launches. It filters token and creator data before placing candidates in an observation pool. It does not buy immediately at launch: token age, observation time, bonding-curve progress, recent price change and pullback must qualify. When on-chain flow is enabled, it also reads trades and holders. The flow score combines progress slope, net inflow, unique buyers, buy/sell ratio, new-buyer growth and holder spread. Creator selling, unabsorbed large sells, concentrated wallets and early-sniper holdings can veto entry.
Once a signal qualifies, the strategy obtains an executable buy quote and an immediate-sell quote to estimate price impact and round-trip cost. Account controls and available wallet SOL determine the final size. A score or quote is an entry filter, not a token safety audit or return forecast.
2. Discovery, Observation and Entry
Static filters cover non-SOL quotes, the special mayhem flag, token name and symbol blocklists, optional keywords, creator allowlists and blocklists, creator launch frequency, duplicate symbols, developer first-buy size, repeated first-buy amounts and missing metadata. Some counters span only the current run and are not a complete on-chain history.
During observation, pump.info is read at normal or near-entry intervals. A candidate usually waits if progress, rise, pullback or flow score is temporarily insufficient. It is discarded when aged out, migrated or explicitly vetoed. Missing chain-flow data causes conservative waiting when the flow module is enabled. Entry also requires a usable pump.quote, no curve crossing and acceptable estimated buy impact and round-trip cost.
3. Positions, Exits and Account Risk
Each buy is capped by the fixed order limit, strategy equity fraction, remaining exposure and available live-wallet SOL. A configured reserve and fee buffer remain untouched by new buys. Positions are valued from executable sell quotes. The strategy checks pre-migration exit, suspected dumps, curve retreat, creator selling and on-chain distribution, partial profit taking, break-even, fixed stop, post-profit trailing stop, weak momentum and maximum holding time. An exit trigger means an attempt to sell, not a guaranteed fill.
Account controls include Beijing-time daily realized loss, losing-streak cooldown, drawdown of realized strategy equity, rolling hourly buy count, consecutive API failures and prior-loop duration. Existing positions remain under management during an entry halt. Strategy equity is configured capital plus cumulative realized P&L, not total wallet equity; unrealized losses can occur before an account-level drawdown stop fires.
4. Startup Checks and Live Orders
The robot must have exactly one Jupiter exchange object. Live mode requires a SOL_* pair, a dedicated storage namespace, readable SOL balance and enough funds for the reserve, minimum order and fee/token-account buffer. A reliable Solana RPC is needed when on-chain flow is enabled; unavailable RPC data blocks the corresponding entry. Startup checks do not deposit funds, open positions or clean up wallet holdings.
The default pLiveTrading=0 is paper mode and records quotes only. Set it to 1 to permit real pump.buy and pump.sell orders. Live trades wait for receipts and use returned actual SOL and token amounts for accounting. Paper mode adds a delay, requotes and estimates fees. Paper and live ledgers are separate. The paper ledger resets at each start, while shadow samples may persist across restarts.
5. Orders, Reconciliation and Exceptions
Before a real order, the strategy persists the trade intent and locks new entries. After a definite receipt, it saves the fill and position before releasing the order lock. Missing receipt fields, uncertain outcomes or abnormal sell quantities keep the lock in place to prevent blind resubmission. A buy quantity outside the quoted slippage tolerance pauses later entries for review. A request timeout is not proof of on-chain failure.
At startup, pump.holdings is compared with the local ledger token by token. Unexpected wallet tokens, vanished positions or quantity differences block new entries. The strategy does not infer an uncertain trade outcome from a lagging balance. Check chain hashes, token and SOL changes, fees and ledger cost before clearing a reconciliation lock. Manual Liquidate All, Emergency Halt and Liquidate, and Sell Token controls submit real transactions in live mode; verify wallet holdings afterward.
6. Detailed Parameter Guide
The values below are XML defaults, not necessarily the current settings of an existing robot. Most percentage parameters use 40 to mean 40%; pSlippage=0.05 is a fraction meaning 5%. Priority fees and order sizes are in SOL.
① Run and Safety
| Parameter | Default | Meaning and use |
|---|---|---|
Enable Live Trading pLiveTrading | 0 | Sole real-order switch. 0 keeps a paper ledger; 1 permits real buy and sell orders. Use a dedicated namespace and verify the wallet first. |
Loop Interval pInterval | 2 | Seconds to wait after a full loop; network and processing time are additional. Increase if the RPC is slow or rate limited. |
Storage Namespace pNamespace | test | Names the persistent ledger. Renaming starts a new ledger rather than migrating positions. Live mode rejects the default test name. |
② Capital and Positions
| Parameter | Default | Meaning and use |
|---|---|---|
Strategy Capital pCapital | 10 | Risk-accounting capital for proportional sizing and drawdown; it is not the wallet balance and does not transfer funds. |
Maximum Buy per Order pBuySol | 0.05 | Hard SOL limit per buy; equity fraction, remaining exposure and wallet availability may reduce the order. |
Minimum Buy per Order pMinBuySol | 0.01 | Skip an entry when the final affordable size falls below this value; fixed costs can overwhelm tiny orders. |
Maximum Equity Fraction per Buy pPosPct | 5 | Caps each buy as a percentage of strategy equity. Realized losses reduce equity and this cap. |
Maximum Concurrent Positions pMaxPos | 5 | Maximum number of open token positions; it does not bound the observation pool. |
Maximum Total Exposure pMaxExposure | 0.5 | Limit on remaining cost across all open positions in SOL, rather than their current market value. |
Wallet SOL Reserve pReserveSol | 3 | SOL that new live buys cannot consume, plus a separate priority-fee and token-account buffer. |
③ Account Risk
| Parameter | Default | Meaning and use |
|---|---|---|
Daily Realized Loss Limit pDailyLossSol | 0.25 | Stops new entries when realized net loss on the Beijing-time day reaches this SOL amount; open-position losses are excluded. |
Losing Closures before Cooldown pLossStreak | 4 | Number of consecutive losing full closes that triggers a cooldown and resets the streak counter. |
Cooldown Minutes pCoolMin | 120 | New-entry pause after the losing streak; existing positions remain under management. |
Drawdown Entry Halt pMaxDrawdown | 15 | Equity means configured capital plus cumulative realized P&L. A decline from its high-water mark halts entries until manually cleared. |
Maximum Buys per Hour pMaxBuysHour | 24 | Caps successful buys over a rolling 60-minute window. |
Consecutive API Errors pMaxErr | 10 | Triggers the entry circuit breaker after this many non-quote IO failures; token-specific quote failures are handled separately. |
API Circuit-Breaker Minutes pErrPauseMin | 10 | Duration of the entry pause after repeated API failures; other risk checks still apply after expiry. |
Maximum Data Latency pMaxLatency | 15 | If the previous loop exceeded this many seconds, the current loop avoids new entries on stale data. |
④ Launch Filters
| Parameter | Default | Meaning and use |
|---|---|---|
Minimum Developer First Buy pDevMin | 0 | Lower bound on the developer’s first SOL buy; zero disables the lower bound. It is not the current holding share. |
Maximum Developer First Buy pDevMax | 1 | Upper bound on the developer’s first SOL buy; zero disables it. Large initial holdings can increase dump risk. |
Launches per Creator pCreatorMax | 1 | Maximum launches seen from the same creator during this run; later candidates are filtered. |
Name/Symbol Keywords pKeywords | blank | A token name or symbol must contain at least one comma-separated keyword; blank disables the requirement. |
Name/Symbol Blocklist pBlacklist | test,rug,scam | Filter names or symbols containing any listed word. String matching cannot detect every malicious launch. |
Creator Allowlist pCreatorWhite | blank | Only follow these comma-separated creator addresses; blank allows any creator. |
Creator Blocklist pCreatorBlack | blank | Exclude listed creator addresses. Suspected dump creators can also enter the runtime blocklist. |
Repeated First-Buy Threshold pDevDupMax | 3 | Filter when the same developer first-buy amount appears this many times within ten minutes; zero disables the check. |
⑤ Observation and Entry
| Parameter | Default | Meaning and use |
|---|---|---|
Minimum Observation Time pObserveSec | 20 | Minimum seconds in the observation pool, distinct from token age since creation. |
Earliest Entry Age pMinAgeSec | 180 | Minimum seconds since token creation before entry can be considered. |
Maximum Entry Age pMaxAgeSec | 1800 | Drop an unbought candidate after this age, logging the last unmet condition. |
Normal Market-Info Interval pInfoSec | 15 | Minimum seconds between ordinary bonding-curve status reads per candidate; lower values consume more RPC capacity. |
Near-Entry Info Interval pFastInfoSec | 5 | Faster read interval when curve progress is within about three percentage points of the entry minimum. |
Low-Interest Check Age pDeadSec | 180 | Age at which progress is compared with the low-interest threshold. |
Low-Interest Progress Line pDeadProgress | 2 | Discard the candidate if progress remains below this percentage at pDeadSec. |
Minimum Curve Progress pMinProgress | 10 | Entry lower bound. Candidates below it wait instead of being blocklisted. |
Maximum Curve Progress pMaxProgress | 60 | Entry upper bound. Candidates above it wait until conditions change or they age out. |
Minimum Recent Rise pMinRise | 0 | Lower rise bound from the oldest retained observation price; zero disables it. This is not a fixed candle return. |
Maximum Recent Rise pMaxRise | 100 | Upper rise bound using the same samples; excessive rise is not chased. Zero disables it. |
Maximum Pullback from Recent High pMaxPullback | 15 | Wait when price has retreated more than this percentage from the observation-period high. |
Maximum Buy Price Impact pMaxImpact | 8 | Reject a buy quote whose reported price impact exceeds this estimate. |
Maximum Estimated Round-Trip Cost pMaxRoundTrip | 8 | Limit on estimated buy-then-immediate-sell loss using two quotes and estimated transaction fees. |
⑥ On-Chain Flow
| Parameter | Default | Meaning and use |
|---|---|---|
Enable On-Chain Flow pFlowOn | 1 | 1 checks recent trades and holders; missing flow data makes the entry wait. 0 disables the module. |
Transactions per Flow Sample pFlowTx | 40 | Maximum transactions parsed per sample; larger values can increase RPC use and loop duration. |
Flow Window pFlowWin | 60 | Seconds used for buys, sells, net inflow and unique-buyer statistics. |
Minimum Unique Buyers pMinBuyers | 12 | Base unique-buyer requirement within the flow window, separate from the score. |
Minimum Flow Score pMinScore | 60 | Minimum score out of 100 from slope, net inflow, buyers, buy/sell ratio, new-buyer growth and holder spread. |
Full-Score Progress Slope pGoodSlope | 3 | Curve-progress percentage points per minute needed for the full slope subscore. |
Full-Score Net Inflow pGoodNetSol | 3 | Window net inflow in SOL needed for the full inflow subscore. |
Full-Score Buyer Count pGoodBuyers | 10 | Unique buyers needed for the full buyer subscore; distinct from the minimum buyer gate. |
Large-Sell Threshold pBigSell | 0.3 | A single sell at or above this SOL value is evaluated for subsequent absorption. |
Large-Sell Absorption Window pAbsorbSec | 20 | Seconds after a large sell during which later buys are counted as absorption. |
Minimum Absorption Ratio pMinAbsorb | 0.8 | Later buy SOL divided by that sell SOL. A lower ratio vetoes entry. |
Largest-Wallet Share Limit pMaxTop1 | 8 | Maximum supply share held by one wallet after merging token accounts; exceeding it vetoes entry. |
Early-Sniper Share Limit pMaxSniper | 15 | Maximum combined current holding share of buyers from the creation slot and next slot, when measurable. |
Shadow Evaluation pShadowOn | 1 | Record features and executable returns after 3, 10 and 30 minutes for offline study; shadow evaluation itself never trades. |
Position Flow-Check Interval pFlowHoldSec | 6 | Seconds between on-chain flow checks during a position for creator sells and distribution. |
Dump SOL Threshold pDumpSol | 1 | Exit signal when ten-second sells reach this SOL amount and buys are less than 30% of sells. |
⑦ Execution and Exits
| Parameter | Default | Meaning and use |
|---|---|---|
Execution Slippage Fraction pSlippage | 0.05 | Order tolerance as a fraction: 0.05 means 5%, not 0.05%. It cannot guarantee the final fill stays within it. |
Priority-Fee Ceiling pPriorityFee | 0.0005 | Upper bound for dynamic priority fee; fixed fee when dynamic pricing is off. Unit: SOL. |
Dynamic Priority Fee pDynFee | 1 | 1 estimates from recent chain fees within bounds; 0 uses the fixed fee. |
Priority-Fee Floor pMinPriorityFee | 0.00005 | Lower bound for the dynamic fee, no greater than the ceiling. |
Estimated Compute Units pFeeCu | 150000 | Compute-unit estimate used to convert a per-unit priority price to a per-order fee. |
Paper Fill Delay pPaperDelay | 1500 | Milliseconds to wait before re-quoting a simulated buy or sell; simulated failures and deviations reflect this delay. |
First Take-Profit Gain pTp1 | 40 | Executable-quote unrealized gain that triggers the first profit-taking sale. |
First Take-Profit Sale Fraction pTp1Pct | 50 | Percentage of token inventory sold at the first take-profit; the remainder stays under exit controls. |
Post-Take-Profit Trailing Drawdown pTrail | 25 | Sell remaining inventory when executable value falls this percentage from its post-take-profit peak. |
Fixed Stop-Loss pStopLoss | 20 | Sell when executable value falls this percentage below remaining cost; actual execution is not guaranteed. |
Weak-Momentum Holding Time pStaleSec | 180 | Exit after this many seconds if gain remains below pStaleGain; zero disables this time condition. |
Weak-Momentum Gain Line pStaleGain | 5 | Minimum gain tested together with pStaleSec. |
Break-Even Activation Gain pBeAfter | 30 | After the position has reached this gain, an estimated return to cost triggers an exit attempt; zero disables it. |
Single-Loop Dump Drop pRugDrop | 40 | A drop in executable value from the prior reading triggers an emergency sell and creator blocklisting. |
Maximum Holding Time pMaxHoldSec | 600 | Attempt to sell after this many seconds; the order can still fail or return an uncertain result. |
Pre-Migration Exit Progress pExitProgress | 95 | Attempt exit when curve progress reaches this percentage or completion/migration is reported. |
Curve-Progress Retreat pProgDrop | 8 | Exit when progress falls this many percentage points from its in-position high; zero disables it. |
7. How to Use
- Import the XML or open the strategy, configure exactly one Jupiter exchange object and a
SOL_*pair. Provide a reliable Solana RPC. Do not let another robot or manual operator change the same strategy wallet concurrently. - Keep
pLiveTrading=0first. Confirm discovery, observation, quotes, shadow samples and dashboard state. Paper results test workflow, not real execution. - Before live operation, set a dedicated
pNamespace; check wallet SOL reserve, per-order and exposure limits, slippage and RPC capacity. Only then setpLiveTrading=1. Follow startup errors to correct configuration or balance. - With a very small amount, verify buy receipt, token delivery, actual SOL cost, partial sale, full sale, fees and post-sale wallet balance. Do not increase size on the basis of paper profits alone.
- For uncertain trades, ledger/wallet mismatches, excessive fill deviation or persistent RPC failures, reconcile the chain and repair the ledger before clearing locks or resuming entries. Do not blindly restart or repeat a sell order.
- After manual liquidation, token sale or emergency halt, verify transaction receipts, token balances and SOL proceeds. Pressing a control does not prove every position is flat.
8. P&L Display and Operational Notes
Dashboard strategy equity uses configured capital and realized P&L, while open-position P&L is estimated from executable sell quotes. Neither is the same measure as total wallet assets. Price impact, round-trip cost, fees and shadow returns contain estimates; actual chain execution may differ. In paper mode, a second confirmation of drained curve reserves can mark remaining inventory at zero. This does not imply that a live position can be sold.
The strategy depends on live on-chain data and does not support FMZ historical backtesting. Source syntax and parameter format have been checked, but this revised version lacks enough complete live-fill samples to establish profitability or recovery behavior. Pump.fun tokens can become worthless or illiquid, and RPC limits, confirmation delays, migration and extreme slippage can worsen results. Account risk limits cannot guarantee that actual losses stay within their configured values.
/* FMZ JavaScript:Pump.fun 打金狗(新币狙击 + 动量确认 + 分批止盈/移动止损 + 多层风控)v3.2
* v3.0:链上成交改按 pump TradeEvent 解析(不再认错代付钱包)、统计窗口固定、持仓按钱包合并、开盘抢筹钱包识别;
* 入场由十几条硬门槛改为打分制 + 少量一票否决;新增影子评估(不下单记录候选币之后 3/10/30 分钟收益);
* 模拟扣优先费并延迟重报价;离场增加“进度回落”;优先费可按网络动态定价。
* 交易所对象:exchanges[0] 为 Jupiter(Solana),交易对任意(如 SOL_USDC)。
* 接口:IO("pump.new") 发现新币、IO("pump.info") 曲线进度/市值、IO("pump.quote") 本地报价、
* IO("pump.buy"/"pump.sell") 下单、IO("pump.holdings") 对账。
* 思路参考 pump-fun-bot(监听新币→过滤→等待→买入→延时卖出),补充观察期动量确认、往返成本检查、
* 分批止盈、移动止损、砸盘检测、创建者自动拉黑,以及账户级风控(仓位/敞口/日亏/连亏冷却/回撤停机/故障熔断)。
* 默认“模拟”:只用 pump.quote 记账,不发交易。实盘须将“启用实盘交易”设为 1,并使用独立存档名称。
* 风险:新币绝大多数归零,开发者/捆绑钱包砸盘很常见;只用输得起的极小金额。
*/- 1