diff --git a/frontend/src/utils/ChartManager.ts b/frontend/src/utils/ChartManager.ts index c766514..07ee578 100644 --- a/frontend/src/utils/ChartManager.ts +++ b/frontend/src/utils/ChartManager.ts @@ -854,6 +854,16 @@ export class ChartManager { } if (configs.length > 0) { this._finalizeIndicatorPaneLayout(); + this._refreshAllIchimokuClouds(); + } + } + + /** 배치 로드 후 구름 데이터·렌더 갱신 (다른 오버레이 추가로 primitive 순서가 바뀐 경우 대비) */ + private _refreshAllIchimokuClouds(): void { + for (const entry of this.indicators.values()) { + if (entry.type !== 'IchimokuCloud' || !entry.cloudPlugin || !entry.config) continue; + this._applyIchimokuCloudPlugin(entry.cloudPlugin, {}, entry.config); + entry.cloudPlugin.updateAllViews(); } } @@ -919,6 +929,7 @@ export class ChartManager { if (this._indicatorLoadStale(loadGen)) return; this._finalizeIndicatorPaneLayout(); + this._refreshAllIchimokuClouds(); } removeIndicator(id: string): void { diff --git a/frontend/src/utils/IchimokuCloudPlugin.ts b/frontend/src/utils/IchimokuCloudPlugin.ts index ac5d5a9..6aa7d97 100644 --- a/frontend/src/utils/IchimokuCloudPlugin.ts +++ b/frontend/src/utils/IchimokuCloudPlugin.ts @@ -123,6 +123,9 @@ class CloudPaneView implements IPrimitivePaneView { this._plugin.getBearishVisible(), ); } + + /** BB·RSI 영역 등 다른 primitive/시리즈보다 아래에 그려 구름이 가려지지 않게 함 */ + zOrder(): 'bottom' { return 'bottom'; } } // ─── Plugin ──────────────────────────────────────────────────────────────── @@ -169,6 +172,10 @@ export class IchimokuCloudPlugin implements ISeriesPrimitive