From 35fe667107178880406a3e4b5d4fc4e3e3c51b8c Mon Sep 17 00:00:00 2001 From: Macbook Date: Wed, 24 Jun 2026 00:32:39 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=EB=9E=B5=ED=8E=B8=EC=A7=91=EA=B8=B0?= =?UTF-8?q?=20=EC=9D=BC=EB=AA=A9=EA=B7=A0=ED=98=95=ED=91=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/StrategyPage.tsx | 2 +- frontend/src/utils/strategyEditorShared.tsx | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/StrategyPage.tsx b/frontend/src/components/StrategyPage.tsx index 9c0b0a8..40bcb33 100644 --- a/frontend/src/components/StrategyPage.tsx +++ b/frontend/src/components/StrategyPage.tsx @@ -333,7 +333,7 @@ const getFieldOpts = (ind: string, signalType: 'buy'|'sell', DEF: DefType, cond? case 'ICHIMOKU': return condOpts([ { value:'CONVERSION_LINE', label:`전환선(${DEF.ichTenkan}일)` }, { value:'BASE_LINE', label:`기준선(${DEF.ichKijun}일)` }, - { value:'LEADING_SPAN1', label:'선행스팬1' }, + { value:'LEADING_SPAN1', label:`선행스팬1(${DEF.ichSenkouDisp}일)` }, { value:'LEADING_SPAN2', label:`선행스팬2(${DEF.ichSenkouB}일)` }, { value:'LAGGING_SPAN', label:'후행스팬' }, { value:'CLOSE_PRICE', label:'종가' }, diff --git a/frontend/src/utils/strategyEditorShared.tsx b/frontend/src/utils/strategyEditorShared.tsx index 3ace039..00ebe74 100644 --- a/frontend/src/utils/strategyEditorShared.tsx +++ b/frontend/src/utils/strategyEditorShared.tsx @@ -172,7 +172,7 @@ export const DEF_DEFAULTS = { dmiPeriod: 14, obvPeriod: 9, obvSignal: 9, bbPeriod: 20, bbStdDev: 2, - ichTenkan: 9, ichKijun: 26, ichSenkouB: 52, + ichTenkan: 9, ichKijun: 26, ichSenkouB: 52, ichSenkouDisp: 26, newPsy: 10, psyPeriod: 12, investPsy: 10, williamsR: 14, bwiPeriod: 20, @@ -326,6 +326,9 @@ export function buildDef(activeIndicators: IndicatorConfig[]): DefType { ichTenkan: num(ich, 'conversionPeriods', DEF_DEFAULTS.ichTenkan), ichKijun: num(ich, 'basePeriods', DEF_DEFAULTS.ichKijun), ichSenkouB: num(ich, 'laggingSpan2Periods', DEF_DEFAULTS.ichSenkouB), + ichSenkouDisp: typeof ich.senkouDisplacement === 'number' + ? (ich.senkouDisplacement as number) + : num(ich, 'displacement', DEF_DEFAULTS.ichSenkouDisp), psyPeriod: num(psy, 'length', DEF_DEFAULTS.psyPeriod), newPsy: num(nPsy, 'length', DEF_DEFAULTS.newPsy), investPsy: num(iPsy, 'length', DEF_DEFAULTS.investPsy), @@ -773,7 +776,7 @@ function buildFieldOptsForSlot( const lines = [ { value: 'CONVERSION_LINE', label: `전환선(${DEF.ichTenkan}일)` }, { value: 'BASE_LINE', label: `기준선(${DEF.ichKijun}일)` }, - { value: 'LEADING_SPAN1', label: '선행스팬1' }, + { value: 'LEADING_SPAN1', label: `선행스팬1(${DEF.ichSenkouDisp}일)` }, { value: 'LEADING_SPAN2', label: `선행스팬2(${DEF.ichSenkouB}일)` }, { value: 'LAGGING_SPAN', label: '후행스팬' }, { value: 'CLOSE_PRICE', label: '종가' },