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

(블록알고리즘)베타조정 포트폴리오

koa55 2020.01.27 06:45 조회수  1715 추천 7


아래 글에서 Joseph님의 도움을 받아 블록알고리즘으로 베타계수를 만들어보았습니다.


적용 전략은 일전에 푸른주전자님께서 개선해주신 "평균모멘텀스코어, 시즈널리티를 반영한 [저변동+모멘텀+벨류] 포트폴리오"이며


평균모멘텀스코어에 따라 편입종목의 베타계수를 조정하여 강세장에서는 시장에 민감하게 반응하는 종목을


그외의 경우에는 상대적으로 시장에 덜 민감한 종목을 담고자 합니다.




테스트 기간은 2009-07-01 ~ 2020-01-27 입니다.


누적수익률 : 978.26%

CAGR : 25.58%

표준편차 : 12.5%

MDD : 13.56%

Sharp Ratio : 1.66



도움을 주신 Joseph님, 푸른주전자님 감사합니다.

-----------------------------------------------------------------------------

2020.02.01 수정


시즈널리티 반영은 변동성과 MDD 개선에 도움이 되지만 누적수익률 감소폭이 지나치게 크다고 판단되며,


이미 평균모멘텀 스코어를 통해 비중조절을 하고 있으므로


5월 ~ 10월 기간동안 15%를 주식에 83%를 국채ETF에 투자하도록 변경.


11월 ~ 4월의 기간동안 주식에 투자하고 남는 자금을 국채ETF에 투자하도록 변경.


테스트 기간:  2009-07-01 ~ 2020-01-27 


누적수익률 : 1310.55%

CAGR : 28.85%

표준편차 : 12.71%

MDD : 13.27%

Sharp Ratio : 1.84




