OpenChart
Claude·Codex와 함께하는 무료 데스크톱 차트 도구. 알림 설정·차트 움직임 분석·데이터 제공자 선택
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.