Skip to content

MoonBot chart-windows manager has no home for stay-on-top and hide-all #1139

Open

Description

@Alena-Selezneva

Request

@kostmain, MoonTerminal chat, 2026-10-29, with a screenshot of MoonBot's chart-windows popup (Окна с графиками (создано 8 окон)):

Где в MoonTerminal настраиваются "Окна-чарты", как в Moonbot ?

Please verify this task before implementing. He asked where it is. The recommendation below is not a decision to build the MoonBot popup.

Is it needed

The workplace is needed: numbered places that strategies fill, which he can pull out onto their own screens. That already exists as chart tabs. The popup on his screenshot is MoonBot's manager for a pile of separate OS windows. Copying that dialog would put a second manager next to the tab strip.

Two controls from that popup have no home in the terminal, and he cannot reach them by looking:

  1. Окна с графиками поверх всех окон. The terminal reads this from each core and draws no checkbox of its own. On when any core in the group has it on (the factory value, and also the value while a core's settings have not arrived yet): that group's detached chart windows rise with the main window and have no taskbar button of their own. Off on every core: each window keeps its taskbar button and the main window leaves them where they are. The rise-with-main part is Windows only. macOS and Linux do not raise the charts.
  2. Show all / hide all / wipe the set. MoonBot's Show, Hide and Clear (confirm Вы точно хотите удалить все окна с графиками?) act on every chart window at once. The terminal has a per-tab close and, only while something is already detached, Собрать окна графиков этой группы.

What already covers the rest

Do not port these. They have a home, or they are the wrong shape here.

  • The strategy field is Номер вкладки графика (zero means do not add). Сколько держать на графике is the seconds, and zero means keep it until the reader closes it. The tab appears on the first detect with that number and does not steal the tab he is looking at. Closing the tab with the cross removes it; the next detect with that number creates it again.
  • The tab title is the number, the group name, and — while Отдельная чарт-вкладка на каждое ядро is on, which is the factory — the core name. That checkbox is Настройки → Общие → Основное, section Графики. The Связка column in Connections overrides it: equal names share one tab, and that name is what the title shows.
  • Double-click a tab other than Main detaches it. AUTO refuses. Closing the OS window puts the tab back on the strip. Double-click the chart itself on such a tab opens that coin full-screen on Main.
  • How many charts, and how the tiles sit: the gear, window Раскладка вкладки. Поток детектов → Максимум ships at 8, 0 means no cap, Заменять самый старый ships on (the chart that has gone longest without a fresh detect gives way; a pinned chart and a coin opened by hand occupy a slot and are not the victim; if nothing can give way the detect is not shown). His slider is one number for every window (Не более 80 графиков в окне on the screenshot) and a full window refuses the coin, logging Too many charts … limit is …. Leave the per-tab cap. Do not raise the factory to 80.
  • Wide (ships on, keeps tiles wide) and Auto Resize (reflows after a coin leaves on its timer and the window has been quiet) are the Вид block of the same window: orientation, columns or rows, minimum slot size.
  • New (an empty window before any detect), Active: Chart 8 (the window last clicked, the target of Add Markets), and Add Markets (every coin open on the main window) do not match the tab model. A hand-picked set is coin search, checkboxes, Открыть в новой вкладке, which makes a Набор tab, not a strategy number.
  • Refresh on the screenshot is 1 min, the factory. The choices are 5s, 15s, 30s, 1 min, 5 min, 15 min, and every chart in every such window jumps back to the price on that timer, including one he is looking at. Do not add that timer.

Where, if these two are taken

  • The stay-on-top checkbox belongs in Настройки → Общие → Основное, section Графики, next to Отдельная чарт-вкладка на каждое ядро. It is one switch for the group. Factory stays "follow the main window". It must not keep silently inheriting a checkbox that only exists in MoonBot.
  • Show / hide / wipe belongs on the chart-tab strip, beside Собрать окна графиков этой группы, not in a new popup. Hide parks the detached windows and brings the same tabs back. Wipe closes the numbered tabs the way the cross already does, so the next detect can recreate one. Do not delete the coins' history.

Activity

  1. Alena-Selezneva commented on Oct 29, 2026

    @Alena-Selezneva
    ContributorAuthor

    Follow-up the same day

    @kostmain came back with the workflow the first note treated as covered. Quote:

    Хочу вернуться к адекватной настройке чартов, как это реализовано в Moonbot. Нужно такое же окно с такими же понятными и явными настройками.

    1. Создать вручную ОТДЕЛЬНОЕ новое пустое окно с номером… настройка масштаба, порядок отображения данных (показывать или нет цену и время), выбрать вручную какие монеты…
    2. Выбрать максимальное количество чартов… в этом окне
    3. Скрыть или очистить окна
    4. Определить алгоритм ресайза графиков и их расположения в окне
    5. Показывать окно поверх всех окон или нет
    6. Делать рефреш мини-графиков… если цена в них быстро убегает от старой линии цены (с выбором интервала рефреша)

    Окно 6-7: …поток перенаправляется в заранее созданное руками и известное окно, которое даже пустое НЕ ПРОПАДАЕТ (пусто, значит нет монет с соотв. падением)

    Please verify this task before implementing. The recommendation below is not a decision to build the MoonBot popup. The earlier note in this issue said not to port an empty window created ahead of time. That part is withdrawn. The rest of that note stands: do not copy the dialog.

    The piece that is actually missing

    A numbered place he creates by hand, empty, which stays on screen when no coin is in it. Strategies pour into that number. An empty place is the signal that nothing in that band is happening. He then puts that place on its own monitor.

    MoonBot works that way because the strategy number is a slot in a list of windows he already opened (New on the chart-windows popup, right-click the favourites button). No window at that slot: the coin is not shown and nothing is written to the log. The windows are saved with the bot and come back empty. Hide keeps them and strategies still fill them. Clear asks Вы точно хотите удалить все окна с графиками? and removes them.

    The terminal creates the tab on the first detect with that Номер вкладки графика. There is no way to reserve number 6 before any coin. After the last coin's hold runs out, the tab stays on the strip for the rest of the session, so "empty" is visible only after something has already arrived. A tab he never tore off is gone after a restart until the next coin. A window he already tore off (double-click, MANUAL only) comes back next launch and stays empty until the next coin. A coin he typed into a numbered tab is not in that restore. A Набор remembers its coins and is not a strategy number.

    Closing an empty MoonBot window in the middle of the list does not rewrite the captions, and the strategy number is the list position, so the numbers he trusts and the windows that receive coins come apart. The terminal number does not slide. Do not copy the list-position numbering.

    Already there, once a tab exists

    Do not rebuild these inside a new dialog.

    • Two strategy fields do his windows 2–7: Номер вкладки графика and Сколько держать на графике (zero keeps the coin until he closes it). The window does not measure the drop or notice a buy. MoonShot sends the coin when the sell is placed. Different strategies, different numbers, different holds.
    • Factory Отдельная чарт-вкладка на каждое ядро (Настройки → Общие → Основное, section Графики) makes one tab per core for the same number. The same Связка on the cores shares one tab. His "one window 6" is that checkbox, not a missing window type.
    • Scale, this tab only: Масштаб on the strip, Авто 50% 20% 10% 5% 2%. MoonBot's futures row on the window is 2% 5% 10% 20% 50%, plus a latch on that window that switches the row to 100% 200% 500% 1k% 2k%. A fixed 50% does not frame a −70% move. Авто fits what is on screen. Do not add the large-scale latch in this change.
    • Price and time: Раскладка вкладки, Ось цен and Ось времени, per tab. MoonBot's one button on the window hides captions and the price lines together.
    • Cap, per tab, not one slider for every window: Поток детектов → Максимум, factory 8, 0 means no cap. Заменять самый старый ships on (the chart longest without a fresh detect gives way; a coin he typed and a pinned chart are not the victim; a coin he typed is also not refused by the cap). Off: a full tab skips the new detect. MoonBot's slider is one number for every window (factory 60, his screenshot is 80) and a full window always skips, logging Too many charts … limit is …. Leave the per-tab cap. Do not raise the factory to 80.
    • Layout, per tab: the Вид block of the same window (orientation, columns or rows, Точно, minimum slot, fit height 0 stretches). MoonBot's Wide and Auto Resize are one pair for every window. Wide keeps the tiles wide and rebuilds the grid. Auto Resize rebuilds after a coin leaves and the window has been quiet.
    • Hand-picked coin: the strip search, Enter, onto the tab he is looking at. It does not expire. The tab has to exist already. Открыть в новой вкладке builds a Набор. Strategies do not write into a Набор.
    • Tear off: double-click a tab other than Main, MANUAL only. AUTO refuses. Closing the OS window puts the tab back.

    Do not add the refresh timer

    MoonBot's Refresh ships at 1 min (also 5 s, 15 s, 30 s, 5 min, 15 min). On that tick every mini-chart in every such window snaps so the last price is the centre, including the one he is watching. Between ticks a fast move leaves the line on the old centre. While the terminal's Live is on, the centre eases toward the last price once it has drifted past a tenth of the window. Pause freezes on purpose. A minute jump would fight Live.

    Where, if the reserved place is taken

    One action on the chart-tab strip: reserve a number. The tab appears empty and stays empty. He can tear it off the same way as any other tab. It comes back next launch the way a torn-off window already does, still empty until a coin arrives. The strategy number already routes into it. Scale, axes, cap, layout and the search stay where they are.

    Отдельная чарт-вкладка на каждое ядро still decides whether that number is one place or one per core. Do not invent a third routing.

    Stay-on-top and hide-all / clear-all remain the other half of this issue, as already written. They are not a substitute for the reserved empty place.

    Out of scope: copying Show / Hide / Clear / Wide / Auto Resize / Active / New / Add Markets / Refresh as one MoonBot dialog, a global cap of 80, and the refresh timer.

  2. Alena-Selezneva commented on Oct 29, 2026

    @Alena-Selezneva
    ContributorAuthor

    Narrower ask, same day

    @kostmain, after the empty-window explanation. He is splitting the earlier request into pieces. Quote:

    Ладно... начну выпрашивать по частям :)

    Мне нужно, чтобы в MoonTerminal я мог создать вручную 5 ОТДЕЛЬНЫХ пустых окон со своими настройками, что в каждое перенаправить поток детектов от 5 стратегий:

    Стратегия1 -> Окно1
    Стратегия2 -> Окно2
    Стратегия3 -> Окно3
    Стратегия4 -> Окно4
    Стратегия5 -> Окно5

    И чтобы эти окна не закрывались, когда в них нет детектов.

    Please verify this task before implementing. This is the piece to look at. He is not asking for the MoonBot popup again. The original note that New does not match the tab model is about that dialog, not a decision to leave him with no empty place.

    What already does the routing

    Номер вкладки графика is the window. Strategy 1 set to 1, strategy 2 set to 2, and so on, is the map he wrote. Two strategies with the same number share one tab. Zero means that strategy adds nothing.

    Factory Отдельная чарт-вкладка на каждое ядро is on, so the same number on two cores is two tabs, and the title adds the core name. Off, that number is one tab for the group. A filled Связка in Connections overrides the checkbox. Do not add a second strategy-to-window picker on top of the number.

    Once the tab exists, its settings are its own and survive the tab being closed and opened again by the next coin: the scale dropdown, and Раскладка вкладки (Ось цен, Ось времени, Поток детектов → Максимум, the layout block). Open the tab first, then the gear. The gear writes that tab, including while it is already empty.

    What "do not close" already does

    Сколько держать на графике removes the coin. Zero seconds keeps the coin until he closes it. The tab stays. With no coins left it stays on the strip, empty, for the rest of this run.

    Double-click detaches it while the header says MANUAL. AUTO refuses. Coins leaving do not close that window. Quit while the window is still open: the next launch opens it empty, with those settings, and the next coin for that number lands in it. Coins that were on it are not put back.

    The window's own close puts the tab back on the strip and forgets that it was a separate window. The cross on the tab removes the tab until the next coin. A tab that was never detached is not opened on the next launch until a coin creates it again.

    What he still cannot do

    He cannot open windows 1–5 by hand before any of those strategies has sent a coin. Until that first coin there is no tab to detach, nowhere to park on another monitor, and no empty surface to configure. A hand-picked Набор (Открыть в новой вкладке) is the wrong stand-in: strategies do not write there.

    Where, if this is taken

    A way to open a numbered empty chart tab, then the same double-click to put it in its own window. It stays with zero coins, including across a restart, the way a detached window already does after it has existed once. Coins for that number fill it. Settings stay the ones the tab already stores.

    Do not copy Окна с графиками. Leave Show / Hide / Clear, the Refresh timer, and the shared slider of 80 in the first note.

  3. Alena-Selezneva commented on Oct 30, 2026

    @Alena-Selezneva
    ContributorAuthor

    Screener gesture is a different ask

    @kostmain, 2026-10-30, asked how to send Screener rows (the coins that have orders) into a chart window, and listed MoonBot's markets-table menu: copy the names, add the rows above the click to the last chart window, reset the session on the clicked coin.

    That menu is not this issue. Add Markets here takes coins already open on the main window. The new ask starts from the Screener. Filed separately: one issue for sending those rows into a Набор and copying their names, one for the per-coin session reset. Do not close either one as a duplicate of this.

  4. Alena-Selezneva commented on Oct 30, 2026

    @Alena-Selezneva
    ContributorAuthor

    Numbered chart windows, 2026-10-30

    @kostmain, same workplace as the empty-window follow-up. Please verify before implementing. This is his scheme, not a decision to build it.

    What the screenshots actually show

    Detached chart window. The real header is the coin name TUNE (white). His yellow arrow points at it. Bright green Chart 1 (Core 1) is painted on the shot: the window title is one string in one color, and no locale has that phrase. Tiles are TUNE_USDT, BTC_USDT, ETH_USDT. Adding coins does not rename the window.

    Taskbar shot the same hour: four MoonTerminal windows, each button truncated to MoonTerminal …. The OS title is MoonTerminal — plus the tab label, so the chart name never survives the button.

    His scheme, in his words

    Логичнее выкидывать одинокую монету в новый чарт и называть чарт номер по незанятому списку

    1. no charts yet: double-click TUNE → header Chart 1 (Core 1), not TUNE; first tile stays TUNE-USDT; BTC and ETH join that same chart
    2. a hand-made empty chart (he says this is not implemented) takes the next free number, Chart 2 (Core 1)
    3. in that chart he points a strategy, opens coins via its search, sends a Screener list
    4. if a window with that number already exists (hand-made or another strategy), do not create a second one; detects go into the existing one. If it does not exist yet, the strategy creates it. A checkbox chooses "open as a compact tab, pull it out later by double-click" vs "open a new hand-made chart as its own window" (MoonBot New)
    5. a quick count of how many Charts exist (3/5/7), show all if hidden or minimized, and a cap on mini-charts (his example: strictly 80)

    He believes a numbered chart is created only by a strategy whose Номер вкладки графика equals that number, which is why the coin-named window cannot receive detects.

    What already happens

    • The TUNE window is a comparison tab named after the coin (Сравнить in the coin menu, or a right-click on a detect card), then detached. Double-click a tab other than Main detaches it. Closing the OS window puts the tab back. AUTO refuses detach. Adding coins updates the list and leaves the name. Rename is the gear, Раскладка вкладки, field Имя, and only on these hand-made tabs. A strategy does not look at them.
    • Double-click a coin chip on Main full-screens that one coin on Main. Double-click the candles is the buy gesture by default. There is no path from a double-click on a coin of the main chart to a coin-named OS window. If his window popped from the candles, that gesture is still unidentified.
    • Номер вкладки графика above zero looks up an Add tab by number AND bucket, on the strip or already detached, and adds the coin. Missing: it creates a tab on the strip, does not steal the tab he is looking at, and does not open an OS window. Two strategies with the same number on the same core already share one tab.
    • The factory checkbox Отдельная чарт-вкладка на каждое ядро is on (Настройки → Общие → Основное, section Графики). The slot is the number plus the core. Equal names in the Connections column Связка collapse those cores into one tab, and that name is what the title shows. The current title is number-group-core (or the bundle name), not Chart 1 (Core 1). A bare Chart 1 with no core would mix cores the product keeps apart. His own caption keeps the core; the spelling is the part that differs. The localized Чарт N / Chart N is only the caption of a numbered pane that has no market yet. It is not the window title. A hand-made tab's internal number sits in another range, so that caption would not read Chart 1.
    • There is no empty numbered chart and no "next free number" taken by opening a coin. Монета…, checkboxes, Открыть в новой вкладке requires at least one coin and names Набор N (pinned, remembered). That is not a strategy number.
    • MoonBot New creates an empty window. Its caption is Charts N plus the bot name. A strategy adds a coin only when that window index already exists; a missing index drops the coin. Do not copy the drop-if-missing rule, and do not copy that caption. His requested header is terminal-shaped (it names the core).
    • His point 4 (reuse the number if it exists, otherwise create it) is already what detect ingest does for Add tabs. The gaps are the ones above: a coin-named window does not occupy the number, creation is always a tab, and there is no checkbox that makes the strategy open an OS window. Detach stays a later double-click, and AUTO still cannot detach.

    Already on this issue, do not redo

    The count, show-all / hide-all, and the 80 cap are this issue. Leave the per-tab Максимум (factory 8, 0 means no cap, Заменять самый старый ships on). Do not raise the factory to 80 because of his MoonBot slider Не более 80 графиков в окне. The taskbar shot is new evidence for the overview: four windows are indistinguishable. Suggestion, not a decision: the chart name has to be the part of the OS title that survives truncation, or the manager list is the only way to tell the windows apart.

    The Screener list stays #1164. Do not fold it back in.

  5. Alena-Selezneva commented on Oct 30, 2026

    @Alena-Selezneva
    ContributorAuthor

    Name beside the number, 2026-10-30

    @kostmain, after being shown the layout popup's Имя on the same detached window (header had been the coin TUNE, then became exactly Детекты от PUMP-5%). Please verify before implementing. This is his sketch, not a decision to build it, and not a reason to replace the set tabs that already exist.

    То что можно переименовать чарт это полезно, чтобы например надписать какие детекты поступают в этот чарт и от каких стратегий. Но это поле должно быть дополнительным к стандартной сквозной нумерации чартов:

    Chart 1 (Core 1) [Детекты от PUMP-5%]
    созд. автоматом меняется пользователем

    What the field does today

    Имя is drawn only on a hand-made set and on a comparison opened by double-click (that one starts titled with the coin). The box is seeded with the current header. Whatever is confirmed becomes the entire header and the entire tab caption. Набор 1 and TUNE do not stay beside it. The screenshot is that replacement.

    A strategy chart has no Имя row. Its header is built: the number from Номер вкладки графика, a hyphen, the group, and — while Отдельная чарт-вкладка на каждое ядро is on, which is the factory — the core's name. Equal Связка names share one tab and that name is what the header shows instead of the core. The program never writes Chart 1 (Core 1).

    The strategy does not read the header. It finds the tab by that number, on the strip or already detached. A note typed on a set does not make detects arrive there.

    MoonBot's chart window titles itself Charts N <bot name>. There is no user note on it. The bracket is his addition.

    If this is taken

    Keep the automatic identity of the strategy chart always visible (the number the strategy already uses, plus the core or the bundle). The note is extra text after that, on the tab and in the window header, for him to read. It does not replace the number and it is not a routing key.

    Do not paint Chart 1 (Core 1) on a renamed set and expect strategies to use it. A set and a comparison are a different counter. Do not copy a second window manager to host the note.

    While a comparison tab is still on the strip, the next double-click of that coin finds it by the header text. Renaming the header makes that click open another tab titled with the coin again. A window already detached is not in that search even before a rename. Leave that lookup alone in this change.

    The Enter / close behaviour of Имя is a separate issue. Do not fold a title redesign into that fix.

    Same hour in the chat: the sets that already save their name and their coins were called the mechanism that is already done, and opening Screener coins by checkbox was called a different gap. Verify this note before building it.

  6. Alena-Selezneva commented on Oct 30, 2026

    @Alena-Selezneva
    ContributorAuthor

    Superseded, 2026-10-30: do not build Chart 1 / Chart 2 titles

    @LinKvo, MoonTerminal chat. This replaces the two comments from the same day, "Numbered chart windows" and "Name beside the number". Please verify before implementing. His words are the decision. The sketch in those comments is not.

    к нам приходя детекты с AddToChart=1 они попадают в свой окно, на этом всё.

    Ядра можно объединить в группы чтобы они присылали всё в это окно.

    AddToChart=1+группа ядер "Бинанс" пришлет в одно

    AddToChart=1+группа ядер "Байбит" пришлет в другое

    название будет у окон

    1 Бинанс

    1 Байбит

    какие там внутри стратегии у 70 ядер нам не ведомо (вернее ведомо и в строчку названия они точно не поместятся)

    разделяй стратегии по AddToChart 2.3. Тогда будут отдельные окна для них

    Единственное можно Добавить это "переименовать окно" для AddToChart которые (сейчас нельзя).

    брать AddToChart+НазваниеГруппы=Новое Имя и сохранять локально у тебя.

    Leave the routing alone

    • One numbering for every chart (Chart 1, Chart 2, Chart 3) with a user note beside it (Chart 1 (Core 1) [Детекты от PUMP-5%]).
    • Strategy names in the title. One window holds every detect that shares the number and the bucket. He said those names will not fit on the line.
    • An empty numbered window created by hand for a strategy to fill. The tab appears with the first detect of that number. A detect does not open an OS window by itself. Double-click the tab does, and only in MANUAL.
    • Pointing a hand-made set (Набор) or a comparison tab at that number. On his earlier shot the header was the coin TUNE. A set is named by the user: gear, Раскладка вкладки, row Имя, and that text replaces the whole title (the screenshot in this thread is Набор 3). The strategy does not read it. Saving that field on close is Layout Name is kept only on Enter; closing the popup drops it #1171.

    The original ask of this issue stays: Окна с графиками поверх всех окон, and show all / hide all. This message does not touch them.

    What the titles are today

    Strategy field Номер вкладки графика. Zero does not add. The same number from many strategies shares one window. The program never writes the words Chart 1.

    Factory checkbox Отдельная чарт-вкладка на каждое ядро is on (Настройки → Общие → Основное). The title is hyphenated: 1-группа-ядро. Turning it off puts every core of that group on 1-группа. A group named Бинанс then reads 1-Бинанс. That is the merge he described, and it is not the factory: with the checkbox on, a group does not share one window.

    Column Связка in Connections overrides the checkbox. The same non-empty name on several cores of one group shares 1-группа-связка. An empty cell follows the checkbox. Inside the group default, связка Бинанс is 1-default-Бинанс, not 1 Бинанс with a space.

    Numbers 2 and 3 are other windows. Closing the tab removes it. The next detect with that number creates it again.

    The one addition: rename an AddToChart window

    Those windows have no Имя row. The row is drawn only for a set and a comparison tab.

    Store the new name locally, on the tab record the terminal already keeps (the same file a set's Имя survives a restart in). Show it as the tab caption and the window title. An empty value leaves the computed title in place. The name stays on this terminal. The strategy still finds the window by the number, not by the text.

    Please verify the key before implementing. He wrote AddToChart + group name. A tab is already distinguished by three things: the group, the number, and one of "all cores of the group", "this core", or the Связка name. While the per-core checkbox is on, one group has several windows with number 1, and a key of only number + group name would store one name for all of them. Include that third part, unless the decision is that a rename exists only for a window the cores already share.

    He asked to rename the window. A set's Имя replaces its whole title. Matching that drops the number from the caption, so two renamed windows can look the same. Keeping 1-группа and appending the stored name is the other reading of his "1 Бинанс". That choice is the check. Do not invent a Chart N (Core N) [note] frame around it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions