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

유니버스 구성 관련 질문

Leo Hwang 2017.08.24 20:55 조회수  366 추천 0

아래와 같이 유니버스를 구성 할 때 양수만 남기고 싶을 때 어떻게 해야 할까요?



function portfolioBuilder1(targetSize) {

var universe = IQStock.filter(stockFilter);

    var sortedByPER = universe.slice().sort( function(a, b) { return ep(b) - ep(a); }); 

    var sortedByPbr = universe.slice().sort( function(a, b) { return bp(b) - bp(a); });  

    var sortedByPsr = universe.slice().sort( function(a, b) { return sp(b) - sp(a); });     

    var sortedByPcr = universe.slice().sort( function(a, b) { return cp(b) - cp(a); });        

    var sortedByGPA4 = universe.slice().sort( function(a, b) { return gpa4(b) - gpa4(a); });  

    var sortedByAG4 = universe.slice().sort( function(a, b) { return AssetGrowth4(b) - AssetGrowth4(a); }); 

    var sortedByYield = universe.slice().sort( function(a, b) { return a.getDividendYieldRatio() - b.getDividendYieldRatio(); }); 

    

    universe.forEach( function(stock) {

        stock.setScore('rank_sum', 

                       sortedByPER.indexOf(stock) + 

                       sortedByPbr.indexOf(stock) + 

                       sortedByPsr.indexOf(stock) + 

                       sortedByPcr.indexOf(stock) + 

                       sortedByAG4.indexOf(stock) +

                       sortedByGPA4.indexOf(stock) +

                       sortedByYield.indexOf(stock)                      

                      ); 

});

댓글 2
여러 방법이 있겠지만 stockFilter  함수에서 ep, bp, sp 등등을 계산해보고 음수면 빼는 방법이 가장 효율적일것 같습니다.
그러면 처음부터 필터링되니까 정렬도 setScore도 안하겠죠.
등엔트로피 2017.08.25 10:59
앗! 답변 감사합니다!
Leo Hwang 2017.08.25 13:42
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글