Research ·
How 16 trend votes become a trade: one real 4-hour cycle
At 08:00 UTC on 29 September, AVAX scored 0.89 and was not bought, while Bitcoin scored 0.62 and was kept. Here is every vote and why that is the rule working, not a bug.
The strategy page gives the rules. This page follows them through one real decision: the bot's 08:00 UTC cycle on 29 September 2026, taken from the Binance demo account's records. The numbers below are exactly what the bot saw.
Step 1: sixteen questions per coin
For every coin the bot asks sixteen yes/no questions about the trend. Each answers +1 (up) or −1 (down). Here are the answers for five of the ten coins:
| Coin | Trend (5) | Momentum (5) | MACD (6) | Score | What happened |
|---|---|---|---|---|---|
| LINK | + + + + + | + + + + + | + + + + + + | 1.00 | Held |
| AVAX | + + + + + | + + + + + | + + + − + + | 0.89 | Waiting |
| ETH | + + + + + | − + + + + | + − + − + + | 0.64 | Held |
| BTC | − + + + + | − + + + + | + + + − + + | 0.62 | Held |
| BNB | − − + + + | − + + + + | + − + − + + | 0.38 | Not held |
Read each row left to right from fast to slow. For Bitcoin, the first trend vote (1-day average against 4-day average) and the first momentum vote (price against 7 days ago) are negative: the last few days were a dip. Everything slower still points up. That's what a pullback inside an uptrend looks like in votes.
Step 2: one score
Each family is averaged, then the three averages are averaged. For Bitcoin:
- Trend: 4 up, 1 down → (4 − 1) / 5 = 0.60
- Momentum: 4 up, 1 down → 0.60
- MACD: 5 up, 1 down → (5 − 1) / 6 = 0.67
- Score: (0.60 + 0.60 + 0.67) / 3 = 0.62
Because the three families are averaged first, the six MACD votes can't outvote the other two families just by being more numerous. Bitcoin was above its 50-day average, so long scores count in full; if it had been below, every long score would have been halved.
Step 3: who gets a seat
This is where it stops being obvious. The bot holds at most four coins. A new coin needs a score of at least 0.70 to get in; a coin it already holds is only sold when its score falls below 0.40.
- LINK (1.00) was already held. Stays.
- ETH (0.64) and BTC (0.62) were bought earlier, when their scores were above 0.70. They've cooled, but they're still above 0.40, so they stay.
- SOL (0.76) was held. Stays.
- AVAX (0.89), ADA (0.76) and DOT (0.76) all qualify, but all four seats are taken. They wait.
- BNB (0.38) doesn't qualify at all.
So a coin scoring 0.89 was not bought while a coin scoring 0.62 was kept. That looks backwards, and it's deliberate. If the bot swapped every time a slightly stronger coin appeared, it would trade constantly, pay fees on every swap, and a copier's account would churn with it. The gap between 0.70 in and 0.40 out means a position only changes when the trend has really changed. Those two thresholds came out of 144 backtests of how many coins to hold and when.
Step 4: how big
At that moment the four positions were Bitcoin 11.5% of the account, LINK 9.1%, ETH 7.9% and SOL 7.0%: about 36% of the account in total, each well below the 25% cap per coin. Sizes come from volatility, not from the score alone: the calmer a coin, the bigger its position, so each carries a similar amount of risk. That's why Bitcoin, usually the calmest of the ten, had the biggest position despite the lowest score of the four. Every position had a stop order on the exchange 25% below its entry.
What happens next
Nothing, until something crosses a line. If ETH's score falls below 0.40, it's sold at the next 4-hour close and the strongest waiting coin (AVAX, if it's still above 0.70) takes its place, one new position per cycle. If a position's target size drifts more than 30% from what's held, it's resized. Otherwise the bot does nothing, which is what it does most of the time.
You can see the current votes for every held coin, updated every 10 minutes, on the performance page.