하나증권관련 업데이트

This commit is contained in:
DESKTOP-KUL8TT4\siina 2024-09-11 10:54:54 +09:00
parent 8f79483d85
commit c756438cd1
9 changed files with 1125 additions and 1 deletions

View File

View File

@ -1013,4 +1013,149 @@ firstDate < LAST_WRK_DTM 되어 있다면 DB에 있는 약관이 가입한 포
>
> **정치영팀장**: PBP에서 추천링크 생성할때 investTypeList 추가 유무 물어봄
### 업무 2024-08-29
### 업무 2024-09-30
로그인시 변경약관동의 팝업 뜨는것 투자 일임 계약서 추가됨
> 이것을 위해서 백엔드 TP0015MT와 TP5010MT에서 applydate와 regdate를 비교해서 applydate가 클경우 팝업을 띄우기로 하였음
백엔드에서 api추가 하였고 공통을 변경하여서 이것에 대해서 부작용 나는 부분 유심히 관찰해야 함
## todo
약관 프로세스 정리
db 테이블 구조 정리
api 구조 정리
프론트 테스크 프로세스 정리 필요함
---
---
## 2024-09-04 변경약관 현재까지 정리
1. "성과수수료합의서" 추가됨 DB TP0015MT DOC_DVSN_CD 09번으로 생성
2. "계좌입출고제한동의서" 추가됨 DB TP0015MT DOC_DVSN_DC 10번으로 생성
3. "로보어드바이저 투자일임계약(비대면)약관" DB TP0015MT DOC_DVSN_DC 08번으로 생성, 이 내용이 PBP-CS에서 "투자일임계약서"에 포함된다고 함(기획, 컴플 미팅시 확인) 현재 사용하지 않음.
4. "투자일임계약서" 내용 변경건으로 DB TP0015MT DOC_DVSN_DC 02번으로 DOC_SEQ 추가 생성
5. !!이슈!! 8월 29일 배포하였던 프론트 코드에 문제점을 발견. 로그인 이후 변경약관동의 팝업에서 동의후 확인시 성과수수료합의서, 계좌입출고제한동의서, 투자일임계약서, 설명서 4개의 문서를 모두 POST로 전달.
6. 8월 29일 배포에서는 변경약관팝업에서 성과수수료합의서, 계좌입출고제한동의서 2개만 동의를 구하여 2개만 POST해야함.
(기존 코드 재활용으로 나온 문제)
7. 9월 3일 투자일임계약서를 동의 받으려함. 8월 29일 동의한 사용자 변경약관팝업이 출력안되는 현상. (이미 TP5010MT에 동의 내역이 있기 때문)
8. 운영계에서 테스트한 내부 계정들 모두 위의 이슈 확인.
9. 운영 프로세스상으로는 문제 없음, 고객 증가 했을때 DB 지저분해질 문제있음. PBP-CS의 ContractDocTask를 변경약관에도 사용할 수 있도록 수정할 계획.
A. 9월 3일 오전 정치영부장님이 박상수차장에게 물어본 로보어드바이저 투자일임계약(비대면)약관은 위의 3번과 같은 이유로 나올 수 없음. 현재 프로세스상에서는 DOC_DVSN_DC 02번인 투자일임계약서의 동의를 확인해야함
운영DB에서 동의 확인함. 현재는 로그인 후 변경약관동의가 안떠야 하는게 맞음.
## 2024-09-09 TODO
[get] /customer api를 불러올때 사용자의 포트폴리오를 불러오고 포트폴리오의
상태, 동의여부를 불러오기 위함입니다.
/customer api는 [내 자산]으로 들어가기전에 호출하여 cookieinfo에 담아 recoil로 사용하고 있으므로 /customer api에 가입되어 있는 포트폴리오 정보를 담는다면 어떤 페이지에 도달하였던지 변경약관 팝업을 띄울 수 있게 됩니다.
로그인 성공 후 CookieInfo.tsx에 `getUserInfoApi`를 통해서 사용자 정보를 저장해서 recoil로 끌어다 사용하는 중.
여기에 portfolio리스트와 동의 여부를 체크해야 함.
사용자가 가입된 portfolio 목록의 DB 테이블은 TP0010MT, TP0010DT임
[get] /customer api의 쿼리는 아래와 같다
```console
SELECT
M.SCCO_CD AS sccoFnstCd, /* 증권사금융기관코드 */
PTN.CP_NAME AS securitiesName, /* 증권사명 */
M.CST_ID AS userId, /* 고객ID */
U.USER_NAME AS userName, /* 고객명 */
U.HP_NUMBER AS mobileNumber, /* 휴대폰번호 */
U.BIRTH AS birth, /* 생일 */
U.GENDER AS gender, /* 성별코드 */
U.EMAIL AS email, /* 전자메일 */
M.SCCO_CST_IDNTF_ID AS sccoCustomerIdentifyId, /* 증권사 고객식별 ID */
M.RMKS AS remarks, /* 비고 */
M.CST_STTS_CD AS statusCode, /* 상태코드 [1.정상, 9.탈퇴] */
U.PASSWORD_ERROR_COUNT AS passwordErrorCount, /* 암호오류횟수 */
U.PASSWORD_DATE AS passwordDate, /* 패스워드 등록일자 */
U.ACTIVE_STEP AS activeStep, /* 활성단계 */
UAI.PUSH_STATUS AS pushStatus, /* 혜택, 마케팅 푸시알람: 01.등록, 02.해제 */
DATE_FORMAT(UAI.PUSH_STATUS_DATE, '%Y-%m-%d %H:%i:%s') AS pushStatusDate /* 푸시알람 변경날짜 */
FROM
TP0007MT M
INNER JOIN api_mpot.TC_USER U /* 사용자정보 */
ON U.UID = M.CST_ID
LEFT JOIN TC1500MT PTN /* 회원사 정보 */
ON M.SCCO_CD = PTN.CP_CODE
LEFT JOIN TC5001MT UAI /* 푸시알림 상태 */
ON U.UID = UAI.UID
WHERE
M.SCCO_CD = 270
AND M.CST_ID = 5000001008
AND U.ROLES = 1;
```
위의 쿼리에 2개의 테이블을 left join 한다.
```console
SELECT
M.SCCO_CD AS sccoFnstCd, /* 증권사금융기관코드 */
PTN.CP_NAME AS securitiesName, /* 증권사명 */
M.CST_ID AS userId, /* 고객ID */
U.USER_NAME AS userName, /* 고객명 */
U.HP_NUMBER AS mobileNumber, /* 휴대폰번호 */
U.BIRTH AS birth, /* 생일 */
U.GENDER AS gender, /* 성별코드 */
U.EMAIL AS email, /* 전자메일 */
M.SCCO_CST_IDNTF_ID AS sccoCustomerIdentifyId, /* 증권사 고객식별 ID */
M.RMKS AS remarks, /* 비고 */
M.CST_STTS_CD AS statusCode, /* 상태코드 [1.정상, 9.탈퇴] */
U.PASSWORD_ERROR_COUNT AS passwordErrorCount, /* 암호오류횟수 */
U.PASSWORD_DATE AS passwordDate, /* 패스워드 등록일자 */
U.ACTIVE_STEP AS activeStep, /* 활성단계 */
UAI.PUSH_STATUS AS pushStatus, /* 혜택, 마케팅 푸시알람: 01.등록, 02.해제 */
PORT.PTFL_NM AS portFolioName, /* 포트폴리오 이름 */
PORT.PTFL_ID AS portFolioID, /* 포트폴리오 아이디 */
PORTSTAT.STATUS AS portFolioStatus, /* 포트폴리오 상태 */
DATE_FORMAT(UAI.PUSH_STATUS_DATE, '%Y-%m-%d %H:%i:%s') AS pushStatusDate /* 푸시알람 변경날짜 */
FROM
TP0007MT M
INNER JOIN api_mpot.TC_USER U /* 사용자정보 */
ON U.UID = M.CST_ID
LEFT JOIN TC1500MT PTN /* 회원사 정보 */
ON M.SCCO_CD = PTN.CP_CODE
LEFT JOIN TC5001MT UAI /* 푸시알림 상태 */
ON U.UID = UAI.UID
LEFT JOIN QTDB.TP0010MT PORT /* 포트폴리오 정보 */
ON M.CST_ID = PORT.WRTR_ID
LEFT JOIN QTDB.TC5009MT PORTSTAT /* 포트폴리오 상태 */
ON PORT.PTFL_ID = PORTSTAT.PTFL_ID
WHERE
M.SCCO_CD = 270
AND M.CST_ID = 5000001008
AND U.ROLES = 1;
```
```console
PORT.PTFL_NM AS portFolioName, /* 포트폴리오 이름 */
PORT.PTFL_ID AS portFolioID, /* 포트폴리오 아이디 */
```
```console
LEFT JOIN QTDB.TP0010MT PORT /* 포트폴리오 정보 */
ON M.CST_ID = PORT.WRTR_ID
LEFT JOIN QTDB.TC5009MT PORTSTAT /* 포트폴리오 상태 */
ON PORT.PTFL_ID = PORTSTAT.PTFL_ID
```
위와 같이 2개를 추가 하여 로그인시 현재 활성화되어 있는 포트폴리오

