尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A phone app for US stocks and crypto: live charts, a watchlist, and (in later stages) prediction methods, buy and sell signals, and notifications from your own server. It never places real trades.
Trade gives decision support, not financial advice. No method predicts prices reliably.
Open it at https://kamibly.github.io/Trade/.
The free Twelve Data plan allows 8 requests a minute, so stock prices on a long watchlist fill in over a minute or two. The key, your watchlist and your settings stay in this phone's browser. Use Settings → Save backup to move them to another phone.
| Stage | What | Status |
|---|---|---|
| 1 | Installable app, watchlist, live charts (15m, 1H, 1D, 1W), USD and CAD | Done |
| 2 | Indicators, forecasts, combined score, signals, alerts while open | Done |
| 3 | Backtest, portfolio, stop-loss and take-profit, paper trading | Done |
| 4 | OCI alert service: notifications when the app is closed, scanner | Done |
| 5 | Machine learning (LightGBM, LSTM) on the server | Done |
| 6 | Continuous server monitoring and server paper trading | Done |
| 7 | Levels tuned per symbol, dip mode, turning-point models | Done |
Every method votes between -1 (sell) and +1 (buy). Votes are averaged inside their group, then the six groups are averaged into a score from -100 to +100, so a group with many methods can't outvote the rest.
| Group | Methods |
|---|---|
| Trend | SMA 20/50, EMA 50/200, price vs SMA 200, MACD, ADX, Ichimoku Cloud, Parabolic SAR, Supertrend |
| Momentum | RSI, Stochastic, Williams %R, CCI, rate of change, RSI divergence |
| Volatility | Bollinger Bands (and squeeze), Keltner Channels, Donchian breakout |
| Volume | On-balance volume, VWAP, money flow index, volume spikes |
| Price structure | Support and resistance, Fibonacci retracement, pivot points, candlestick patterns |
| Statistical forecasts | Linear regression, Holt-Winters smoothing, ARIMA(3,1,0), Monte Carlo (GBM), Hurst exponent |
Each signal suggests a stop-loss 2 × ATR and a target 3 × ATR from the entry. Volume methods drop out when a source has no volume (CoinGecko backup).
There are two ways to turn the score into Buy and Sell:
Auto (the default) tunes each symbol once a day: on the older 60% of its history it tries both ways and buy levels from +15 to +60 and sell levels from -15 to -60, trading them with the stop and target, and keeps the one with the best return less half its worst drop (at least 3 trades). The newer 40%, which the tuning never saw, then shows whether it holds up: each signal reads, for example, "Tuned: Buy +25, Sell -30, dip mode · test +8% vs +3% standard". Manual uses your own levels and way for every symbol (+40 and -40, standard, by default). On random-walk prices the score stays within ±30 99% of the time, while steady trends reach 35 to 50.
No method calls exact bottoms and tops while they happen: those are only certain in hindsight, and every mark on the chart is computed only from the candles before it, as it would have looked live.
With your server connected, a seventh group joins the vote: models your server trains every week (Sunday 03:00 by default) for every timeframe (15m, 1H, 1D and 1W) on your symbols plus a spread of S&P 500 stocks and top cryptos, about 120 charts:
Both predict whether the price is higher after fees 10 candles later. Two more LightGBM models look for turning points:
They only push the score their way ("not a bottom" is no reason to sell).
The oldest ~70% of the history trains the models and the newest ~30% tests them. LightGBM and the LSTM vote only if right more than half the time on at least 200 clear test calls; the finders, only if right at least 3 points more often than their outcome happens anyway. All of them vote and only on candles after its training period, so its backtest is out of sample too. The phone downloads the models and runs them itself, so charts and the in-app scanner use them as well. The chart's "Machine-learning models" card shows each model's test result and whether it votes.
The ML chip on the chart draws an orange line to where the price went on average, 10 candles later, after similar predictions in the models' test period, with the share of those cases that rose after fees. Next to the Forecast fan (which only extends the chart's own recent drift and volatility), it shows what the learned models expect.
Backtest. Each chart splits its history: the older 60% measures how often each method's clear votes (|vote| ≥ 0.3) matched the move over the next 10 candles, after fees (0.1% for stocks, 0.4% for crypto). A method right 50% of the time keeps weight 1, 60% doubles it, 40% or worse drops it to 0, and methods with few votes stay near 1. The newer 40% then trades the weighted score (long only, stop-loss, target or Sell score to exit) and is compared with equal weights and buy-and-hold, and with the same trades using a trailing stop instead of the target. The scanner re-learns weights once a day per symbol.
My holdings. What you own, with a stop-loss and target (from the Risk settings in ATRs if left empty). Alerts fire once when a stop or target is reached or a Sell signal appears. Held symbols are priced and scanned even if they are not on the watchlist.
Paper trading. A pretend account ($10,000 by default) that buys on each new Buy signal, risking 1% of the account per trade with at most 20% in one symbol, and sells on the stop-loss, target or a Sell signal. With your server connected it runs there around the clock (signals after every candle close, stop-loss and target every minute); otherwise it trades only while the app is open. Each open paper trade has buttons to move its stop-loss and target or sell it now; the account without the trade filter does the same, and an idea you sold is not bought again. The Paper page shows a short summary with the account value chart, then Open, Closed, By setup and Latest tabs: one-line trades that open on tap (open trades start with a gain/loss bar for each, sort by loss, gain or newest and filter by source; closed trades filter by won or lost), the setup table and filter test under By setup, and the latest buys and sells under Latest. In Settings > Risk, paper trades can sell on a trailing stop instead of the target: once a trade is up half its stop-loss distance (1 ATR with a 2 ATR stop) the stop moves to break even after fees, then follows the highest price at the stop-loss distance below it. It applies to new Buy signal and market scan trades (opportunities keep their own plan), and each open trade can switch it on or off.
By setup. The server's paper account also buys the market scan's new buy ideas (sold at the stop, the target or when a later scan says Sell). Paper trades are tagged with what opened them (a Buy signal, a market scan idea or one of the opportunity setups below), and the Paper tab shows trades, win rate, return and worst drop for each. Each source has its own budget: opportunities 40% of the account, stock buy ideas, crypto buy ideas and watchlist alerts 20% each. One trade gets at most a fifth of its source's share (8% or 4%, less when the 1% risk limit makes it smaller), and a source keeps buying until its share is spent or it holds 10 trades. Once two sources have 50 closed trades, the one with the best average trade takes up to 5 points a week from the worst, within 10% to 50%.
Holdings and the paper account live on the phone and are in the backup file. With your server connected, the watchlist and holdings also sync to it.
The Signals tab has three tabs: your Watchlist's signals, Opportunities and the Market scan (Buy or Sell ideas). Each card is one line; tap it for the details or its chart button for the chart. Lists show their strongest 5 first.
With your server connected, the Opportunities tab lists opportunities from four setups that read more than the price chart, ranked by how past cases did:
Every past case on the scanned charts builds each setup's track record (bought at the close, sold at the stop, target or end of the holding period, after fees). A setup sends notifications only once it is proven: 30 or more cases with a positive average. The rest show as "watching, not proven". One digest per scan carries up to 5 new opportunities. Held stocks also get a warning 2 trading days before earnings, and an alert on an earnings gap down.
Buy alerts carry their own track record from the symbol's backtest ("won 14 of 21 test trades, average +2.1%"). Opportunity and signal alerts have Useful and Not useful buttons; a kind of alert rated Not useful 7 times out of the last 10 is muted until you turn it back on in Settings, where each setup also has a switch. The Setup report under the list shows each setup's record and whether each data source loaded.
server/ is trade-service, a Docker container that runs next to
jobspy-service. It sends alerts while the app is closed, scans every
actively traded coin on Coinbase and Kraken every 15 minutes around the clock
(and rescores any coin that jumps or drops 1.5 ATR within the minute), scans
the S&P 500 every 30 minutes while the US market is open, checks your holdings'
stop-losses and targets every minute, runs paper trading around the clock,
trains the machine-learning models weekly, and
syncs your watchlist and holdings. It scores
with copies of the app's own JavaScript (kept in step by npm run sync-server),
so its signals match the phone's. Only that folder goes to the VM, as
trade_folder, on host port 8898 (8004 inside the container). Setup steps are in
server/README.md.
| Data | Source |
|---|---|
| US stocks | Twelve Data with your free key |
| Crypto candles | Coinbase Exchange, then Kraken, then CoinGecko as backups |
| Crypto prices and top-50 list | CoinGecko |
| USD to CAD | Frankfurter (European Central Bank), Coinbase as backup |
| Insider buying, earnings dates | SEC EDGAR (server, needs SEC_CONTACT) |
| Upcoming earnings | Nasdaq earnings calendar (server) |
| Crypto crowd | alternative.me Fear & Greed, Kraken Futures funding (server) |
Charts use TradingView Lightweight Charts
(Apache 2.0, in app/vendor/).
main runs the tests and publishes app/.The app is plain JavaScript with no build step.
npm test # unit tests (Node 22)
npm run serve # http://localhost:8080
When you change any file in app/, bump CACHE in app/sw.js so installed
phones pick up the new version.
Trade filter. The weekly training also builds a LightGBM filter from the backtest's candles that looked like a Buy (equal-weight score at least +15): for each, did a trade reach its target before its stop within 30 candles, and what did it make after fees. It sees the votes, the indicators, how many methods agree and the market's trend (SPY or Bitcoin against its 200-day average). It trains on all but the newest year and is tested on that year; it is used only if the trades it keeps made money and beat all trades by 0.3 points on average. The server's paper account then skips buy ideas and watchlist Buys it expects to lose and sizes the rest from 0.5× to 1.5× of a slot. Opportunities keep their own test. A second, hidden account trades the same ideas without the filter; after 100 closed trades the filter had a say on, it stays on only if the filtered account is ahead (then the Paper tab says it is ready to choose stops and targets too). Switch it off under Risk in Settings.