신심리도 추가, 투자심리도 수정
This commit is contained in:
@@ -352,7 +352,8 @@ export const INDICATOR_REGISTRY: IndicatorDef[] = [
|
||||
{ type:'VR', name:'Volume Ratio', koreanName:'거래량비율', shortName:'VR', category:'Volume', overlay:false, defaultParams:{length:10}, plots:[{id:'plot0',title:'VR', color:'#AB47BC',type:'line',lineWidth:2}], hlines:[{price:200,color:'#EF5350'},{price:100,color:'#607D8B'},{price:50,color:'#4CAF50'}], description:'거래량 비율 (VR)' },
|
||||
{ type:'Disparity', name:'Disparity Index', koreanName:'이격도', shortName:'Disp', category:'Oscillators', overlay:false, defaultParams:{ultraLength:5, shortLength:10, midLength:20, longLength:60, src:'close'}, plots:[{id:'plot0',title:'초단기',color:'#E91E63',type:'line',lineWidth:1},{id:'plot1',title:'단기',color:'#FF9800',type:'line',lineWidth:1},{id:'plot2',title:'중기',color:'#4CAF50',type:'line',lineWidth:1},{id:'plot3',title:'장기',color:'#2196F3',type:'line',lineWidth:1}], hlines:[{price:100,color:'#607D8B'}], description:'이격도 (종가÷이평×100)' },
|
||||
{ type:'Psychological', name:'Psychological Line', koreanName:'심리도', shortName:'Psy', category:'Oscillators', overlay:false, defaultParams:{length:12}, plots:[{id:'plot0',title:'심리도',color:'#00BCD4',type:'line',lineWidth:2}], hlines:[{price:75,color:'#EF5350',label:'과열선'},{price:50,color:'#607D8B',label:'중앙선'},{price:25,color:'#4CAF50',label:'침체선'}], description:'심리도 (상승일 비율)' },
|
||||
{ type:'InvestPsychological', name:'Invest Psychological Line', koreanName:'투자심리도', shortName:'IPsych',category:'Oscillators', overlay:false, defaultParams:{length:10}, plots:[{id:'plot0',title:'투자심리도',color:'#7E57C2',type:'line',lineWidth:2}], hlines:[{price:75,color:'#EF5350',label:'과열선'},{price:50,color:'#607D8B',label:'중앙선'},{price:25,color:'#4CAF50',label:'침체선'}], description:'투자심리도 (상승일 거래량 비중)' },
|
||||
{ type:'NewPsychological', name:'New Psychological Line', koreanName:'신심리도', shortName:'NPsy', category:'Oscillators', overlay:false, defaultParams:{length:10}, plots:[{id:'plot0',title:'신심리도',color:'#F44336',type:'line',lineWidth:2}], hlines:[{price:50,color:'#EF5350',label:'과열선'},{price:0,color:'#607D8B',label:'중앙선'},{price:-50,color:'#4CAF50',label:'침체선'}], description:'신심리도 (상승·하락 폭 반영)' },
|
||||
{ type:'InvestPsychological', name:'Invest Psychological Line', koreanName:'투자심리도', shortName:'IPsych',category:'Oscillators', overlay:false, defaultParams:{length:10}, plots:[{id:'plot0',title:'투자심리도',color:'#7E57C2',type:'line',lineWidth:2}], hlines:[{price:75,color:'#EF5350',label:'과열선'},{price:50,color:'#607D8B',label:'중앙선'},{price:25,color:'#4CAF50',label:'침체선'}], description:'투자심리도 (상승일 비율)' },
|
||||
{ type:'MFI', name:'Money Flow Index', koreanName:'자금흐름지수', shortName:'MFI', category:'Volume', overlay:false, defaultParams:{length:14}, plots:[{id:'plot0',title:'MFI', color:'#00BCD4',type:'line',lineWidth:2}], hlines:[{price:80,color:'#EF5350'},{price:20,color:'#4CAF50'}], description:'자금 흐름 지수' },
|
||||
{ type:'ChaikinMF', name:'Chaikin Money Flow', koreanName:'차이킨자금흐름', shortName:'CMF', category:'Volume', overlay:false, defaultParams:{length:20}, plots:[{id:'plot0',title:'CMF', color:'#4CAF50',type:'histogram'}], hlines:[{price:0.25,color:'#EF5350'},{price:0,color:'#607D8B'},{price:-0.25,color:'#4CAF50'}], description:'차이킨 자금 흐름' },
|
||||
{ type:'ChaikinOscillator', name:'Chaikin Oscillator', koreanName:'차이킨오실레이터', shortName:'CO', category:'Volume', overlay:false, defaultParams:{fastLength:3, slowLength:10}, plots:[{id:'plot0',title:'CO', color:'#FF9800',type:'histogram'}], hlines:[{price:0,color:'#607D8B'}], description:'차이킨 오실레이터' },
|
||||
@@ -414,13 +415,13 @@ export function formatIndicatorDisplayLabel(indicatorType: string): string {
|
||||
|
||||
/** 실시간 차트 pane·범례 타이틀 (심리도·투자심리도·이격도 등 한글명 우선) */
|
||||
export function getIndicatorChartTitle(type: string): string {
|
||||
const resolved = type === 'NewPsychological' ? 'Psychological' : type;
|
||||
const def = getIndicatorDef(resolved);
|
||||
const def = getIndicatorDef(type);
|
||||
if (!def) return type;
|
||||
if (
|
||||
resolved === 'Psychological'
|
||||
|| resolved === 'InvestPsychological'
|
||||
|| resolved === 'Disparity'
|
||||
type === 'Psychological'
|
||||
|| type === 'NewPsychological'
|
||||
|| type === 'InvestPsychological'
|
||||
|| type === 'Disparity'
|
||||
) {
|
||||
return def.koreanName;
|
||||
}
|
||||
@@ -491,7 +492,7 @@ export function enrichIndicatorConfig(
|
||||
if (cfgNorm.type === 'OBV') {
|
||||
params = normalizeObvParams(params);
|
||||
}
|
||||
if (cfgNorm.type === 'Psychological' || cfgNorm.type === 'InvestPsychological') {
|
||||
if (cfgNorm.type === 'Psychological' || cfgNorm.type === 'NewPsychological' || cfgNorm.type === 'InvestPsychological') {
|
||||
params = normalizePsychologicalParams(cfgNorm.type, params);
|
||||
}
|
||||
if (cfgNorm.type === 'BollingerBands') {
|
||||
@@ -587,7 +588,7 @@ async function loadCustomCalculators() {
|
||||
CUSTOM_CALCULATORS.VR = c.calcVR;
|
||||
CUSTOM_CALCULATORS.Disparity = c.calcDisparityUpbit;
|
||||
CUSTOM_CALCULATORS.Psychological = c.calcPsychological;
|
||||
CUSTOM_CALCULATORS.NewPsychological = c.calcPsychological;
|
||||
CUSTOM_CALCULATORS.NewPsychological = c.calcNewPsychological;
|
||||
CUSTOM_CALCULATORS.InvestPsychological = c.calcInvestPsychological;
|
||||
CUSTOM_CALCULATORS.BollingerBands = c.calcBollingerBands;
|
||||
CUSTOM_CALCULATORS.DMI = c.calcDMI;
|
||||
|
||||
Reference in New Issue
Block a user