View File

@ -0,0 +1,155 @@
## 빌드시 초기로딩 속도에 대한 고찰 (Frist Load JS)
> 빌드 속도를 개선하고 사용자 사용시 초기 로딩 속도를 향상 시키기 위하여 이 문서를 작성한다.
```console
-- as is --
73requests | 8.5MB transferred | 29MB resources | Finish: 9.42s | DOMContentLoaded: 1.01 s | Load: 2.53s
Route (app) Size First Load JS
┌ λ / 8.33 kB 633 kB
├ λ /analysis/[counselDivisionCode] 14.5 kB 636 kB
├ λ /analysis/not-available 4.31 kB 363 kB
├ λ /assets 11.5 kB 661 kB
├ λ /etc 8.87 kB 602 kB
├ ○ /favicon.ico 0 B 0 B
├ λ /file 2.96 kB 344 kB
├ λ /gateway 3.56 kB 422 kB
├ λ /login 2 kB 425 kB
├ λ /market 3.56 kB 628 kB
├ λ /mts 7.2 kB 375 kB
├ λ /sample 10.5 kB 664 kB
└ λ /sample/backup 142 B 80.1 kB
+ First Load JS shared by all 80 kB
├ chunks/7839-4550171616e94fb7.js 27.3 kB
├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB
├ chunks/main-app-ee2ba3384bf7bca4.js 227 B
└ chunks/webpack-251a6c35d38a66b4.js 1.97 kB
```
위의 빌드 결과를 보았을때 /Assets 쪽에서 Size, FirstLoadJs값이 큰것을 확인 할 수 있음.
위를 개선해보고자 컴포넌트화 및 Dyniamic import 처리를 진행할것임
```console
-- to be --
73requests | 8.4MB transferred | 28.7MB resources | Finish: 8.66s | DOMContentLoaded: 358 ms | Load: 2.05s
Route (app) Size First Load JS
┌ λ / 8.33 kB 633 kB
├ λ /analysis/[counselDivisionCode] 14.5 kB 636 kB
├ λ /analysis/not-available 4.31 kB 363 kB
├ λ /assets 9.03 kB 657 kB
├ λ /etc 8.87 kB 602 kB
├ ○ /favicon.ico 0 B 0 B
├ λ /file 2.96 kB 344 kB
├ λ /gateway 3.56 kB 422 kB
├ λ /login 2 kB 425 kB
├ λ /market 3.56 kB 629 kB
├ λ /mts 7.2 kB 375 kB
├ λ /sample 12 kB 665 kB
└ λ /sample/backup 142 B 80.2 kB
+ First Load JS shared by all 80 kB
├ chunks/7839-4550171616e94fb7.js 27.3 kB
├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB
├ chunks/main-app-ee2ba3384bf7bca4.js 227 B
└ chunks/webpack-8d53428a2b9471a1.js 2.02 kB
```
/assets를 보면 수치상으로도 동적호출로 전환하였을때 용량이 줄어들고 초기로드속도가 빨라지는것을 확인 할 수 있음. 이것에 초기 로딩될때 필요하지 않은것들을 동적호출로 전환한다.
MUI까지 동적 호출을 처리 하였을때
```console
ute (app) Size First Load JS
┌ λ / 10.3 kB 637 kB
├ λ /analysis/[counselDivisionCode] 15.1 kB 640 kB
├ λ /analysis/not-available 4.3 kB 363 kB
├ λ /assets 13.7 kB 446 kB
├ λ /etc 9.96 kB 603 kB
├ ○ /favicon.ico 0 B 0 B
├ λ /file 2.96 kB 344 kB
├ λ /gateway 3.56 kB 423 kB
├ λ /login 2.02 kB 425 kB
├ λ /market 5.64 kB 633 kB
├ λ /mts 9.42 kB 375 kB
├ λ /sample 36.1 kB 667 kB
└ λ /sample/backup 142 B 80.8 kB
+ First Load JS shared by all 80.7 kB
├ chunks/7839-4550171616e94fb7.js 27.3 kB
├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB
├ chunks/main-app-ee2ba3384bf7bca4.js 227 B
└ chunks/webpack-3f67b64ace555e15.js 2.64 kB
```
위와 같이 초기로딩속도는 감소하였지만 파일용량 자체가 커져버리는 이슈가 발생하였다. 이는 이후 컴포넌트베이스로 다시 구조를 짜면 용량이 줄어들것임.
178라인 컴포넌트 동적호출 처리
```console
Route (app) Size First Load JS
┌ λ / 10.3 kB 637 kB
├ λ /analysis/[counselDivisionCode] 15.1 kB 640 kB
├ λ /analysis/not-available 4.3 kB 363 kB
├ λ /assets 13 kB 445 kB
├ λ /etc 9.96 kB 603 kB
├ ○ /favicon.ico 0 B 0 B
├ λ /file 2.96 kB 344 kB
├ λ /gateway 3.56 kB 423 kB
├ λ /login 2.02 kB 425 kB
├ λ /market 5.64 kB 633 kB
├ λ /mts 9.42 kB 375 kB
├ λ /sample 36.1 kB 667 kB
└ λ /sample/backup 142 B 80.8 kB
+ First Load JS shared by all 80.7 kB
├ chunks/7839-4550171616e94fb7.js 27.3 kB
├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB
├ chunks/main-app-ee2ba3384bf7bca4.js 227 B
└ chunks/webpack-2bb5a5c391878cdc.js 2.66 kB
Route (pages) Size First Load JS
┌ ○ /404 185 B 82.8 kB
├ λ /api/airBridge 0 B 82.6 kB
├ λ /api/apiLogs 0 B 82.6 kB
├ λ /api/destroySession 0 B 82.6 kB
├ λ /api/getSessions 0 B 82.6 kB
└ λ /api/setSessions 0 B 82.6 kB
+ First Load JS shared by all 82.6 kB
├ chunks/framework-4498e84bb0ba1830.js 45.1 kB
├ chunks/main-fbfceeefa1e04435.js 34.7 kB
├ chunks/pages/_app-0fe44225c17aa1f2.js 199 B
└ chunks/webpack-2bb5a5c391878cdc.js 2.66 kB
```
theme 호출 된거 삭제 SwipeableViews 컴포넌트의 axis에서만 사용하고 있었음 한국은 그냥 axis="x" 로 하면 됨
```console
Route (app) Size First Load JS
┌ λ / 10.3 kB 637 kB
├ λ /analysis/[counselDivisionCode] 15.1 kB 640 kB
├ λ /analysis/not-available 4.3 kB 363 kB
├ λ /assets 13 kB 445 kB
├ λ /etc 9.96 kB 603 kB
├ ○ /favicon.ico 0 B 0 B
├ λ /file 2.96 kB 344 kB
├ λ /gateway 3.56 kB 423 kB
├ λ /login 2.02 kB 425 kB
├ λ /market 5.64 kB 633 kB
├ λ /mts 9.42 kB 375 kB
├ λ /sample 36.1 kB 667 kB
└ λ /sample/backup 142 B 80.8 kB
+ First Load JS shared by all 80.7 kB
├ chunks/7839-4550171616e94fb7.js 27.3 kB
├ chunks/bce60fc1-c2e93daaf00d5912.js 50.5 kB
├ chunks/main-app-ee2ba3384bf7bca4.js 227 B
└ chunks/webpack-2bb5a5c391878cdc.js 2.66 kB
```

