Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Open-source AI crypto trading bot that runs 24/7, validates its model on unseen data and refuses to trade when it has no edge.
FinancePython · HTMLGitHub @monescuteodorOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
GrgTrading, your AI trading bot.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
An AI-driven crypto trading bot built to run 24/7. It uses a machine-learning
model (gradient boosting) trained on technical indicators, wrapped in strict
risk management, and can trade on any exchange supported by
ccxt (Binance, Bybit, OKX, Kraken, ...).
Read this before using real money.
No bot guarantees profit, and most automated strategies lose money after
fees. The bot starts in paper mode (simulated money on real prices) by
default. Run a backtest first, then paper-trade for a few weeks, and only
switch to live with an amount you can afford to lose completely.Read the full README ↗An AI-driven crypto trading bot built to run 24/7. It uses a machine-learning model (gradient boosting) trained on technical indicators, wrapped in strict risk management, and can trade on any exchange supported by ccxt (Binance, Bybit, OKX, Kraken, ...).
Read this before using real money. No bot guarantees profit, and most automated strategies lose money after fees. The bot starts in paper mode (simulated money on real prices) by default. Run a
backtestfirst, then paper-trade for a few weeks, and only switch tolivewith an amount you can afford to lose completely.
SYMBOLS.grgtrading/features.py).grgtrading/model.py): a HistGradientBoostingClassifier
estimates the probability that price rises over the next 6 candles by
enough to cover fees. It retrains automatically every 12 hours.BUY_THRESHOLD; sells when it drops below SELL_THRESHOLD.grgtrading/risk.py):
MAX_POSITION_PCT of equity per position, at most MAX_OPEN_POSITIONS;cp .env.example .env # edit your settings
pip install -r requirements.txt
python -m grgtrading backtest # test the strategy on ~1 year of history
python -m grgtrading check # verify connection, keys, balance and exchange minimums
python -m grgtrading run # start the bot (paper trading by default)
python -m grgtrading status # equity, open positions, recent trades
model_tradeable_share = 0 means the model found no edge; it would not trade live either.total_return_pct with buy_and_hold_pct. If the bot does worse than
simply holding, it is not worth running.max_drawdown_pct is the worst drop along the way. Expect the same or worse live.trades, the result may just be luck.cp .env.example .env
docker compose up -d --build
docker compose logs -f
docker compose exec bot python -m grgtrading status
restart: unless-stopped brings it back after a crash or reboot.
Data (state, models, trade journal, logs) lives in ./data.
Works on a Raspberry Pi 4/5 and, with 512 MB RAM, on a Pi Zero 2 W. Flash Raspberry Pi OS Lite (64-bit) (the 32-bit OS would have to compile pandas and scikit-learn for hours), enable SSH and Wi-Fi in Raspberry Pi Imager, then:
sudo apt-get install -y git
git clone https://github.com/monescuteodor/GrgTrading
cd GrgTrading
bash deploy/install-pi.sh # venv, dependencies, systemd service
nano .env # settings (paper mode by default)
sudo systemctl start grgtrading # runs now and after every reboot
journalctl -u grgtrading -f # live log
The same script works on any Linux PC or laptop with systemd (Debian/Ubuntu,
Arch/BlackArch, Fedora). On rolling-release distros like Arch, a Python upgrade can
break the virtual environment: delete venv and run the script again.
On a Pi Zero 2 W, keep SYMBOLS to one or two pairs. If the bot is killed while
retraining (out of memory), give it 1 GB of swap.
MODE=live, SANDBOX=true and the testnet keys. Testnet prices and
liquidity are not realistic, so use it to check that orders work, not to
judge profit..env:
MODE=live
SANDBOX=false
API_KEY=...
API_SECRET=...
LIVE_CONFIRM=I_UNDERSTAND_THE_RISKS
For a first live run, consider tighter limits: RISK_PER_TRADE=0.005,
MAX_OPEN_POSITIONS=1, MAX_DRAWDOWN_PCT=0.10, DAILY_LOSS_LIMIT_PCT=0.03.python -m grgtrading check to confirm the keys work and your balance
clears the exchange minimums, then start the bot.Stops are managed by the bot (checked every POLL_SECONDS), not placed as
orders on the exchange, so open positions are unprotected while the server is down.
Exchanges reject orders below a minimum value (on Binance typically around
5 USDT per order; check shows the exact figure for your exchange and pairs).
The bot also keeps a 25% margin above that minimum so a stop-loss sell after a
price drop is still accepted. So:
check. Below that, no bot can place a trade on that exchange.SMALL_ACCOUNT_MODE=true to buy the minimum
instead. Each trade then puts most of the account at stake.SYMBOLS=BTC/USDT) and keep MAX_OPEN_POSITIONS=1.STARTING_BALANCE=7;
paper mode applies the real exchange minimums.python -m grgtrading dashboard serves a page on port 8080. The Raspberry Pi
installer runs it as the grgtrading-dashboard service; open
http://grgtrading.local:8080 from a device on the same network.
data/). Forgot it? Delete data/dashboard_auth.json over SSH and restart
the dashboard service..env, and the bot restarts itself to apply them; open
positions are kept. Mode, exchange and API keys are not editable here, so a
leaked dashboard password can never switch the bot to real money.Your numbers stay on the machine and are not part of the repository. Never forward this port on your router.
Create a bot with @BotFather, put TELEGRAM_TOKEN
and TELEGRAM_CHAT_ID in .env, and you'll get a message for every buy and
sell, repeated errors, and the kill switch.
| Variable | Default | What it does |
|---|---|---|
MODE | paper | paper or live |
SANDBOX | false | in live mode, use the exchange testnet |
EXCHANGE | binance | any ccxt exchange id |
SYMBOLS | BTC/USDT,ETH/USDT | pairs to trade (same quote currency) |
TIMEFRAME | 1h | candle interval |
BUY_THRESHOLD / SELL_THRESHOLD | 0.60 / 0.45 | probability thresholds |
RISK_PER_TRADE | 0.01 | share of equity lost if a stop is hit |
SMALL_ACCOUNT_MODE | false | trade the exchange minimum on tiny balances |
MAX_DRAWDOWN_PCT | 0.20 | kill-switch threshold |
DAILY_LOSS_LIMIT_PCT | 0.05 | pause for the rest of the day |
Full list: grgtrading/config.py and .env.example.
website/ holds a static landing page (HTML, CSS, JS, no build step). To host it
on Cloudflare Pages: connect the repo, leave the build command empty and set the
output directory to website. Or upload the folder via "Direct Upload".
pip install -r requirements-dev.txt
pytest
grgtrading/
config.py settings from .env
features.py technical indicators and training labels
model.py the AI model and walk-forward validation
risk.py position sizing, stops, kill switch
broker.py paper trading and real orders via ccxt
bot.py the 24/7 loop
backtest.py walk-forward backtest with fees
storage.py bot state and trade journal (SQLite)
notify.py Telegram notifications