EITEN은 EIGEN 포트폴리오 , 최소 분산 포트폴리오 , 최대 Sharpe 비율 포트폴리오 및 유전자 알고리즘 기반 포트폴리오와 같은 다양한 통계 및 알고리즘 투자 전략을 구현하는 Tradytics의 오픈 소스 툴킷입니다. 그것은 당신이 시장을 이길 수있는 자체 주식으로 자체 포트폴리오를 구축 할 수있게합니다. Eiten에 포함 된 엄격한 테스트 프레임 워크를 통해 포트폴리오에 대한 신뢰를 얻을 수 있습니다.
이러한 도구를 깊이 논의하고 작업중인 더 많은 도구에 대해 이야기하려면 더 많은 도구가있는 불화 채널에 합류하십시오.
길 | 설명 |
---|---|
아이 텐 | 메인 폴더. |
└ 수치 | 이 Github 리포지토리의 수치. |
└ 주식 | 폴더 포트폴리오를 작성하는 데 사용할 주식 목록을 유지하는 폴더. |
전략 | 파이썬에서 구현 된 많은 전략. |
백 테스터 .py | 백 테스트 및 전진이 모든 포트폴리오를 테스트하는 백 테스트 모듈. |
data_loader.py | Yahoo Finance의 데이터로드 모듈. |
portfolio_manager.py | 많은 논쟁을 취하고 여러 포트폴리오를 생성하는 메인 파일. |
Simulator.py | 역사적 수익과 몬테 카를로를 사용하는 시뮬레이터는 포트폴리오의 미래 가격을 시뮬레이션합니다. |
Strategy_Manager.py | '전략'폴더에 구현 된 전략을 관리합니다. |
모델을 교육하고 테스트하려면 다음 패키지를 설치해야합니다.
다음 명령을 사용하여 모든 패키지를 설치할 수 있습니다. 스크립트는 Python3을 사용하여 작성되었습니다.
pip install -r requirements.txt
툴킷에 제공된 모든 전략을 어떻게 사용하여 포트폴리오를 구축 할 수 있는지 살펴 보겠습니다. 가장 먼저해야 할 일은 주식 폴더에서 Stocks.txt 파일을 수정하고 선택한 주식을 추가하는 것입니다. 5 ~ 50 개의 주식이 적합해야 할 것이 좋습니다. 우리는 이미 AAPL, MSFT, TSLA 등과 같은 많은 기술 주식이 포함 된 작은 주식 목록을 작성했습니다. 이것은 실행 해야하는 주요 명령입니다.
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 1 --market_index QQQ --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
이 명령은 지난 90 일을 제외한 지난 5 년간의 일일 데이터를 사용하고 여러 포트폴리오를 구축합니다. 이러한 포트폴리오를 기반으로 90 일의 샘플 데이터에서 테스트하고 각 포트폴리오의 성능을 보여줍니다. 마지막으로, 여기에서 QQQ 인 시장 지수 선택과 성능을 비교합니다. 각 매개 변수를 자세히 설명해 봅시다.
다음은 다양한 유형의 포트폴리오를 구축하기위한 몇 가지 예입니다.
python portfolio_manager.py --is_test 1 --future_bars 30 --data_granularity_minutes 3600 --history_to_use 90 --apply_noise_filtering 1 --market_index QQQ --only_long 0 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
python portfolio_manager.py --is_test 0 --future_bars 0 --data_granularity_minutes 60 --history_to_use all --apply_noise_filtering 1 --market_index SPY --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 0 --market_index SQQQ --only_long 1 --eigen_portfolio_number 1 --stocks_file_path stocks/stocks.txt
현재 툴킷은 현재 4 가지 포트폴리오 전략을 지원합니다.
위의 명령을 실행하면 당사의 도구는 이러한 모든 전략에서 포트폴리오를 생성하여 귀하에게 제공합니다. 결과 포트폴리오를 살펴 보겠습니다.
이 결과를 위해, 우리는 주식/stocks.txt 파일에 9 개의 주식을 사용합니다. 위의 명령을 실행하면 먼저 네 가지 전략 모두에 대한 포트폴리오 가중치를 얻습니다. 테스트 목적으로 위의 명령은 지난 5 년간의 일일 데이터를 4 월 29 일까지 사용했습니다. 올해의 나머지 데이터는 포트폴리오 전략을 구축 할 때 포트폴리오 전략에 액세스 할 수 없었습니다.
내 포트폴리오에 다른 주식이 필요한 경우 어떻게해야합니까? : Stocks.txt 파일의 주식을 변경하고 도구를 다시 실행하기 만하면됩니다. 다음은 포트폴리오를 얻기 위해 실행 한 최종 명령입니다.
python portfolio_manager.py --is_test 1 --future_bars 90 --data_granularity_minutes 3600 --history_to_use all --apply_noise_filtering 1 --market_index QQQ --only_long 1 --eigen_portfolio_number 3 --stocks_file_path stocks/stocks.txt
우리는 고유 포트폴리오가 TSLA에 큰 가중치를주는 반면 다른 사람들은 무게를 더 균일하게 나누고 있음을 알 수 있습니다. 여기서 일어나는 흥미로운 현상은 모든 전략이 자동으로 배운 SQQQ 와의 헤징입니다. 모든 도구는 SQQQ에 약간의 긍정적 인 가중치를 할당하는 한편 다른 주식에 긍정적 인 가중치를 할당하여 전략이 자동으로 포트폴리오를 위험에서 헤지하려고한다는 것을 나타냅니다. 분명히 이것은 완벽하지는 않지만 그것이 일어나고 있다는 사실은 매력적입니다. 2020 년 4 월 29 일 이전 5 년 동안 백 테스트 결과를 살펴 보겠습니다.
백 테스트는 꽤 고무적으로 보입니다. 검은 색 점선은 시장 지수, 즉 QQQ 입니다. 다른 줄은 전략입니다. 우리의 맞춤형 유전자 알고리즘 구현은 다른 전략의 고급 버전이기 때문에 최상의 백 테스트 결과를 가진 것으로 보입니다. TSLA의 무게가 가장 큰 고유 한 포트폴리오는 가장 큰 변동성을 가지고 있지만 이익도 매우 높습니다. 마지막으로, 예상대로 MVP는 최소 분산과 궁극적으로 최소 이익을 가지고 있습니다. 그러나 차이가 매우 낮기 때문에 안전을 유지하려는 사람들에게는 좋은 포트폴리오입니다. 가장 흥미로운 부분은 다음에 나옵니다. 이러한 포트폴리오의 앞으로 또는 미래의 테스트 결과를 살펴 보겠습니다.
이 결과는 2020 년 4 월 29 일부터 2020 년 9 월 4 일까지입니다. Eigen 포트폴리오는 최고를 수행했지만 많은 변동성이있었습니다. 또한, 대부분의 수익은 지난 몇 개월 동안 TSLA 로켓으로 인한 것입니다. 그 후, GA 알고리즘은 시장 지수를 이길 때 상당히 효과적으로 작동했습니다. 다시, 예상대로, MVP는 위험이 가장 낮고 보상을 받았으며 4-5 개월 안에 천천히 증가했습니다. 이것은 우리가 다양한 종류의 위험 및 보상 프로필에 대한 다양한 포트폴리오를 개발 한 이러한 알고리즘 포트폴리오 최적화 전략의 효과와 힘을 보여줍니다.
우리는이 툴킷을 거래 커뮤니티와 공유하게되어 기쁩니다. 사람들이 그것을 좋아하고 기여하기를 바랍니다. 거래의 모든 것의 경우와 마찬가지로, 이러한 전략은 완벽하지는 않지만 엄격한 이론과 몇 가지 훌륭한 경험적 결과를 기반으로합니다. 이러한 전략과 거래 할 때주의를 기울이고 항상 위험을 관리하십시오. 위의 결과는 체리가 선택되지 않았지만 지난 몇 개월 동안 시장은 매우 강세를 보였으며, 이는 위의 강력한 결과를 가져 왔습니다. 우리는 지역 사회가 다른 전략을 시도하고 우리와 공유하기를 원합니다.
Scott Rome의 블로그에 특별한 감사를드립니다. 고유 포트폴리오 및 최소 분산 포트폴리오 개념은 그의 블로그 게시물에서 나왔습니다. 공분산 매트릭스의 고유 값을 필터링하기위한 코드는 대부분 그의 게시물 중 하나에서 얻었습니다.
전환기의 제품
저작권 (C) 2020-Present, tradytics.com