QuantX 투자 알고리즘의 성능 평가

개시하다


자기 소개


저는 SmartTrade 회사에서 실습한 모리슨입니다.
이과대학의 학부 2학년은 정보학과 전공이다.
트위터 계정여기.

이번에 할 일


QuantX의 샘플 알고리즘에 따라 지난 1년간의 일차 손익률을 pyfolio로 알고린의 성능을 평가한다.
※ 단, 투자자 주식만 기본 4∼5개 품목에서 토픽스 코어 30으로 변경.
참조: https://github.com/smartradev/quantx-lab/blob/master/notebooks/pyfolio_sample01.ipynb
Google Colaboratory에서 QuantX SDK를 사용하여 설치합니다.
설치하기 전에, 나는 QuantX와pyfolio를 대략적으로 설명할 것이다.

QuantX


QuantX는 주식회사 SmartTrade가 제공하는 판매 주식 가격 예측 알고리즘의 서비스다.
QuantX 팩토리는 python을 이용해 주가 예측 알고리즘을 개발할 수 있다.
・ 웹 브라우저에서 실행 가능하며 환경 구축 필요 없음
· 구글 계정 등을 통해 간단히 등록 가능
・회 테스트 결과는 자동으로 plot
등등, 아주 편리합니다. 꼭 사용하세요.

pyfolio


3년 전 파이톤 라이브러리Quantopian Inc는 조합 성능과 위험 분석에 도움이 되는 파이톤 라이브러리를 발표했다.
주요 기능은 각종 도표를 그려서 전체 조합을 분석하는 데 도움을 주는 것이다.
(여러 차트를 요약한 것을 Tear sheet이라고 합니다.)
Google의 일일 대응 사격을 토대로 팀 시트를 계산한 기사를 작성했습니다.밑에 붙이다.
"Pyfolio 써주세요".
↑의 보도는 공식 github를 참고했다.저기도 붙여.
https://github.com/quantopian/pyfolio/blob/master/pyfolio/examples/full_tear_sheet_example.ipynb

이루어지다


QuantX에 로그인한 후 신청하십시오.

팀 시트 생성 데이터 가져오기


pyfolio에 팀 sheet을 그리려면 알고리즘의 후 테스트 결과는pandas의 시리즈형으로 전달되어야 합니다.
구글 Colaboratory의 Quantxsdk 사용부터 시작합니다.
qunatxlab에서 제공하는 이 페이지
https://github.com/smartradev/quantx-lab/blob/master/notebooks/firstStep_for_QuantX_SDK.ipynb
이 글
https://qiita.com/katakyo/items/ac01dcd6c692c3585596
참고해주세요.

샘플 알고리즘 생성 테스트 결과 실례

# quantx_sdkのインストール
pip install quantx_sdk
자신의 계정에서 다양한 키를 가져와 다음 변수에 저장합니다.python
public_key = '#################'
secret_key = '#################'
#sdkをインポート
from quantx_sdk import QX
# QuantXのアカウントのオブジェクトを生成
qx = QX(public_key, secret_key)
샘플 알고리즘의 해시 번호에 따라 프로젝트를 가져옵니다.
# サンプルコードのハッシュ番号の取得
project_hash = "ac5fd8bd84344542985796a04e29ab22"
# ハッシュ番号によるプロジェクトの取得
project = qx.project(project_hash)
# ソースコードも取得できます
source = project.source()
# コメントアウトを外すとソースコードが見を見ることが出来ます
#print(souce)
테스트 매개 변수로 돌아가기(설정 기간 및 초기 자금)
bt_params = {
 'capital_base': 10000000,
 'engine': 'maron-0.0.5',
 'from_date': '2018-01-01',
 'to_date': '2019-01-01'
}
'engine': 'maron-0.0.5'는 사용하는 엔진의 이름과 버전입니다.
(최근의 새로운 엔진에 대한 개조가 완료된 후 다양한 기능을 갖추고 있다. QuantX를 처음 접하는 사람이 있다면 이것에 관심이 있다면 기쁠 것이다.)
그리고 테스트를 실행하여 테스트 결과의 실례를 생성합니다.
# バックテストの実行
bt = project.backtest()

# バックテスト結果のインスタンスを生成
join = bt.join()

# 結果サマリーを取得
summary = join.summary(bt_params)
summary
위의 입력을 통해 아래 테스트 결과의 요약을 얻을 수 있습니다.
백 테스트 요약은 이런 느낌으로 표시됩니다.
{'2018': 0.04916299999999918,
 'Alpha': 0.1285752514839626,
 'Beta': [0.4497082518823483],
 'MaxDrawdown': -0.12247080905916585,
 'ReturnRatio': '4.92',
 'ReturnValue': 10491630,
 'SharpeRatio': 0.3909388570491606,
 'SignalCount': 318,
 'TradingDays': 245,
 'Volatility': 0.15884937729053428}

생성된 실례를 사용하여 매일 되돌아오기

benchmark() 방법을 통해 반테스트 기간 내의 하루하루의 각종 데이터를 얻는다.
df = join.benchmark()
df는 pandas의 DataFrame형입니다.

・・・

이곳에서 일차 반격을 얻다.
returns = df['portfolio_daily_returns']
이것으로 끝낼 준비를 하다.
다음은 이returns를pyfolio를 그리는 티어 시트에 건네주는 방법으로 끝난다.

tear sheet 그리기

pf.create_returns_tear_sheet(returns)

내보내기tear sheet




총결산


한 마디로 하면 우리는pyfolio로 알고리즘을 평가하는 목표를 달성했다.
현재 퀀트X가 산출한 평가 지표보다 종류가 더 많은데 다양한 사다리를 그려줘서 정말 고맙다.
다만 이 수치와 도표를 바탕으로 어떤 분석을 하고 알고리즘을 개선할지 고려해야 한다.
읽어주셔서 감사합니다.
피드백과 의견이 있으면 댓글로 남겨주세요.
끝맺다

좋은 웹페이지 즐겨찾기