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

(블록알고리즘) 평균모멘텀스코어, 시즈널리티를 반영한 [저변동+모멘텀+벨류] 포트폴리오

koa55 2020.01.22 06:48 조회수  1110 추천 10

코딩이 능숙하지 않아 평소 다른 분들의 성과를 눈팅만 했는데, 블록 알고리즘이 개선되어 매우 기쁩니다.


앞으로 블록알고리즘 쪽으로도 게시글이 활성화되어 더 많은 분들이 인텔리퀀트를 찾길 바랍니다.




알고리즘을 보면 자금관리는 2가지 방법으로 이루어집니다.


평균모멘텀은 1,2,3...12개월 각각의 수익률이 (+)인 개수를 구하여 12로 나눈 만큼의 비중을 투자합니다.


x=x+1로 설정하여야 하나 예수금 부족이 자주 발생하여 최대 0.98의 비중을 투자합니다.


동시에 5월-10월의 기간동안은 주식없이 Kodex국고채3년에만 투자합니다.


유니버스는 20일 평균 거래대금 1억이상, 12개월 모멘텀과 1개월 모멘텀이 (+)인 종목으로 구성하지만


최근 1개월 간 급상승한 종목은 피하고자 합니다.


종목선정은 PER, PSR, GP/A, 표준편차의 순위를 고려하여 이루어집니다.


해당 알고리즘의 성과는 2009.07.01 ~ 2020.01.21의 기간동안 CAGR 19.28%, 표준편차 11.29%, MDD 12.80% 입니다.


2004.01.01 ~ 2020.01.01 기간의 성과(채권X,현금보유)는 CAGR 20.69%, 표준편차 13.26%, MDD 14.75%


피드백 주시면 감사하겠습니다 ^~^



댓글 9
와우!! 코딩이 능숙하지 않다고 하셨지만, 블록은 고수이신거 같은데요 ^^
Joseph 2020.01.22 09:31
평균모멘텀 함수 만드신거 보니 내공이 대단하십니다. 
푸른주전자 2020.01.22 09:36
코스피 급락에도 방어를 굉장히 잘해주는 전략이네요!!
앞으로도 좋은 전략 공유해주시면 좋겠네요 : ) 
추천 꾸욱 누르고 갑니다!! 
퀀트유망주 2020.01.22 10:16
블록을 사용하시는 유저분을 만나 뵙게 되어 반갑습니다.
저도 블록알고리즘을 연습 중인데 많은 교류가 있으면 좋겠습니다.
빨리 연습해서, koa55님처럼 능숙하고 자유롭게 블록을 이용할 수 있으면 좋겠습니다.
Chris 2020.01.22 10:16
한 가지 개선할 수 있는 부분을 팁을 드리자면…
portfolio1의 투자비중으로 평균모멘텀 함수를 직접 호출해서 입력하고 있고, portfolio2의 투자비중은 이 함수에서 함께 계산되어진 y를 사용하고 있습니다. 이 때 문제는 블록을 이리저리 조립하다가 두 포트폴리오 블록의 순서가 바뀌면 y가 제대로 계산이 안 될 수 있습니다.

그래서, 이런 문제점을 해결하기 위해 이번 블록 알고리즘 환경 업그레이드 때 전략설정 블록에 매 리밸런싱 때 수행할  선행작업을 입력으로 받을 수 있게 하였습니다. 따라서, 평균모멘텀 함수 호출을 이 위치에서 미리 하여서 y변수도 미리 계산되도록 하고, 리턴값은 새로운 변수(예를 들어, x_avg)로 받아 portfolio1의 투자비중은 이 변수를 바로 입력으로 꽂아 주면 더 좋을 것 같습니다.
Joseph 2020.01.22 14:16
다들 감사합니다. 
주신 의견은 반영하여 개선해보겠습니다.
koa55 2020.01.22 14:46
안녕하세요 koa55 님

사용자 정의 지표에서
(볼린저밴드 상단값 - 볼린저밴드 중앙값)을 오름차순으로 정의 하셨는데
이렇게 되면 주가가 작은 종목들부터 큰 종목들 순으로 나열이 될 것 같습니다
만약 저 변동성을 생각하셨다면
(볼린저밴드 상단값 / 볼린저밴드 중앙값)을 오름차순이 맞을 것 같습니다
푸른주전자 2020.01.22 15:40
혹시나 싶어 
사용자 정의 지표에서 볼린저밴드 수식을 삭제하고 수정종가로만 테스트 해봤는데
비슷한 결과 값이 나옵니다.
푸른주전자 2020.01.22 15:46
감사합니다. 푸른주전자님 !
반영하여 개선하고, 변동성 부분은 좀 더 고민해보겠습니다!
koa55 2020.01.22 16:32
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글