Futures
Access hundreds of perpetual contracts
CFD
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
CFD
U.S. stock CFD derivatives
US Stocks
Access real US stocks and ETFs
HK Stocks
Trade quality Hong Kong-listed stocks
Stock Futures
High leverage, 24/7 trading
Tokenized Stocks
Backed by real stock assets
IPO Access
Unlock full access to global stock IPOs
GUSD
Mint GUSD for Treasury RWA yields
Stocks Activities
Trade Popular Stocks and Unlock Generous Airdrops
Launch
CandyDrop
Collect candies to earn airdrops
Launchpool
Quick staking, earn potential new tokens
HODLer Airdrop
Hold GT and get massive airdrops for free
IPO Access
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
Promotions
AI
Gate AI
Your all-in-one conversational AI partner
Gate AI Bot
Use Gate AI directly in your social App
GateClaw
Gate Blue Lobster, ready to go
Gate for AI Agent
AI infrastructure, Gate MCP, Skills, and CLI
Gate Skills Hub
10K+ Skills
From office tasks to trading, the all-in-one skill hub makes AI even more useful.
another bug that weaseled its way into my positions today that i detect for the first time in 9 months.
so for every group of wallets (which i call portfolio), I have a model allocated to it. each model has its own iteration, so that i can keep track of changes within that model and everything is logged.
on any day the desired positions are logged into my database according to their portfolio, model, iteration, etc.
but i havent done much of turning old models on/off within a specific portfolio. id just deactivate the portfolio and start a new one.
apparently, the the LIVE positions were being merged with the model's output positions but NEVER took into consideration the iteration of the model, because once again, when i built it, even though i set in the db an identification for that iteration, I wasnt thinking about changing iterations for specific portfolios.
so when the model ran, now with a different iteration from yesterday, the positions from today and yesterday were merged and the stale position that shouldnt be on todays model, found a pairing on the stale iteration thats no longer used, so never triggered an exit.
i actually found this by accident today but wont happen again as I set a new control for this.
sometimes you just gotta figure out as you move and do things.
not big damage, but things like these break all the time. maybe skill issue on my part but it happens to me often.