View File

@ -0,0 +1,57 @@
![alt text](image.png)
// 고객관리 고객리스트 --> [조회] 클릭시 아래 api 호출
[get] `/customer/management`
```javascript
interface ICustomerContainer extends ICustomerSearch {
page: number; // * 페이지
pageSize?: number; // * 페이지당 건수
sortFields?: string; // * 정렬항목
sccoFnstCd?: string; // * 증권사 금융기관코드
sccoEmpId?: string; // * 증권사 직원ID
userId?: string; // * 사용자ID
role?: 'ROLE_PB' | 'ROLE_CUST' | 'ROLE_ADMIN';
}
```
```javascript
interface ICustomerListResult {
rows: ICustomerListRowData[];
pageInfos: ICustomerPageInfo;
}
interface ICustomerListRowData {
customerId: string;
customerName: string;
mobilePhoneNo: string;
genderCode: string;
gender: string;
investPropensityCode: string;
investPropensity: string;
profitRate: number;
birthday: string;
joinDate: string;
totalInvestAmount: number;
customerDivisionCode: string;
customerDivision: string;
accountNoList: string[];
valuationAmount: number;
profitAmount: number;
}
interface ICustomerPageInfo {
page: number;
pageSize: number;
totalCount: number;
}
```
![alt text](image-1.png)
[get] `/account/portfolio/strategy/invest`

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