Created with Highcharts 4.2.7AlgorithmKOSPI2010-01-012011-01-012012-01-012013-01-012014-01-012015-01-012016-01-012017-01-012018-01-012019-01-012020-01-01-500%0%500%1000%1500%powered by IntelliQuant
Loading...
Algorithmpowered by IntelliQuant
초기투자금액
10000000
수익률
1310.55%
연평균 수익률
28.85%
연환산 표준편차
12.71%
베타
0.19
Sharpe Ratio
1.84
(젠센) 알파
0.23
최대 손실폭
13.27%
002024020KOSPI지수의 종가KOSPI지수의 종가i거래일 과거값‏>a0.98+a로 설정ifdo206020KOSPI지수의 종가KOSPI지수의 종가i거래일 과거값‏>a0.98+a로 설정ifdoifdoelse해당 거래일의 5‏≥해당 거래일의 10‏≤and0.1515x0.83b로 설정a로 설정0.99a15÷-b로 설정fori부터까지단위로dofori부터까지단위로dob로 설정a로 설정a15÷function비중조절_평균모멘텀 returnfunctionBeta_func1사용: ireturnKOSPI지수의 종가i거래일 과거값KOSPI지수의 종가i1+거래일 과거값-KOSPI지수의 종가i1+거래일 과거값÷y로 설정yfunctionBeta_func2사용: stock, ireturn수정종가i거래일 과거값수정종가i1+거래일 과거값-수정종가i1+거래일 과거값÷x로 설정xfunctionBeta사용: stockreturn000012401iBeta_func1사용:iKospi_dProfitstockiBeta_func2사용:stockiStock_dProfit바꾸기Sum_Stock_Profit만큼Stock_dProfit로 설정바꾸기Sum_Kospi_Profit만큼Kospi_dProfit로 설정12401iBeta_func1사용:iSum_Kospi_Profit240÷-stockiBeta_func2사용:stockiSum_Stock_Profit240÷-Kospi_DevStock_DevxCovar_x바꾸기Covar_y만큼Covar_x로 설정Stock_Dev로 설정Kospi_Dev로 설정12401iBeta_func1사용:iSum_Kospi_Profit240÷-iBeta_func1사용:iSum_Kospi_Profit240÷-xKospi_Var_x바꾸기Kospi_Var_y만큼Kospi_Var_x로 설정fori부터까지단위로dofori부터까지단위로dofori부터까지단위로doKospi_Var_y로 설정Covar_y로 설정Sum_Stock_Profit로 설정Sum_Kospi_Profit로 설정Covar_y240÷Kospi_Var_y240÷÷매월1비중조절_평균모멘텀bPort2로 설정Port1로 설정Port110수정종가240거래일 과거값0‏>수정종가수정종가240거래일 과거값-0‏>수정종가수정종가60거래일 과거값-0‏>수정종가수정종가240거래일 과거값-수정종가240거래일 과거값÷수정종가수정종가20거래일 과거값-수정종가20거래일 과거값÷-0‏>[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)[ 기본 필터 ]거래시장: KOSPI     KOSDAQETF 제외:      우선주 제외:  시가총액(금액):  0(억원)이상and10000000(억원)이하시가총액(%):  상위 100%이상유동성:  20일평균거래대금1(억원)이상당기순손실 종목 제외:  영업현금흐름 (-)종목 제외:  관리종목 제외:  * 상폐종목 및 거래정지 종목은 항상 제외stock24011의 BollingerBand (period=,devUp=,devDown=)의 상단밴드값stock24011의 BollingerBand (period=,devUp=,devDown=)의 하단밴드값÷100x[ 사용자 정의 지표  ]지표명 (영문,숫자만 가능) index1종목순위 산정기준 오름차순지표 정의 (종목데이터 이용 계산식 또는 함수)[ 종목별 기본지표 조합 ]밸류 팩터: PER  PBR  PSR  PCR퀄리티 팩터: ROA  ROE  ROS  GP/A모멘텀 팩터: 12개월수익률  6개월수익률  3개월수익률사이즈 팩터:  시가총액 작은 종목 우선a0.986x‏<stockBeta사용:stock0.7‏≤수정종가0‏>if만약 true이면만약 false이면a0.986x‏≥a0.9812x‏<andstockBeta사용:stock1‏≤수정종가0‏>if만약 true이면만약 false이면a0.9812x‏≥stockBeta사용:stock1‏>수정종가0‏>if만약 true이면만약 false이면[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)Port21채권 ETF KOSEF 국고채10년레버리지 (A167860)수정종가수정종가60거래일 과거값-0‏>[ 사용자 정의 필터 ]종목 필터링 조건식 (조건에 맞는 종목만 선택)[ 종목 직접추가 필터 ]종목 리스트 포트폴리오명(영문, 숫자만 가능) portfolio2투자비중종목수───────[ 유니버스 구성 ]종목 필터───────[ 포트폴리오 구성 ]종목선정 지표 (순위 합산)최종 필터 (종목수적용후)포트폴리오명(영문, 숫자만 가능) portfolio1투자비중종목수───────[ 유니버스 구성 ]종목 필터───────[ 포트폴리오 구성 ]종목선정 지표 (순위 합산)최종 필터 (종목수적용전)[ 기본 설정 ]거래수수료: 0.015%거래세: 0.5%거래가격 가정: 익일 시가기타 초기화 작업───────[ 리밸런싱 설정 ]리밸런싱 주기(기본값: 매일)시작일 진입 포함 리밸런싱 시 선행 작업포트폴리오 전략 등록───────[ 거래정보 표시 ]포트폴리오 구성내역 출력거래비용 내역 출력
댓글 7
와우!! 블록으로 구사할 수 있는 거의 모든 걸 활용하신 거 같네요. 
코딩이 약하시다고 하셨지만, 블록으로 고난도의 함수도 활용해서 이렇게 훌륭한 전략을 만드신 걸 보니 저희가 블록 알고리즘 환경울 업그레이드한 보람이 납니다.^^
Joseph 2020.01.27 11:53
대박입니다.감사히 잘 사용하겠습니다.
Doyun Lee 2020.01.27 14:22
와 정말 대단하십니다. 최고!
푸른주전자 2020.01.28 08:26
감사합니다! 앞으로도 새로운 것들 많이 만들어보겠습니다.
koa55 2020.01.28 12:23
블록을 사용하는 데, 많은 도움을 주시네요~ 감사합니다.
ivda 2020.02.10 15:32
훌륭하네요. 코로나장을 대입해 봐도 결과가 좋습니다.
goldyman 2020.05.15 16:25
대단합니다 잘 보고갑니다~!
PeterPark 2020.12.09 00:28
댓글 등록을 위해서 로그인해주세요.
 
최신 게시글