# Crypto research

> Months of models, wallet analysis and paper trading—and learning to question the experiment itself.

Personal research · 2026

Category: Tools & research

[Open in the interactive portfolio](<https://zaki.somehow.engineer/#built/1>)

[Français](<https://zaki.somehow.engineer/read/fr/crypto-research.md>)

## At a glance

| Metric | Value |
| --- | --- |
| My role | Personal research & development |
| Period | 2026 · several months |
| Data | 15-minute candles · 22 tokens |
| Trading | Paper mode · Telegram monitoring |

## The question

I spent months exploring whether I could find a useful signal in crypto market data. I wanted to understand the problem for myself, so I built tools to study wallet behavior, trained models on price histories, explored Reddit text and ran paper-trading bots with Telegram monitoring.

## Building the experiments

The work grew across several projects. Wallet analysis involved collecting transactions and reconstructing positions. A price-modeling pipeline used 15-minute candles across 22 tokens, with roughly 1.49 million recorded candle rows. More than 1,000 candidate features were narrowed to 300 for modeling.

Different experiments asked different questions. Predicting a future price direction and identifying current market conditions are separate tasks, even when their scores appear beside each other. I also studied whether collective buying and selling by large wallets contained a useful signal.

Python · Pandas / Parquet · LightGBM · Optuna · SQLite · Telegram

| Value | Metric |
| --- | --- |
| 22 | Tokens studied |
| ≈ 1.49M | Recorded candle rows |
| 300 | Selected features |
| 4 h | Direction-label horizon |

## The result that changed the story

Some early results looked very strong. Comparing historical calculations with the information available during paper trading exposed future information in the features. Completed hourly bars were being used at timestamps before those bars had finished, and a decomposition method used later data when calculating earlier values.

The correction used completed past bars and trailing windows. In the recorded rebuild, direction accuracy fell from 65.7% to 43.3%. That changed what I could conclude from the experiment.

| Value | Metric |
| --- | --- |
| 65.7% | Before correction · invalidated |
| 43.3% | After correction |
| −22.4 pp | Accuracy difference |

> Regime accuracy remained around 91.7%, but that model classified current market conditions. It did not predict future prices, so its score is not comparable to direction accuracy.

### Images and media

[Correcting the features lowered the score and changed the interpretation. The earlier result is invalidated.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/direction-correction.en.png>)

Recorded direction accuracy: invalidated 65.7% before correction and 43.3% after, a 22.4 percentage-point decrease.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/direction-correction.en.svg>)

Credit: Chart prepared for this portfolio from the 21 March 2026 research decision, recorded in the review notes. Experiments not rerun.

[One corrected leakage mechanism: use the last genuinely completed candle. Explanatory schematic, not market-price data.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/completed-candle.en.png>)

Schematic showing that at 00:15 the 00:00–01:00 candle is unfinished, while the preceding completed candle is available.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/completed-candle.en.svg>)

Credit: Chart prepared for this portfolio from the documented completed-bar correction. Experiments not rerun.

## Test other sources of signal

I also studied collective activity from large wallets. The saved whale-flow report examined 1,470 consensus-filter combinations; none survived its stated multiple-testing correction. That finding concerned the tested setup, rather than proving that all market signals are unusable.

Another avenue used MiniLM embeddings of Reddit text and a learned projection. The contrastive-learning report recorded 268,975 training posts, 18,748 held-out test posts and 50.5% held-out post accuracy. Its conclusion was “NO SIGNAL”. This was a different task from the three-class price-direction model.

### Images and media

[The scale and result of a separate text experiment, without comparing its accuracy directly to the price model.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/reddit-experiment.en.png>)

Reddit split sizes: 268,975 training posts and 18,748 held-out test posts; recorded post accuracy 50.5%, with a no-signal report conclusion.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/reddit-experiment.en.svg>)

Credit: Chart prepared for this portfolio from the saved Reddit contrastive report, recorded in the review notes. Experiments not rerun.

## Follow whales with a paper-trading bot

I built a bot that watched selected large wallets and used their activity to trigger simulated positions, with Telegram monitoring. That turned the wallet research into an end-to-end experiment: detect a signal, open a paper position, follow it and record the exit.

The bot’s monitoring reported roughly +28 SOL in paper PnL. The later audit reconciled the final reset period, from 13 April to 18 May 2026, to +27.63 SOL-labelled units across 1,367 matched closed positions, starting from 11.81 units of simulated capital. The original monitoring filter showed +28.40; normalizing the timestamps included additional losses.

It was an encouraging milestone after months of research: the whale-following pipeline was running and producing a positive result in its own simulation. I then examined how much of that result depended on the simulator’s assumptions and a few exceptional recorded winners.

The broader crypto-follow ledger contains 4,515 buys and 4,435 sells from 2 April to 18 May 2026, all paper-marked. Those 8,950 rows count buys and sells separately and cover a longer period than the final-reset result above. The code connected them to Telegram alerts labelled [PAPER].

| Value | Metric |
| --- | --- |
| ≈ +28 | SOL-labelled paper PnL |
| 1,367 | Matched closed positions · final period |
| 11.81 | Initial simulated capital · SOL units |

> Historical simulator result, not verified SOL profit. The later audit found accounting, currency-conversion and fill-price limitations; the next section explains the sensitivity checks.

### Images and media

[8,950 records does not mean 8,950 completed positions. This chart shows recorded activity, not profitability.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/paper-records.en.png>)

4,515 buys and 4,435 sells, totaling 8,950 individual paper-trading records.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/paper-records.en.svg>)

Credit: Chart prepared for this portfolio from read-only SQLite aggregates recorded on 5 November 2026. Experiments not rerun.

## Check what the simulator actually measures

A later saved historical audit identified accounting, currency-conversion and simulated-fill limitations. Correcting cash calculations alone did not validate the strategy: exceptional recorded winners still dominated the results.

In a replay with recalculated position sizing, the saved result moves from +29.09 SOL-labelled units to +2.07 when two flagged winners are excluded, and to −6.30 without the five largest winners. These are retrospective exclusions using returns whose fill prices remain unverified. They test sensitivity, rather than establishing real profit or a repaired strategy.

I later adapted an existing automated-research framework to organize continued experiments around a fixed dataset, baselines and clearer comparison rules. The work became as much about the reliability of the experiment as the choice of model.

The adapted harness log contains 384 entries spanning baselines, trials, crashes and restored candidates. That is not a count of 384 independent successful experiments. Comparisons need to stay within the same target definition.

> The charts are newly drawn, but their values come from saved reports and analyses. No bot, training run or trading replay was restarted to produce them.

### Images and media

[Saved replay scenarios from 14 October 2026. Exclusions are retrospective; the chart does not describe real profits.](<https://zaki.somehow.engineer/content/assets/crypto/case-study/replay-sensitivity.en.png>)

Saved replay sensitivity: +29.09 units, +2.07 excluding two flagged winners, −6.30 excluding the five largest; historical fill prices unverified.

[SVG](<https://zaki.somehow.engineer/content/assets/crypto/case-study/replay-sensitivity.en.svg>)

Credit: Chart prepared for this portfolio from the saved 14 October 2026 cash replay. Experiments not rerun.

## What stayed with me

This is one of the projects that feels most like me. I followed a question long enough to understand why some promising answers did not hold up. It gave me experience in data engineering, modeling and operational debugging, and made me more careful about what a result actually demonstrates.

The figures above come from saved experiment records. They describe those experiments, not current predictive performance or a profitable trading strategy.
