안녕하세요. 등엔트로피입니다.
아래 질문에 답변하기에 너무 긴 내용이라 별도의 글을 하나 팠습니다.
바로 아래 보이는 메뉴의 알고리즘을 클릭하시면 자세한 코드를 보실 수 있습니다.
(perMomentumBuilder 함수 참고)
저희가 이 기회에 강조하고 싶은건 모멘텀에서 사용하는 수정주가입니다.
모멘텀을 구하기 위해서는 수정주가를 사용해야 하는것은 누구나 알고 있지요.
그러나 정확한 수정주가를 구하기는 생각보다 어렵습니다.
각종 합병, 분할, 배당등의 이벤트를 모두 트랙킹해야 하거든요.
저희는 정확한 수정주가를 위해 한땀한땀 전수조사를 통해 이 데이터를 만들었습니다.
이태리장인 처럼요. :)
아래 "내 알고리즘에 복사" 버튼을 누르시면 내 알고리즘으로 가져와서 이리저리 변경하면서 테스트 해 볼 수 있습니다.
정성어린 답변 감사드립니다 :) 공부가 부족해서 질문 투성이네요. 추가 질문을 드려보자면 원래 질문의 의도는 모멘텀을 구해서 0 이하인 종목을 제외하고 basket에 담으려 합니다. 근데 모멘텀 0 이상인 종목만 담았더니 MAX_SIZE의 영향이 남아서 종목당 매수액에 문제가 되더라고요 (ex. 투자금 1000만원 // 모멘텀 필터된 종목은 10종목일경우 = 종목당 100만원씩 매수 의도; 그러나 MAX_SIZE = 20 이라 종목당 50만원씩만 매수됨) 그래서 MAX_SIZE를 수정하려고 stockfilter 에 모멘텀 0인 종목을 제외시켜 momentumPort 로 지정하고 다음과 같이 추가했습니다. var momentumPort = modelPortfolio.filter(function(stock) { ~~~ 위의 내용들~ } ); MAX_SIZE = (momentumPort == null) ? 0 : momentumPort.length; return momentumPort; 이렇게 했는데 MAX_SIZE는 그대로더라고요. 그래서 onDayClose 쪽으로 var account = IQAccount.getDefaultAccount(); basket = new Basket(account, MAX_SIZE, IQEnvironment.aum * STOCK_WEIGHT); basket.setPortfolioBuilder(portfolioBuilder); 이 항목들을 옮겨놨는데 또 에러 ㅠㅠ 어떻게 해야할까요?