125
quantec/pbp/hana/README.md Normal file
View File

@ -0,0 +1,125 @@
## 2024-09-11 하나증권
> 아래 방문 후 노트 원문
```markdown
시뮬레이터 > 내 포트폴리오목록 > 링크주소복사
Seq, divcd만 알면 될듯
영업점 계좌로 변경
엄이사님
종합계좌 39432637-010
근데 해당 계좌 국내형이니
1. 관리자 변경
2. 해외거래 가능 처리 >> 이미 해외가능계좌였음
두개 요청 하신후 진행 하세요
관리자변경 관리자 신청서 문서 사용 + 신분증
계좌 마곡
타점 변경이기 때문에 신분증 스캔함
안유진 > 심하영 변경
관리자 바꾸는게 쉽지 않음 시간 걸림.. 미리 해야할듯
비대면일 경우는 무조건 서류로 해야함
비대면 관리자 바꾸는게 어려움
급하게 처리해서 10분 내로 관리자 바꿈
투자권유등록해야 링크를 메시지로 보낼 수 있음
투자성향도 해야하고 투자권유등록해야함
1040 계좌목록
4408 보유주식 비중현황조회
1014 투자성향파악
8888 완전판매 프로세스
3165 영업서양식 약관 출력 > 콴텍검색
오픈API 도 검색함
여기에 투자권유양식있음
실물서류 양식 받음 사인
1261 투자자문사투자성향확인 투자성향분석 공격적성향 나오게 설문함
8시 39분 26초 엄명수이사님 타행입출금 하나플러스에 뜸
교부할게 있는데 그건 그냥 했다치고 넘어가기로함
1256 개인정보처리동의 콴텍투자일임 검색
8779 판매점검 치크리스트
국내외혼합전략
수탁업무진행후 라고 얼랏떠서
랩투자일임에서 수탁업무 셀렉트하고 문서 모두 체크함
1262 투자자문사권유계좌등록 여기서 상품명 셀렉트
투자권유 콴텍 로보어드바이저 투자일임계약(비대면) 국내전략혼합형 or 국내외전략혼합형
수수료 유형은 성과형
계약일(오늘날짜) 계약만기일 계약금액
계약금액 1천
만기일 1년
성향분석이 콴텍플랫폼에서도 나와야하는데 시뮬레이터에는 없음... 그래서
```
### 2024-09-11 PBP 시뮬레이터 관련 하나증권 방문
" 콴텍PBP 성향분석 후 로보어드바이저에서 전략을 추천하는 방식, 성향분석이 반드시 필요. 성향분석 없이 전략 가입시 하나증권PB가 콴텍PBP에 있는 전략을 직접 추천하는게 모양이 됨. 하나증권 민원시 곤란함을 유래 할 수 있다."
기존 안유진PB에서 심하영PB로 관리자 변경
1. 콴텍PBP 시뮬레이터에 [링크전송]이 추가 되어 테스트로 하나증권 방문.
2. 하나플러스에서 [1040] 계좌목록 조회
3. [4408] 보유주식 비중현황 조회 후 콴텍PBP 접속
4. 콴텍PBP 시뮬레이터 링크생성
5. [3165] 영업서양식 약관 출력 > 콴텍 검색 & 오픈API검색 실물서류 양식 받아 기재
6. [1261] 투자자문사투자성향확인 투자성향분석
7. [8779] 판매점검 체크리스트 > 국내외혼합전략형 선택함
-- 하나플러스 Error: 수탁업무진행후 진행하라는 경고 발생
8. [1262] 투자자문사권유계좌등록 화면에서 상품명 셀렉트
상품명: 투자권유 콴텍 로보어드바이저 투자일임계약(비대면) 국내외전략혼합형
수수료 유형: 성과형
계약일: 1년
계약금액: 1천만원
-- 하나플러스 Error: 상품명이 상이하여 진행 되지 않음.
#### [현 하나증권에서 콴텍 PBP 업무 화면 프로세스 정리]
```mermaid
flowchart TB
n0[("콴텍PBP")]
n1["1040<br>(계좌목록)"]
n2["4408<br>(보유주식 비중현황조회)"]
n3["3165<br>(영업서양식 약관 출력)"]
n4["1261<br>(투자자문사투자성햑확인 투자성향분석)"]
n5["1262<br>(투자자문사권유계좌등록)"]
n6["8779<br>(판매점검 체크리스트)"]
n1 ---> n2
n2 ---> n0
n2 ---> n3
n3 ---> n4
n4 ---> n6
n4 ---> n5
```

