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

질문드립니다(인텔리퀀트 플랫폼에 없는 데이터 추가해서 통합랭킹 뽑아내기)

LimSung Hyun 2020.09.10 01:56 조회수  181 추천 2

인텔리퀀트에 없는 데이터로 팩터를 만든 후, 그에 대한 랭킹순위를 점수화해서 인텔리퀀트에 있는 재무팩터들과의 통합랭킹을 구하고자 합니다.


예를 들면 최근 한달동안 검색빈도가 가장 높았던 기업들의 순위를 구한 뒤, 그 순위에 대한 랭킹점수를 인텔리퀀트에 입력하는 식으로요.


그런데 점수를 매기는 것까진 좋은데, 이걸 어떻게 인텔리퀀트내 팩터들과 통합랭킹을 구해야 할지 잘 감이 안잡히네요.


어떤 식으로 코딩해야 할지 질문드립니다.


(퀀토피안 보니까 셀프서비스데이터가 있어서 사용자가 임의로 정의한 데이터를 쓸수 있게 해놨던데 그런 서비스가 추가되면 더 좋을거 같습니다)

댓글 5
사실은, 초창기에 그런 기능을 제공했었습니다.
사용자가 직접 데이터를 준비해서 (각 종목에 대한 특정 값을 csv 파일로 만들어서) 업로드한 다음, 스크립트에서 불러다 쓸 수 있게 했었는데요.. 쓰는 분이 거의 없어서 이제는 없앤 기능 중의 하나입니다.

현재 원하시는 것을 하려면, 스크립트에서 해당 데이터를 종목별 스코어 점수로 저장을 시키고 기존 팩터들의 점수를  조합하듯이 코딩하시면 되는데.. 
...
stock.setScore("myRank", getMyRank(stock));
...
문제는 직접 준비하신 랭킹점수를 스크립트에 입력하는 방법이 수동으로 일일이 써 주는 방법 밖에는 없다는 점입니다.

단순하게 떠오르는 방법은, 엑셀에서 
A005930    1
A035720    2
A000660    3
...
이런식으로 랭킹점수를 일단 정리하신 데이터를 가지고,


"A005930" : 1,
"A035720" : 2,
"A000660" : 3,
...
과 같은 형태로 문자열(엑셀에서는 텍스트) 포맷으로 추출하셔서, 인텔리퀀트에서 전략 스크립트 코딩 편집창에서

var myRank = {
   ... (이곳에 붙여넣기)
};

function getMyRank(stock) {
     if (myRank[stock.code] == undefined)
         return 99999999;

     return myRank[stock.code];
}

위의 코드처럼 데이터를 입력해 주는 코드를 스크립트에 포함시키면  수동 입력 작업을 그나마 좀 쉽게 할  수 있을 것 같습니다.

* 위의 코드는 예시입니다. 원하시는 목적에 참고해서 적용하시기 바랍니다.^^

인텔리퀀트 2020.09.10 11:18
답변감사합니다. 이미 있던 서비스였는데 없어졌다니 아쉽네요. 개인투자자들 자율성을 높일 좋은 서비스같은데.
LimSung Hyun 2020.09.10 14:02
잘 보았습니다 도움이 됐습니다.
WillPark 2021.01.10 21:19
답변 감사합니다 좋은 내용이네요
EllaKim 2021.02.23 20:36
있었으면 좋았을텐데 아쉽네요
FlexPark 2021.03.27 21:25
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글