Futures
Access hundreds of perpetual contracts
TradFi
Gold
One platform for global traditional assets
Options
Hot
Trade European-style vanilla options
Unified Account
Maximize your capital efficiency
Demo Trading
Introduction to Futures Trading
Learn the basics of futures trading
Futures Events
Join events to earn rewards
Demo Trading
Use virtual funds to practice risk-free trading
Launch
CandyDrop
Collect candies to earn airdrops
Launchpool
Quick staking, earn potential new tokens
HODLer Airdrop
Hold GT and get massive airdrops for free
Pre-IPOs
Unlock full access to global stock IPOs
Alpha Points
Trade on-chain assets and earn airdrops
Futures Points
Earn futures points and claim airdrop rewards
Creating automated strategies for Polymarket, everyone is very cautious when deploying, but when disabling, hardly anyone talks about it — today I learned this lesson the hard way after 14 hours.
Three weeks ago, I stopped a strategy bot running on Polymarket. pm2 stop, saw the status turn to stopped, and thought the issue was resolved.
Today, I casually did a 10-minute server cleanup and restarted the process manager. That "dead" strategy from three weeks ago was revived and quietly ran for 14 hours in real money mode.
I checked the root cause — pm2 stop only marks the status as "stopped," it doesn't actually delete the process. As long as a batch start is triggered once, all "paused" processes are brought back.
This trap isn't unique to pm2; systemd, Docker, k8s all have the same problem: thinking they've stopped, but in fact, they haven't.
When building automated strategies for prediction markets, no matter what tools you use, stopping a strategy involves 5 steps:
1. Completely delete the service at the process manager level — (not just pause)
2. Remove its definition from the configuration file — (otherwise, it will resurrect itself during the next batch start)
3. Add a shutdown gate at the code entry point — (to prevent accidental wake-up)
4. Update your documentation or status table — (otherwise, in a couple of weeks, you'll forget whether this strategy was stopped)
5. If it involves a trading ledger, officially close the accounting cycle — (epoch), to prevent new data from mixing into the old strategy's records
Everyone is very careful when deploying, but often only do step 1 when disabling, considering it done. The real pitfalls are buried in steps 2 to 5.
14 hours of sample time didn't cause a loss, but this luck doesn't mean you'll be so fortunate next time.