커뮤니티
내가 만든 전략들과 지식을 공유하고 토론합니다.

유니버스구성에 대한 질문

LimSung Hyun 2020.07.23 21:59 조회수  183 추천 0

특정 지표로 유니버스를 구성한 뒤, 그 유니버스를 대상으로 다시 조건을 걸어 포트폴리오를 구성하는 방법에 대해 질문드립니다.


per, pbr로 예를 들자면, 먼저 per가 낮은 200종목으로 유니버스를 구성한 뒤 그 200종목들 중 pbr이 낮은 순서대로 포트폴리오를 구성하는 방법을 알고 싶습니다.

댓글 6
스크립트 알고리즘으로는 여러 가지 방법으로 가능한데, 블록 알고리즘으로는 아직 어려운 일입니다.
랭킹함수를 사용할 수 있도록 지원하게 되면 가능해 질 것 같습니다만, 모호함 없이 랭킹 블록을 사용할 수 있게 만들기 위해서 고민하고 있습니다. ㅜㅜ
인텔리퀀트 2020.07.23 22:20
답변 감사합니다. 그럼 자바스크립트로 가능한 방법에 대해 알려주실 수 있을까요?
LimSung Hyun 2020.07.23 22:32
먼저 블록 알고리즘에서 PER만 선택하시고
블록 알고리즘을 스크립트로 내보내기 하신 후에

스크립트에서 builder_portfolio1 함수를 찾으세요
이 함수 하단에

port_result = port_result.filter(postfilterfn_portfolio1);
port_result = port_result.slice(0, targetSize);

위 부분을 아래와 같이 수정하시면 됩니다.

port_result = port_result.filter(postfilterfn_portfolio1);
// 200종목 선정
port_result = port_result.slice(0, 200);
// PBR 낮은순 정렬
var sortedByPbr = port_result.slice().sort(function(a,b){return a.getPBR()-b.getPBR();});
port_result = sortedByPbr.slice(0, targetSize);
인텔리퀀트 2020.07.24 13:43
감사합니다. 한 가지 더 질문드리겠습니다. 다수의 사용자지표 사용시 같은 방법을 적용할 경우(일부 사용자지표로 유니버스를 구성한 뒤 추가로 다른 사용자지표를 적용하여 필터링), 전체 통합랭킹을 구하는 함수를 일부 지표의 통합랭킹을 구하는 함수로 바꿔야 할 것으로 생각되는데 이 부분을 어떻게 바꿔야 하는지에 대해 질문드립니다.
LimSung Hyun 2020.07.25 01:19
블록으로도 가능은 한 것 같은데 올려볼까요
koa55 2020.07.27 20:20
koa55/그래주시면 감사하겠습니다~!!
LimSung Hyun 2020.07.28 08:27
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글