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

포트폴리오에 담긴 종목 이름 출력 방법

erlk0nig 2020.02.02 02:06 조회수  175 추천 0

OnDayClose 함수에 다음 코드를 추가했습니다


 var eggs = IQAccount.getDefaultAccount().getEggs();

        for (var egg in eggs) {

            var s = IQStock.getStock(egg.code)

             logger.debug(s.name)

        }


포트폴리오에 담긴 주식 이름이 모두 출력될 것으로 기대했는데 오류가 발생하네요
(TypeError: Cannot get property "name" of null in <eval> at line number 93)


포폴에 담긴 주식을 모두 출력하려면 어떻게 해야하나요 
댓글 1
 for (var egg in eggs) {  ==> 이 부분이 잘못된 것으로 보입니다. eggs가 배열로 넘어 오기 때문에 egg에는 그 객체가 아닌 index 즉, 0, 1, 2, ... 값을 갖게 됩니다. 따라서, 해당 라인을 다음과 같이 수정해 보시길 권장합니다:
    for (var i = 0; i < eggs.length; i++) {
        var egg = eggs[i];

그리고, 혹시 리밸런싱 때 새로 구성한 종목 목록을 출력하고 싶으신 것이라면, Account 객체에서 egg를 가져오실 것이 아니라, Basket 객체의 newEgg를 가져와서 출력시켜 주어야 합니다. (원래는 newEgg에 대한 오용을 막기위해 도움말에 포함을 안 했는데, 향후에 관련 api도 추가하고 개선하도록 하겠습니다.)
블록 알고리즘의 샘플을 가지고 스크립트로 내보내기 해 보시면 포트폴리오 종목 출력하는 코드가 들어 있으니, 참고하시면 될 것 같습니다.
인텔리퀀트 2020.02.03 13:08
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글