View File

@ -439,3 +439,645 @@
[기획 수정 요청 ppt 파일](<240821_PB플랫폼 수정요청_리포트.pptx>)
>> 2024-08-28 우선 데이터 맞추어 놨고 디자인은 차후 수정하겠음
### 2024-09-03
![alt text](image-4.png)
```json
[
{
"code": "KP0001",
"stockName": "콴텍 가치투자 주식형1호",
"minimumHoldingWeight": 0,
"currentWeightRate": 0,
"recommendWeightRate": 48,
"title": "가치 투자의 정석",
"tags": "#한국중소형,#실적주,#시장나침반",
"concept": "가치 투자를 꿈꾸는 사람은 여기 주목! 한국 중소형주 중에서 PER, PBR 지표가 좋은 기업을 위주로 구성한 포트폴리오예요. 대가들이 말하는 투자 원칙에 가장 충실한 상품으로 투자가 처음인 분에게 적합해요.",
"universe": "한국 중소형주(mid-small cap)",
"style": "중소형 가치주(value)",
"raCode": "RA105014",
"strategyId": "KP0001",
"strategyName": "콴텍 가치투자 주식형1호",
"pubStartDate": "20190211",
"baseDate": "20240903",
"pubYears": "5.5",
"indexInfo": {
"strategyId": "KP0001",
"investType": "2",
"operationAmount": 1406497,
"oneWeekProfitRate": -1.68,
"oneMonthProfitRate": -1.84,
"threeMonthProfitRate": -3.6,
"sixMonthProfitRate": -0.02,
"oneYearProfitRate": 14.49,
"twoYearProfitRate": 24.84,
"threeYearProfitRate": 15.61,
"yearExchangeProfitIndex": 15.23,
"fullProfitRate": 130.21,
"standardDeviation": 0.25,
"beta": 0.84,
"sharpeRatio": 0.53,
"alpha": 0.11,
"infoRate": 0.6,
"trackError": 0.19,
"rewardRate": 2.42,
"mdd": -44.04
},
"strategySymbolList": [
{
"globalType": "1",
"symbolCode": "037460",
"symbolName": "삼지전자",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 5,
"lastPrice": 8890,
"oneWeekProfit": 0.22,
"oneMonthProfit": 6.21,
"threeMonthProfit": -0.11,
"oneYearProfit": 11.82
},
{
"globalType": "1",
"symbolCode": "334890",
"symbolName": "이지스밸류리츠",
"industryCode": "G40",
"industryName": "금융",
"weight": 10,
"rank": 8,
"lastPrice": 5170,
"oneWeekProfit": -0.19,
"oneMonthProfit": 1.77,
"threeMonthProfit": 1.77,
"oneYearProfit": 18.85
},
{
"globalType": "1",
"symbolCode": "023410",
"symbolName": "유진기업",
"industryCode": "G20",
"industryName": "산업재",
"weight": 10,
"rank": 1,
"lastPrice": 3480,
"oneWeekProfit": -0.85,
"oneMonthProfit": 7.73,
"threeMonthProfit": -0.14,
"oneYearProfit": -4.39
},
{
"globalType": "1",
"symbolCode": "006120",
"symbolName": "SK디스커버리",
"industryCode": "G10",
"industryName": "에너지",
"weight": 10,
"rank": 4,
"lastPrice": 35100,
"oneWeekProfit": -1.26,
"oneMonthProfit": 0.28,
"threeMonthProfit": -21.56,
"oneYearProfit": -12.57
},
{
"globalType": "1",
"symbolCode": "004690",
"symbolName": "삼천리",
"industryCode": "G55",
"industryName": "유틸리티",
"weight": 10,
"rank": 7,
"lastPrice": 89000,
"oneWeekProfit": -1.33,
"oneMonthProfit": 4.82,
"threeMonthProfit": -6.7,
"oneYearProfit": -16.58
},
{
"globalType": "1",
"symbolCode": "129260",
"symbolName": "인터지스",
"industryCode": "G20",
"industryName": "산업재",
"weight": 10,
"rank": 10,
"lastPrice": 2250,
"oneWeekProfit": -1.53,
"oneMonthProfit": 11.11,
"threeMonthProfit": -2.8,
"oneYearProfit": -4.86
},
{
"globalType": "1",
"symbolCode": "007860",
"symbolName": "서연",
"industryCode": "G25",
"industryName": "경기관련소비재",
"weight": 10,
"rank": 9,
"lastPrice": 7620,
"oneWeekProfit": -2.05,
"oneMonthProfit": 12.38,
"threeMonthProfit": -19.87,
"oneYearProfit": 1.06
},
{
"globalType": "1",
"symbolCode": "000070",
"symbolName": "삼양홀딩스",
"industryCode": "G15",
"industryName": "소재",
"weight": 10,
"rank": 6,
"lastPrice": 72300,
"oneWeekProfit": -2.29,
"oneMonthProfit": 9.87,
"threeMonthProfit": 3.58,
"oneYearProfit": 3.28
},
{
"globalType": "1",
"symbolCode": "003300",
"symbolName": "한일홀딩스",
"industryCode": "G20",
"industryName": "산업재",
"weight": 10,
"rank": 2,
"lastPrice": 14060,
"oneWeekProfit": -2.63,
"oneMonthProfit": 10.7,
"threeMonthProfit": 6.11,
"oneYearProfit": 23.33
},
{
"globalType": "1",
"symbolCode": "000670",
"symbolName": "영풍",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 3,
"lastPrice": 310000,
"oneWeekProfit": -4.76,
"oneMonthProfit": 7.26,
"threeMonthProfit": -17.55,
"oneYearProfit": -43.32
}
],
"industryWeightList": [
{
"itemCd": "G55",
"itemName": "유틸리티",
"weight": "10.00"
},
{
"itemCd": "G20",
"itemName": "산업재",
"weight": "30.00"
},
{
"itemCd": "G25",
"itemName": "경기관련소비재",
"weight": "10.00"
},
{
"itemCd": "G10",
"itemName": "에너지",
"weight": "10.00"
},
{
"itemCd": "G40",
"itemName": "금융",
"weight": "10.00"
},
{
"itemCd": "G15",
"itemName": "소재",
"weight": "10.00"
},
{
"itemCd": "G45",
"itemName": "IT",
"weight": "20.00"
}
]
},
{
"code": "KP0111",
"stockName": "콴텍 Q-Shield 국내 주식 2호",
"minimumHoldingWeight": 0,
"currentWeightRate": 0,
"recommendWeightRate": 8,
"title": "빠르게 성장할 기업들",
"tags": "#한국중대형주,#수익성,#성장성",
"concept": "성장하는 기업을 찾는 건 투자의 기본! 더욱이 빠르게 성장하는 기업이라면 금상첨화! 수익성과 성장성을 동시에 보여주는 종목으로 구성한 포트폴리오에요.",
"universe": "중대형주",
"style": "수익 성장",
"raCode": "RA113024",
"strategyId": "KP0111",
"strategyName": "콴텍 Q-Shield 국내 주식 2호",
"pubStartDate": "20210201",
"baseDate": "20240903",
"pubYears": "3.6",
"indexInfo": {
"strategyId": "KP0111",
"investType": "2",
"operationAmount": 5100000,
"oneWeekProfitRate": -1.31,
"oneMonthProfitRate": -4.81,
"threeMonthProfitRate": -13.31,
"sixMonthProfitRate": -9.65,
"oneYearProfitRate": -11.91,
"twoYearProfitRate": 27.89,
"threeYearProfitRate": 3.03,
"yearExchangeProfitIndex": 14.52,
"fullProfitRate": 71.23,
"standardDeviation": 0.2,
"beta": 0.54,
"sharpeRatio": 0.59,
"alpha": 0.15,
"infoRate": 0.93,
"trackError": 0.2,
"rewardRate": 1.32,
"mdd": -31.15
},
"strategySymbolList": [
{
"globalType": "1",
"symbolCode": "042660",
"symbolName": "한화오션",
"industryCode": "G20",
"industryName": "산업재",
"weight": 10,
"rank": 1,
"lastPrice": 34550,
"oneWeekProfit": 4.06,
"oneMonthProfit": 28.2,
"threeMonthProfit": 11.09,
"oneYearProfit": -4.29
},
{
"globalType": "1",
"symbolCode": "058430",
"symbolName": "포스코스틸리온",
"industryCode": "G15",
"industryName": "소재",
"weight": 10,
"rank": 9,
"lastPrice": 41600,
"oneWeekProfit": 2.97,
"oneMonthProfit": 15.07,
"threeMonthProfit": -10.24,
"oneYearProfit": -29.84
},
{
"globalType": "1",
"symbolCode": "091810",
"symbolName": "티웨이항공",
"industryCode": "G20",
"industryName": "산업재",
"weight": 10,
"rank": 6,
"lastPrice": 2845,
"oneWeekProfit": 2.15,
"oneMonthProfit": 17.07,
"threeMonthProfit": 1.42,
"oneYearProfit": 6.35
},
{
"globalType": "1",
"symbolCode": "336370",
"symbolName": "솔루스첨단소재",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 10,
"lastPrice": 13300,
"oneWeekProfit": 1.75,
"oneMonthProfit": 5.63,
"threeMonthProfit": -24.47,
"oneYearProfit": -17.77
},
{
"globalType": "1",
"symbolCode": "042600",
"symbolName": "새로닉스",
"industryCode": "G25",
"industryName": "경기관련소비재",
"weight": 10,
"rank": 3,
"lastPrice": 13550,
"oneWeekProfit": 1.57,
"oneMonthProfit": 17.11,
"threeMonthProfit": -28.98,
"oneYearProfit": -58.81
},
{
"globalType": "1",
"symbolCode": "015750",
"symbolName": "성우하이텍",
"industryCode": "G25",
"industryName": "경기관련소비재",
"weight": 10,
"rank": 5,
"lastPrice": 7050,
"oneWeekProfit": -0.14,
"oneMonthProfit": 15.57,
"threeMonthProfit": -17.05,
"oneYearProfit": -29.5
},
{
"globalType": "1",
"symbolCode": "097520",
"symbolName": "엠씨넥스",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 8,
"lastPrice": 19280,
"oneWeekProfit": -1.38,
"oneMonthProfit": 8.55,
"threeMonthProfit": -14.31,
"oneYearProfit": -33.85
},
{
"globalType": "1",
"symbolCode": "441270",
"symbolName": "파인엠텍",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 2,
"lastPrice": 6490,
"oneWeekProfit": -1.81,
"oneMonthProfit": -3.13,
"threeMonthProfit": -36.37,
"oneYearProfit": -20.95
},
{
"globalType": "1",
"symbolCode": "272450",
"symbolName": "진에어",
"industryCode": "G20",
"industryName": "산업재",
"weight": 10,
"rank": 4,
"lastPrice": 10790,
"oneWeekProfit": -2.26,
"oneMonthProfit": 9.98,
"threeMonthProfit": -16.09,
"oneYearProfit": -17.44
},
{
"globalType": "1",
"symbolCode": "010950",
"symbolName": "S-Oil",
"industryCode": "G10",
"industryName": "에너지",
"weight": 10,
"rank": 7,
"lastPrice": 62200,
"oneWeekProfit": -2.5,
"oneMonthProfit": -4.01,
"threeMonthProfit": -11.14,
"oneYearProfit": -19.43
}
],
"industryWeightList": [
{
"itemCd": "G20",
"itemName": "산업재",
"weight": "30.00"
},
{
"itemCd": "G25",
"itemName": "경기관련소비재",
"weight": "20.00"
},
{
"itemCd": "G10",
"itemName": "에너지",
"weight": "10.00"
},
{
"itemCd": "G15",
"itemName": "소재",
"weight": "10.00"
},
{
"itemCd": "G45",
"itemName": "IT",
"weight": "30.00"
}
]
},
{
"code": "UP0011",
"stockName": "콴텍 가치투자 해외주식형2호",
"minimumHoldingWeight": 0,
"currentWeightRate": 0,
"recommendWeightRate": 8,
"title": "아메리칸 드림",
"tags": "#미국대형주,#강소기업,#플렉스기업",
"concept": "S&P 500 중에서 현금을 많이 보유하고 있고, 현금 흐름 개선으로 성장 잠재력이 높은 기업을 위주로 구성한 포트폴리오예요. 투자 위험 대비 높은 기대 수익을 추구하여, 단기 목돈 마련을 원하는 분에게 적합해요.",
"universe": "미국 중대형주(large cap+)",
"style": "중대형 가치주(value)",
"raCode": "RA205024",
"strategyId": "UP0011",
"strategyName": "콴텍 가치투자 해외주식형2호",
"pubStartDate": "20190211",
"baseDate": "20240903",
"pubYears": "5.5",
"indexInfo": {
"strategyId": "UP0011",
"investType": "2",
"operationAmount": 796330,
"oneWeekProfitRate": 1.96,
"oneMonthProfitRate": 1.56,
"threeMonthProfitRate": 1.27,
"sixMonthProfitRate": 9.49,
"oneYearProfitRate": 14.8,
"twoYearProfitRate": 26.26,
"threeYearProfitRate": 47.16,
"yearExchangeProfitIndex": 12.33,
"fullProfitRate": 98.33,
"standardDeviation": 0.23,
"beta": 0.5,
"sharpeRatio": 0.44,
"alpha": 0.09,
"infoRate": 0.35,
"trackError": 0.23,
"rewardRate": 1.95,
"mdd": -42.31
},
"strategySymbolList": [
{
"globalType": "2",
"symbolCode": "MPC",
"symbolName": "마라톤페트롤리엄",
"industryCode": "G10",
"industryName": "에너지",
"weight": 10,
"rank": 4,
"lastPrice": 177.12,
"oneWeekProfit": 4.25,
"oneMonthProfit": 9.82,
"threeMonthProfit": 1.84,
"oneYearProfit": 21.72
},
{
"globalType": "2",
"symbolCode": "WMT",
"symbolName": "월마트",
"industryCode": "G30",
"industryName": "필수소비재",
"weight": 10,
"rank": 2,
"lastPrice": 77.23,
"oneWeekProfit": 1.44,
"oneMonthProfit": 14.26,
"threeMonthProfit": 17.33,
"oneYearProfit": 45.05
},
{
"globalType": "2",
"symbolCode": "MO",
"symbolName": "알트리아",
"industryCode": "G30",
"industryName": "필수소비재",
"weight": 10,
"rank": 1,
"lastPrice": 53.77,
"oneWeekProfit": 1.43,
"oneMonthProfit": 8.95,
"threeMonthProfit": 18.03,
"oneYearProfit": 33.33
},
{
"globalType": "2",
"symbolCode": "QCOM",
"symbolName": "퀄컴",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 6,
"lastPrice": 175.32,
"oneWeekProfit": 0.79,
"oneMonthProfit": 10.63,
"threeMonthProfit": -14.85,
"oneYearProfit": 52.77
},
{
"globalType": "2",
"symbolCode": "AMAT",
"symbolName": "어플라이드머티리얼즈",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 10,
"lastPrice": 197.26,
"oneWeekProfit": 0.76,
"oneMonthProfit": 8.45,
"threeMonthProfit": -7.92,
"oneYearProfit": 28.92
},
{
"globalType": "2",
"symbolCode": "PM",
"symbolName": "필립모리스인터내셔널",
"industryCode": "G30",
"industryName": "필수소비재",
"weight": 10,
"rank": 8,
"lastPrice": 123.29,
"oneWeekProfit": 0.71,
"oneMonthProfit": 8.56,
"threeMonthProfit": 19.74,
"oneYearProfit": 35.97
},
{
"globalType": "2",
"symbolCode": "AAPL",
"symbolName": "애플",
"industryCode": "G45",
"industryName": "IT",
"weight": 10,
"rank": 3,
"lastPrice": 229,
"oneWeekProfit": 0.42,
"oneMonthProfit": 9.59,
"threeMonthProfit": 18.12,
"oneYearProfit": 21.33
},
{
"globalType": "2",
"symbolCode": "XOM",
"symbolName": "엑슨모빌",
"industryCode": "G10",
"industryName": "에너지",
"weight": 10,
"rank": 5,
"lastPrice": 117.94,
"oneWeekProfit": 0.22,
"oneMonthProfit": 3.58,
"threeMonthProfit": 3.87,
"oneYearProfit": 6.66
},
{
"globalType": "2",
"symbolCode": "EOG",
"symbolName": "EOG리소스",
"industryCode": "G10",
"industryName": "에너지",
"weight": 10,
"rank": 9,
"lastPrice": 128.82,
"oneWeekProfit": 0.2,
"oneMonthProfit": 4.62,
"threeMonthProfit": 8.42,
"oneYearProfit": -2.15
},
{
"globalType": "2",
"symbolCode": "NKE",
"symbolName": "나이키",
"industryCode": "G25",
"industryName": "경기관련소비재",
"weight": 10,
"rank": 7,
"lastPrice": 83.32,
"oneWeekProfit": -2.3,
"oneMonthProfit": 16.66,
"threeMonthProfit": -11.73,
"oneYearProfit": -16.04
}
],
"industryWeightList": [
{
"itemCd": "G30",
"itemName": "필수소비재",
"weight": "30.00"
},
{
"itemCd": "G25",
"itemName": "경기관련소비재",
"weight": "10.00"
},
{
"itemCd": "G10",
"itemName": "에너지",
"weight": "30.00"
},
{
"itemCd": "G45",
"itemName": "IT",
"weight": "30.00"
}
]
}
]
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB