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

성장율 계산시 마이너스 재무데이터 처리 코드 부탁드립니다.

칸트 2019.06.19 21:36 조회수  352 추천 0


안녕하세요.

원 재무데이터의 마이너스 수치의 성장율을 계산시 처리 방법을 부탁드립니다.

나름 찾아보니 math.abs()로 하면 된다고 하는데 적용해보니 안 되는 것 같아서요.


예로,

1분기 순이익 -50

2분기 순이익 -30

일 때,

실제 40% 성장을 했는데.. 이를 적용하는 로직을 모르겠습니다.





일반적일 때에는,

function npgrow(stock) { stock.loadPrevData(2, 0, 0);

    return stock.getFundamentalNetProfit() / stock.getFundamentalNetProfit(1) -1  ; }

이렇게 하면 되고..


조건을 넣으면,

function npgrow(stock) { stock.loadPrevData(2, 0, 0);

  if ( stock.getFundamentalNetProfit() / stock.getFundamentalNetProfit(1)  < 1.1)  {return false; }

  return true; }

이렇게 하면 될 것 같은데요.


부탁드립니다.

고맙습니다.


ps. 게시글 검색창 부탁드립니다. ㅠ


댓글 4
function npgrow(stock) { stock.loadPrevData(2, 0, 0);

    return (stock.getFundamentalNetProfit() - stock.getFundamentalNetProfit(1) ) / math.abs(stock.getFundamentalNetProfit(1))  ; }

로 해보시면 될 것 같네요,
 -50 -> -30 성장률 40%인 경우,
(-30+50)/abs(-50) = 0.4

50 -> 80 성장률 60%인 경우,
(80-50)/abs(50) = 0.6

의도한 대로 동작할 것 같네요^^
MLscientist 2019.06.22 15:42
저도 그렇게 해봤는데, 레퍼런스 에러로 떠서 그렇습니다;;;
math가 정의되지 않았다고 하네요. 
칸트 2019.06.24 21:19
ㅎㅎ 문제를 찾았습니다. math가 아니라 Math로 해야 하네요.
고맙습니다.

그나저나 총 10종목 동일비중(1/n) 배분이, 5종목 필터링 되면 계좌평가총액에서 1/5이 되어야 하는데,
10%*5종목이 되네요. 나머지 1/2은 현금이 되고..ㅠ
아.. 여전히 어렵네요 ㅠㅠ ㅎㅎ
칸트 2019.06.24 22:51
위 댓글 내용으로
칸트님이 원하시는 로직을 작성하시려면

buildPortfolio 전에
바스켓의 targetSize 를 조정하셔야 됩니다.

예를 들어 선언한 바스켓이 stock_port이면
stock_port.targetSize = 5
인텔리퀀트 2019.06.25 16:45
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글