Monday 5 February 2018

알고리즘 거래 전략 파이썬


Python 알고리즘 트레이딩 라이브러리.
PyAlgoTrade는 백 트레이싱과 종이 트레이딩 및 라이브 트레이딩을 지원하는 Python Algorithmic Trading Library입니다. 거래 전략에 대한 아이디어가 있고이를 과거 데이터로 평가하고 그것이 어떻게 작동하는지보고 싶다고합시다. PyAlgoTrade는 최소한의 노력으로 그렇게 할 수 있습니다.
주요 특징.
완전히 문서화 됨. 이벤트 중심. Market, Limit, Stop 및 StopLimit 주문을 지원합니다. 야후! 지원 금융, Google Finance 및 NinjaTrader CSV 파일 CSV 형식으로 모든 유형의 시계열 데이터를 지원합니다 (예 : Quandl). Bitstamp를 통한 Bitcoin 거래 지원. 기술 지표 및 SMA, WMA, EMA, RSI, Bollinger Bands, Hurst 지수 및 기타 필터. 샤프 비율 및 인출 분석과 같은 성능 메트릭 실시간 트위터 이벤트 처리. 이벤트 프로파일 러. TA-Lib 통합.
수평 적으로 확장하기 쉽습니다. 즉, 전략을 백 테스트하기 위해 하나 이상의 컴퓨터를 사용합니다.
PyAlgoTrade는 무료 오픈 소스이며 Apache License, Version 2.0에 따라 라이센스가 부여됩니다.

QuantStart.
빠르게 성장하는 소매점 퀀텀 트레이더 커뮤니티를 지원하는 Quantcademy 개인 회원 포털에 가입하십시오. 당신은 당신의 가장 중요한 퀀트 트레이딩 질문에 대답 할 준비가되어있는 지식이 풍부하고 마음이 맞는 퀀트 트레이더 그룹을 찾을 수 있습니다.
퀀트 트레이딩에 관한 나의 eBook을 확인해보십시오. 여기서 저는 파이썬 툴로 수익성 높은 체계적인 트레이딩 전략을 만드는 법을 가르쳐드립니다.
Python 및 R을 사용하여 시계열 분석, 기계 학습 및 베이지안 통계를 사용하는 고급 거래 전략에 관한 새로운 전자 책을 살펴보십시오.
2013 년 4 월 19 일 Michael Halls-Moore 작성
이 기사에서는 수익성있는 알고리즘 거래 전략을 식별하는 방법을 소개하고자합니다. 오늘 우리의 목표는 그러한 시스템을 찾고 평가하고 선택하는 방법을 자세히 이해하는 것입니다. 어떻게 전략을 식별하는 것이 개인의 선호에 관한 것인가와 전략의 성과, 테스트를위한 과거 데이터의 유형과 양을 결정하는 방법, 거래 전략을 냉정하게 평가하는 방법, 마지막으로 백 테스트 단계로 진행하는 방법에 대해 설명합니다. 전략 구현.
거래를위한 자신 만의 개인 선호도 확인.
성공적인 거래자가되기 위해서는 - 임의적으로 또는 알고리즘 적으로 - 정직한 질문을하는 것이 필요합니다. 트레이딩은 놀라운 속도로 돈을 잃을 수있는 능력을 제공하므로 선택한 전략을 이해하는 데 필요한만큼 "자신을 알아야합니다".
나는 거래에서 가장 중요한 고려 사항이 자신의 성격을 인식하고 있다고 말할 수 있습니다. 특히 거래 및 알고리즘 거래는 상당한 수준의 규율, 인내심 및 정서적 인 분리가 필요합니다. 알고리즘이 당신을 위해 당신의 거래를 수행하게하기 때문에, 그것이 실행될 때 전략에 간섭하지 않도록 해결할 필요가 있습니다. 이것은 특히 드로우 다운이 연장 된 기간에 매우 어려울 수 있습니다. 그러나 백 테스트에서 수익성이 높은 것으로 입증 된 많은 전략은 단순한 간섭으로 인해 망가질 수 있습니다. 당신이 알고리즘 트레이딩의 세계에 들어가기를 원한다면 감정적으로 테스트 될 것이고 성공하기 위해서는 이러한 어려움을 극복해야한다는 것을 이해하십시오!
다음 고려 사항은 시간 중 하나입니다. 풀 타임 직업이 있습니까? 파트 타임으로 일하십니까? 당신은 집에서 일하거나 매일 통근 통근을합니까? 이러한 질문은 귀하가 추구해야 할 전략의 빈도를 결정하는 데 도움이됩니다. 정규직 근무자의 경우, 일일 선물 전략이 적절하지 않을 수 있습니다 (적어도 완전히 자동화 될 때까지!). 시간 제약으로 인해 전략의 방법론이 결정됩니다. 당신의 전략이 빈번히 거래되고 값 비싼 뉴스 피드 (예 : 블룸버그 터미널)에 의존한다면 분명히 사무실에서이 전략을 성공적으로 실행할 수있는 능력에 대해 현실적이어야합니다! 많은 시간을 투자 한 사람들이나 전략을 자동화하는 기술을 배우려면보다 기술적 인 고 빈도 거래 (HFT) 전략을 고려해야합니다.
일관되게 수익성있는 포트폴리오를 유지하려면 거래 전략에 대한 지속적인 연구가 필요하다는 것이 나의 믿음입니다. "전략의 밑에 레이다"영원히 체재하십시오. 따라서 거래에 할당되는 상당 부분은 지속적인 연구 수행에 있습니다. 강력한 수익성 또는 손실에 대한 완만 한 쇠퇴의 차이가 될 수 있기 때문에 이것을 할 준비가되어 있는지 여부를 자문 해보십시오.
또한 거래 자본을 고려해야합니다. 양적 전략에 대해 일반적으로 받아 들여지는 이상적인 최소 금액은 50,000 USD입니다 (영국에서는 약 £ 35,000). 제가 다시 시작한다면, 아마 더 많은 금액, 아마 100,000 USD (약 £ 70,000)로 시작합니다. 그 이유는 중개 및 고주파 전략에서 거래 비용이 극도로 높을 수 있고 인출시 자본을 흡수 할 수있는 충분한 자본을 확보해야하기 때문입니다. 10,000 달러 미만으로 시작하는 것을 고려하고 있다면 거래 비용이 급격히 수익에 반영되므로 하나 또는 두 개의 자산으로 거래하는 저주파수 전략으로 제한해야합니다. 인터랙티브 브로커는 프로그래밍 기술을 가진 사람들에게 가장 친숙한 중개업자 중 하나 인 API로 인해 소매 계좌 최소 10,000 USD를 보유하고 있습니다.
프로그래밍 기술은 자동화 된 알고리즘 거래 전략을 수립하는 데 중요한 요소입니다. C ++, Java, C #, Python 또는 R과 같은 프로그래밍 언어에 익숙하면 엔드 투 엔드 데이터 저장소, 백 테스트 엔진 및 실행 시스템을 직접 만들 수 있습니다. 여기에는 여러 가지 장점이 있는데, 그 중 하나는 거래 인프라의 모든 측면을 완전히 인식 할 수있는 능력입니다. 또한 "기술 스택"을 완벽하게 제어 할 수 있도록 고주파수 전략을 탐색 할 수 있습니다. 이는 자신의 소프트웨어를 테스트하고 버그를 제거 할 수 있음을 의미하지만, 적어도 알 고 트레이딩 경력의 초기 부분에서는 인프라를 코딩하는 데 더 많은 시간을 소비하고 전략을 구현하는 데 더 적은 시간을 소비합니다. Excel 또는 MATLAB 거래가 편리하고 다른 구성 요소의 개발을 아웃소싱 할 수 있습니다. 그러나 나는 특히 높은 빈도로 거래하는 사람들에게 이것을 권장하지 않습니다.
알고리즘 거래를 통해 무엇을 성취하고자하는지 스스로 자문 해봐야합니다. 정기 수입에 관심이 있습니까? 이를 통해 귀하의 트레이딩 계좌에서 수입을 얻을 수 있습니다. 또는 장기 자본 이득에 관심이 있습니까? 그리고 자금을 인출 할 필요없이 거래 할 수 있습니까? 소득 의존성은 전략의 빈도를 결정합니다. 보다 정기적으로 수입을 인출하려면 변동성이 적은 (즉, 높은 Sharpe 비율) 고주파 거래 전략이 필요합니다. 장기 트레이더는보다 조용한 거래 빈도를 제공 할 수 있습니다.
마지막으로, 짧은 시간 안에 극도로 부유하게되는 개념에 속지 마십시오! Algo 거래는 부유 한 빠른 계획이 아닙니다. 무엇이든지 가난한 빠른 계획이 될 수있는 경우. 알고리즘 거래에 성공하려면 상당한 훈련, 연구, 부지런함 및 인내가 필요합니다. 일관성있는 수익성을 창출하는 데 몇 년이 걸릴 수도 있습니다.
소싱 알고리즘 거래 아이디어.
반대로 일반적인 인식에도 불구하고, 실제로 공개 도메인에서 수익성있는 거래 전략을 찾는 것은 매우 직접적입니다. 결코 오늘보다 더 쉽게 거래 아이디어를 구할 수 없었습니다. 학술 재무 저널, 인쇄 전 서버, 거래 블로그, 거래 포럼, 주간 거래 잡지 및 전문 텍스트는 아이디어를 바탕으로 수천 가지의 거래 전략을 제공합니다.
양적 거래 연구자로서의 우리의 목표는 지속적인 거래 아이디어를 제공 할 수있는 전략 파이프 라인을 수립하는 것입니다. 이상적으로 우리는 우리가 만나는 전략을 소싱, 평가 및 구현하는 체계적인 접근 방식을 만들고 싶습니다. 파이프 라인의 목표는 일정한 양의 새로운 아이디어를 생성하고 최소한의 감정적 인 배려로 이러한 아이디어의 대부분을 거부 할 수있는 틀을 제공하는 것입니다.
우리는인지 적 편향이 의사 결정 방법에 영향을 미치지 않도록 극도로주의해야합니다. 이것은 하나의 자산 클래스를 다른 자산 클래스보다 선호하는 것처럼 간단 할 수 있습니다 (금 및 기타 귀금속이 마음에 들었습니다). 우리의 목표는 항상 긍정적 인 기대와 함께 지속적으로 수익성있는 전략을 찾는 것입니다. 자산 클래스의 선택은 거래 자본 제약, 중개 수수료 및 레버리지 기능과 같은 다른 고려 사항을 기반으로해야합니다.
당신이 무역 전략의 개념에 완전히 익숙하지 않다면 처음 보는 것은 설립 된 교과서를 사용하는 것입니다. 클래식 텍스트는 양적 거래에 익숙해 지도록보다 간단하고 직관적 인 다양한 아이디어를 제공합니다. 다음은 목록을 통해 작업 할 때 점차 정교 해지는 양적 거래에 익숙하지 않은 사람들에게 내가 추천하는 선택입니다.
양적 거래 도서 목록을 더 보려면 QuantStart 독서 목록을 방문하십시오.
다음으로는 거래 포럼 및 거래 블로그를 통해보다 정교한 전략을 찾을 수 있습니다. 그러나주의 사항 : 많은 거래 블로그는 기술 분석의 개념에 의존합니다. 기술적 분석에는 자산 가격의 추세 또는 반전 패턴을 결정하기 위해 기본 지표 및 행동 심리를 활용하는 것이 포함됩니다.
전체 거래 공간에서 매우 인기가 있음에도 불구하고 기술적 분석은 양적 금융 분야에서 다소 비효율적이라고 여겨집니다. 일부 사람들은 별자리를 읽거나 예측력면에서 차를 연구하는 것보다 낫지 않다고 제안했습니다. 실제로 기술적 인 분석을 이용하는 성공적인 개인이 있습니다. 그러나보다 정교한 수학 및 통계 툴박스를 갖춘 콴트로서 우리는 그러한 "TA 기반"전략의 효과를 쉽게 평가하고 정서적 고려 또는 선입견에 기초하지 않고 데이터 기반 결정을 내릴 수 있습니다.
다음은 잘 알려진 알고리즘 거래 블로그 및 포럼의 목록입니다.
보다 간단한 전략을 평가 한 경험이 있으면보다 정교한 학업을 검토해야합니다. 구독료가 높거나 일회성 비용이 들지 않으면 일부 학술지에 액세스하기 어려울 수 있습니다. 대학의 회원 또는 동창 인 경우 이러한 재정적 저널 중 일부에 대한 액세스 권한을 얻을 수 있어야합니다. 그렇지 않으면 동료 검토가 진행되는 학술 논문 초안의 인터넷 저장소 인 인쇄 전 서버를 볼 수 있습니다. 우리가 성공적으로 복제하고 수익을 얻으려는 전략에만 관심이 있기 때문에 동료 평가는 우리에게별로 중요하지 않습니다.
학술 전략의 주된 단점은 종종 시대에 뒤떨어 지거나 모호하고 값 비싼 과거 데이터가 필요하거나 비유 동 자산 클래스에서 거래되거나 수수료, 미끄러짐 또는 확산을 고려하지 않을 수 있다는 것입니다. 또한 거래 전략이 시장 주문, 주문 제한 또는 중지 손실 등을 포함하는지 여부도 분명하지 않을 수 있습니다. 따라서 가능한 한 최선을 다해 전략을 반복적으로 재 테스트하고 현실적인 거래를 추가하는 것이 절대적으로 중요합니다 당신이 거래하고자하는 자산 클래스의 많은 양상을 포함하는 비용.
다음은 아이디어를 얻을 수있는 인기있는 사전 인쇄 서버 및 재무 저널 목록입니다.
자신의 양적 전략을 수립하는 것은 어떻습니까? 일반적으로 다음 범주 중 하나 이상의 전문 지식이 필요합니다.
시장 미세 구조 - 특히 고주파 전략의 경우 시장 미세 구조, 즉 수익성을 창출하기 위해 주문서 역학을 이해할 수 있습니다. 각기 다른 시장에는 다양한 기술 제한, 규제, 시장 참여자 및 특정 전략을 통한 착취에 대한 제약이있을 것입니다. 이것은 매우 정교한 분야이며, 소매업 종사자는이 분야에서 경쟁이 어렵다는 것을 알게 될 것입니다. 특히, 경쟁에는 강력한 기술적 능력을 갖춘 대규모의 잘 자본화 된 양적 헤지 펀드가 포함됩니다. 펀드 구조 - 연금 펀드, 민간 투자 파트너십 (헤지 펀드), 상품 거래 자문 및 뮤추얼 펀드와 같은 공동 투자 펀드는 대규모 규제와 대규모 자본 보유로 인해 제약을받습니다. 따라서 좀 더 민첩한 사람에게는 일정한 일관된 행동이 악용 될 수 있습니다. 예를 들어, 대규모 자금은 규모 때문에 용량 제약을받을 수 있습니다. 따라서 대량의 유가 증권을 신속하게 적재 (판매)해야하는 경우 "시장 이동"을 피하기 위해 비틀 거리게됩니다. 정교한 알고리즘은 자금 구조 차익 거래라고 알려진 일반적인 프로세스에서이 특이성 및 기타 특이성을 이용할 수 있습니다. 기계 학습 / 인공 지능 - 최근 몇 년 동안 금융 시장에서 기계 학습 알고리즘이 널리 보급되었습니다. Naive-Bayes 등의 분류 자 ​​(Classifier)와 비선형 함수 계산자 (신경망) 및 최적화 루틴 (유전 알고리즘)은 모두 자산 경로를 예측하거나 거래 전략을 최적화하는 데 사용되었습니다. 이 분야에 대한 배경 지식이 있다면 특정 알고리즘이 특정 시장에 어떻게 적용될 수 있는지에 대한 통찰력을 가질 수 있습니다.
물론 퀀트가 조사 할 수있는 많은 분야가있다. 이후 기사에서 맞춤 전략을 세우는 방법에 대해 자세히 설명합니다.
매주 또는 심지어 매일 이러한 소스를 지속적으로 모니터링함으로써 다양한 소스의 일관된 전략 목록을받을 수 있습니다. 다음 단계는 시간 낭비를 최소화하고 수익성이 없을 것으로 예상되는 전략에 대한 자원을 다시 테스트하는 방법으로 이러한 전략의 큰 부분 집합을 거부하는 방법을 결정하는 것입니다.
거래 전략 평가.
첫 번째, 그리고 틀림없이 가장 분명한 고려 사항은 실제로 전략을 이해하는지 여부입니다. 간결하게 전략을 설명 할 수 있습니까? 아니면 일련의 경고와 끝없는 매개 변수 목록이 필요합니까? 또한, 전략은 실제로 좋은, 견고한 기반을 가지고 있습니까? 예를 들어, 당신이 시도하고있는 패턴을 유발할 수있는 행동 적 근거 또는 자금 구조 제약을 지적 할 수 있습니까? 이 제약은 극적인 규제 환경의 혼란과 같은 정권 교체를 견디겠습니까? 전략은 복잡한 통계 또는 수학적 규칙에 의존합니까? 모든 금융 시계열에 적용됩니까 아니면 수익성이 있다고 주장되는 자산 클래스에만 해당합니까? 새로운 거래 방법을 평가할 때 이러한 요소에 대해 끊임없이 생각해야합니다. 그렇지 않으면 무익한 전략을 백 테스팅하고 최적화하는 데 많은 시간을 낭비 할 수 있습니다.
일단 전략의 기본 원칙을 이해했다면, 앞서 언급 한 성격 프로파일에 맞는지 여부를 결정해야합니다. 이것은 소리가 나지 않는 막연한 고려 사항은 아닙니다! 전략은 성능 특성이 크게 다를 것입니다. 더 중요한 기간의 인출을 처리하거나보다 큰 수익을 위해 더 큰 위험을 감수하고자하는 특정 성격 유형이 있습니다. 우리가 퀀트 (quants)로서 가능한 한 많은인지 적 편향을 시도하고 제거하고, 전략을 조심스럽게 평가할 수 있어야 함에도 불구하고, 편향은 언제나 기습적으로 변할 것입니다. 따라서 우리는 전략의 수행을 평가하기위한 일관성 있고 감정적 인 수단이 필요합니다 . 다음은 내가 잠재적 인 새로운 전략을 판단 할 수있는 기준 목록입니다.
방법론 - 전략 모멘텀은 시장 중심, 방향성, 방향성이 있습니까? 전략은 이해하기 어렵고 통계에서 박사 학위를 요구하는 정교한 (또는 복잡한!) 통계 또는 기계 학습 기술에 의존합니까? 이러한 기술로 인해 상당한 양의 매개 변수가 도입되어 최적화 편향으로 이어질 수 있습니까? 전략이 체제 변화 (즉, 금융 시장의 잠재적 새로운 규제)에 견딜 가능성이 있습니까? Sharpe Ratio - Sharpe 비율은 경험적으로 전략의 보상 / 위험 비율의 특성을 나타냅니다. 그것은 주식 곡선에 의해 견디는 변동성 수준에 대해 얼마나 많은 수익을 낼 수 있는지를 정량화합니다. 당연히, 우리는 이러한 수익률과 변동성 (즉, 표준 편차)이 측정되는 기간과 빈도를 결정해야합니다. 보다 높은 빈도 전략은 표준 편차의 샘플링 속도가 더 빨라지지만 예를 들어 전체 측정 시간이 더 짧아야합니다. 레버리지 - 수익성을 위해 전략에 상당한 영향력이 필요합니까? 전략은 수익을 내기 위해 레버리지 파생 상품 (선물, 옵션, 스왑)의 사용을 필요로합니까? 이러한 레버리지 계약은 막대한 변동성을 특징으로 할 수 있으며 이로 인해 마진 콜이 쉽게 발생할 수 있습니다. 그러한 변동성에 대한 거래 자본과 기질이 있습니까? 빈도 - 전략의 빈도는 기술 스택 (기술적 전문성), 샤프 비율 및 전반적인 거래 비용 수준과 밀접하게 관련되어 있습니다. 고려해야 할 다른 모든 문제, 높은 빈도 전략은 더 많은 자본을 필요로하며, 구현하기가 더 정교하고 어렵습니다. 그러나 백 테스팅 엔진이 정교하고 버그가없는 것으로 가정하면 훨씬 높은 Sharpe 비율을 갖게됩니다. 변동성 - 변동성은 전략의 "위험"과 강하게 관련됩니다. Sharpe 비율은 이것을 특징으로합니다. 기초 자산 군의 변동성이 크지 않다면 주식 곡선의 변동성이 커지며 샤프 비율도 작아진다. 나는 물론 긍정적 인 변동성이 거의 네거티브 변동성과 같다고 가정하고 있습니다. 일부 전략은 더 큰 불리한 변동성을 가질 수 있습니다. 이러한 속성을 알고 있어야합니다. 승패, 평균 손익 - 전략은 승패와 평균 손익 특성이 다릅니다. 잃어버린 거래의 수가 승리 한 거래의 수를 초과하더라도 매우 수익률 높은 전략을 가질 수 있습니다. 기세 전략은 수익성이 있기 위해 소수의 "대히트"에 의존하기 때문에이 패턴을 갖는 경향이 있습니다. 평균 회귀 전략은 거래가 "승리자"인 경우 반대되는 경향이 있지만 손실 거래는 매우 심할 수 있습니다. 최대 인출 - 최대 인출은 전략의 지분 곡선에서 가장 큰 전체적인 최저가 하락률입니다. 기세 전략은 장기간의 축소 (많은 증분 손실 거래로 인한 손실)로 고통받는 것으로 잘 알려져 있습니다. 역사적 테스트에서 이것이 전략과 관련하여 "통상적 인 업무"라고 제안한 경우에도 많은 상인은 연장 된 인출 기간에 포기할 것입니다. 당신은 당신의 전략 거래를 중단하기 전에 어느 정도의 연체율 (그리고 어느 기간 동안)을 받을지 결정할 필요가 있습니다. 이는 매우 개인적인 결정이므로 신중하게 고려해야합니다. 용량 / 유동성 - 소매 수준에서, 당신이 (비상주 주식처럼) 고도로 유동성이없는 수단으로 거래하지 않는 한, 당신은 전략 능력에 크게 신경 쓰지 않아도됩니다. 용량은 전략의 추가 자본에 대한 확장 성을 결정합니다. 대형 헤지 펀드의 대부분은 자본 배분에서 전략이 증가함에 따라 상당한 용량 문제로 어려움을 겪습니다. 매개 변수 - 특정 전략 (특히 기계 학습 커뮤니티에있는 전략)에는 많은 양의 매개 변수가 필요합니다. 전략에 필요한 추가 매개 변수가 있으면 최적화 바이어스 ( "곡선 맞춤"이라고도 함)에 취약 해집니다. 가능한 한 적은 수의 매개 변수로 전략을 타겟팅하고 전략을 테스트 할 수있는 충분한 양의 데이터가 있는지 확인해야합니다. 벤치 마크 - 거의 모든 전략 ( "절대 수익"으로 특징 지우지 않는 한)은 일부 성능 벤치 마크에 비해 측정됩니다. 벤치 마크는 일반적으로 전략이 거래하는 기본 자산 클래스의 큰 샘플을 특성화하는 지수입니다. 전략이 미국 주식을 거래 할 경우 S & P500은 전략을 측정하는 자연스러운 벤치 마크가됩니다. 이 유형의 전략에 적용되는 용어 "알파"및 "베타"가 들립니다. 이 계수에 대해서는 이후 기사에서 자세히 다룰 것입니다.
전략의 실제 수익률에 대해서는 언급하지 않았습니다. 왜 이런거야? 이와는 별도로 수익률은 실제로 전략의 효과에 대한 제한된 정보를 제공합니다. 그들은 레버리지, 변동성, 벤치 마크 또는 자본 요구 사항에 대한 통찰력을주지 못합니다. 따라서 전략은 드물게 자신의 수익만으로 판단됩니다. 수익을보기 전에 항상 전략의 위험 요소를 고려하십시오.
이 단계에서 귀사의 파이프 라인에서 발견되는 많은 전략은 자본 요건, 레버리지 제약, 최대 인출 허용 오차 또는 변동성 선호도를 충족시키지 않기 때문에 거부됩니다. 남아있는 전략은 이제 백 테스트로 고려 될 수 있습니다. 그러나 이것이 가능하기 전에 이러한 전략을 테스트 할 수있는 사용 가능한 과거 데이터의 최종 거부 기준을 고려해야합니다.
내역 데이터 얻기.
요즘에는 과거 데이터 저장을위한 자산 클래스 전반에 걸친 기술적 요구 사항의 폭이 넓습니다. 경쟁 우위를 유지하기 위해 구매자 (펀드)와 매도자 측 (투자 은행) 모두 기술 인프라에 막대한 투자를합니다. 그것의 중요성을 고려하는 것이 필수적입니다. 특히 적시성, 정확성 및 저장 요구 사항에 관심이 있습니다. 이제는 이력 데이터를 얻는 기본 및 저장 방법에 대해 간략하게 설명하겠습니다. 불행히도 이것은 매우 깊고 기술적 인 주제이므로이 기사의 모든 내용을 말할 수는 없습니다. 그러나 필자는 금융 산업에서의 이전 업계 경험이 주로 금융 데이터 수집, 저장 및 액세스에 관심을 가졌으므로 향후이 점에 대해 더 많이 쓰겠습니다.
이전 섹션에서는 우리 자신의 개인 거부 기준에 따라 특정 전략을 거부 할 수있는 전략 파이프 라인을 설정했습니다. 이 섹션에서는 과거 데이터를 얻으려는 우리 자신의 선호도에 따라 더 많은 전략을 필터링 할 것입니다. 주요 고려 사항 (특히 소매 실무자 수준)은 데이터 비용, 저장 요구 사항 및 기술 전문성 수준입니다. 우리는 또한 다양한 유형의 사용 가능한 데이터와 각 유형의 데이터가 우리에게 부과 할 다양한 고려 사항을 논의해야합니다.
사용 가능한 데이터의 유형과 고려해야 할 핵심 쟁점에 대해 논의하겠습니다.
기초 데이터 - 금리, 인플레이션 수치, 기업 활동 (배당, 주식 분할), SEC 신고, 기업 회계, 수익 수치, 작물보고, 기상 데이터 등과 같은 거시 경제 동향에 관한 데이터를 포함합니다. 가치있는 회사 또는 기타 자산을 기초로, 즉 미래의 예상 현금 흐름을 통해 제공해야합니다. 주식 가격 시리즈는 포함되지 않습니다. 일부 기본 데이터는 정부 웹 사이트에서 무료로 사용할 수 있습니다. 다른 장기간의 역사적인 기초 자료는 극도로 비쌀 수 있습니다. 수천 개의 회사가 한 번에 연구되지 않는 한, 스토리지 요구 사항은 대개 크지 않습니다. 뉴스 데이터 - 뉴스 데이터는 본질적으로 정 성적입니다. 기사, 블로그 게시물, 마이크로 블로그 게시물 ( "트윗") 및 사설로 구성됩니다. 감정을 해석하기 위해 분류 자와 같은 기계 학습 기술이 종종 사용됩니다. 이 데이터는 언론 매체를 통한 구독을 통해 종종 무료 또는 저렴한 가격으로 제공됩니다. 새로운 "NoSQL"문서 저장소 데이터베이스는 이러한 유형의 비정형, 정 성적 데이터를 저장하도록 설계되었습니다. 자산 가격 데이터 - 이것은 퀀트의 전통적인 데이터 도메인입니다. 자산 가격의 시계열로 구성됩니다. 주식 (주식), 채권 (채권), 상품 및 환율은 모두이 클래스에 포함됩니다. 주식 등의보다 간단한 자산 클래스를 얻기 위해서는 매일의 과거 데이터가 종종 간단합니다. 그러나 정확성과 청결도가 포함되고 통계 편향이 제거되면 데이터가 비쌀 수 있습니다. 또한 시계열 데이터는 특히 일중 데이터를 고려할 때 중요한 저장소 요구 사항을 가지고 있습니다. 금융 상품 - 주식, 채권, 선물 및 이국적인 파생 상품 옵션은 특성과 매개 변수가 매우 다릅니다. 따라서이를 수용 할 수있는 "한 가지 크기의 모든 것"데이터베이스 구조는 없습니다. 다양한 금융 상품에 대한 데이터베이스 구조의 설계 및 구현에 상당한주의를 기울여야합니다. 우리는 향후 기사에서 유가 증권 마스터 데이터베이스를 구축 할 때 그 상황을 충분히 논의 할 것입니다. 빈도 - 데이터 빈도가 높을수록 비용 및 저장 요구 사항이 커집니다. 저주파 전략의 경우 일일 데이터로 충분할 수 있습니다. 고 빈도 전략의 경우 틱 수준의 데이터와 특정 거래 교환 주문서 데이터의 기록 사본을 얻는 것이 필요할 수 있습니다. 이러한 유형의 데이터를위한 스토리지 엔진을 구현하는 것은 기술적으로 집중적이며 프로그래밍 / 기술적 배경이 강한 사람들에게만 적합합니다. 벤치 마크 - 위에서 설명한 전략은 종종 벤치 마크와 비교됩니다. 이것은 일반적으로 추가 금융 시간 시리즈로 나타납니다. 주식의 경우 S & P500 지수 (US) 또는 FTSE100 (UK)과 같은 국가 주식 벤치 마크입니다. 고정 수입 기금의 경우 채권 또는 채권 바구니와 비교하는 것이 유용합니다. "무위험 이자율"(즉, 적절한 이자율)은 널리 받아 들여지는 또 다른 벤치 마크입니다. 모든 자산 클래스 카테고리에는 선호되는 벤치 마크가 있으므로 외부 전략에 관심을 가지려면 특정 전략에 따라이를 조사해야합니다. 기술 - 재무 데이터 저장 센터 뒤의 기술 스택은 복잡합니다. 이 기사에서는 건물을 짓는 것과 관련된 것에 대해서만 표면을 긁을 수 있습니다. 그러나 MySQL, SQL Server, Oracle 또는 Document Storage Engine (예 : "NoSQL")과 같은 관계형 데이터베이스 관리 시스템 (RDBMS)과 같은 데이터베이스 엔진을 중심으로합니다. 데이터베이스를 쿼리하고 MATLAB, R 또는 Excel과 같은 외부 도구에 대한 액세스를 제공하는 "비즈니스 로직"응용 프로그램 코드를 통해 액세스 할 수 있습니다. 종종이 비즈니스 로직은 C ++, C #, Java 또는 Python으로 작성됩니다. 또한 개인용 컴퓨터 또는 인터넷 서버를 통해 원격으로이 데이터를 어딘가에 호스팅해야합니다. Amazon Web Services와 같은 제품은 최근 몇 년 동안이 방법을 더 간단하고 저렴하게 만들었지 만 강력한 기술력을 필요로합니다.
위에서 볼 수 있듯이 일단 전략이 파이프 라인을 통해 확인되면 특정 과거 데이터의 가용성, 비용, 복잡성 및 구현 세부 사항을 평가해야합니다. 과거 데이터 고려 사항만을 토대로 전략을 거부 할 필요가 있음을 알 수 있습니다. 이것은 큰 영역이며 PhD 팀은 가격이 정확하고시기 적절한지 확인하기 위해 대규모 기금에서 일합니다. 백 테스팅을 위해 강력한 데이터 센터를 구축하는 어려움을 과소 평가하지 마십시오!
그러나 많은 백 테스팅 플랫폼이 비용을 들이지 않고 자동으로이 데이터를 제공 할 수 있다고 말하고 싶습니다. 따라서 구현 통증을 당신에게서 멀리 벗어나게되고, 당신은 순전히 전략 구현과 최적화에 집중할 수 있습니다. TradeStation과 같은 도구에는이 기능이 있습니다. 그러나 내 개인적인 관점은 가능한 한 많은 것을 내부적으로 구현하고 스택의 일부를 소프트웨어 공급 업체에 아웃소싱하는 것을 피하는 것입니다. 더 매력적인 Sharpe 비율로 인해 더 높은 빈도 전략을 선호하지만 첨단 최적화가 중요한 기술 스택과 긴밀하게 결합되는 경우가 많습니다.
이제는 과거 데이터를 둘러싼 문제에 대해 논의 해 왔으며 이제는 백 테스트 엔진에서 전략을 구현할 때입니다. 이것은 토론의 동등한 큰 영역이기 때문에 다른 기사의 주제가 될 것입니다!
양적 거래 시작하기?
QuantStart 목록을 구독해야하는 3 가지 이유 :
1. 퀀트 트레이딩 레슨.
계량 거래를 시작하는 데 도움이되는 힌트와 팁으로 가득한 무료 10 일간 코스에 즉시 액세스 할 수 있습니다!
2. 모든 최신 내용.
매주 나는 퀀트 스타트에서 모든 활동의 포장을 보내드릴 것입니다. 그래서 당신은 결코 다시 글을 놓치지 않을 것입니다.
현실감 넘치는 퀀 트레이딩 팁.

알고리즘 트레이딩을위한 파이썬.
심층 온라인 교육 과정.
지금 픽톤 코스 및 비디오 포함 금융.
이것은 CFD (통화, 인덱스 또는 상품), 주식, 옵션 및 암호화 된 통화를 자동으로 거래 할 수있는 위치에있는 알고리즘 트레이딩 용 Python에 대한 심층적 인 온라인 교육 과정입니다. 현재 강의 자료는 PDF 형식 (Finance with Python 자료를 포함하여 600 개 이상의 페이지)에서 450 개 이상의 페이지이며 3,000 개 이상의 Python 코드로 구성됩니다.
우리의 특별한 거래 인 219 EUR (299 EUR 대신)를 기반으로 오늘 코스를 예약하십시오. 자세한 내용은 계속 읽으십시오. 이제 파이썬 과정을 갖춘 금융 (비디오 수업 7 시간 이상 포함)이 포함되었습니다.
완전한 전자 학습 자료 (HTML, Jupyter Notebooks, Python 코드 등)에 대한 완전한 액세스 권한을 얻었으므로 환불이 불가능합니다. 교재는 저작권으로 보호되며 공유 또는 배포 할 수 없습니다. 해당 법률에서 허용하는 한도 내에서 어떠한 보증이나 진술도 제공되지 않습니다.
다른 사람들이 말하는 것.
수상 경력이있는 분석.
우리는 Banking CIO Outlook에서 2017 년 Top 10 Banking Analytics Solution Provider로 선정 된 것을 자랑스럽게 생각합니다.
완벽한 공생.
자동으로 성공적으로 금융 시장을 거래하는 올바른 알고리즘을 찾는 것이 금융의 성배입니다. 얼마 지나지 않아 Algorithmic Trading은 깊은 주머니와 많은 자산을 관리하는 기관 플레이어에게만 제공되었습니다. 오픈 소스, 공개 데이터, 클라우드 컴퓨팅 및 스토리지는 물론 온라인 거래 플랫폼 분야의 최근 개발로 인해 소규모 기관 및 개인 거래자를위한 경쟁이 치열 해졌습니다. 현대적인 노트북과 인터넷 연결 만 갖춘이 매혹적인 분야에서 시작할 수 있습니다.
요즘 Python과 강력한 패키지의 에코 시스템은 알고리즘 거래를위한 최고의 기술 플랫폼입니다. 그 중에서도 Python을 사용하면 효율적인 데이터 분석 (예 : 팬더), 기계 학습을 주식 시장 예측 (예 : scikit-learn) 또는 Google의 깊은 학습 기술 (tensorflow 포함)을 활용할 수 있습니다.
코스의 주제.
이것은 알고리즘 트레이딩을위한 파이썬 (버전 3.5)에 대한 심층적이고 집중적 인 온라인 코스입니다. 광대하고 흥미 진진한 두 분야의 교차로에서의 이러한 과정은 관련성이있는 모든 주제를 다루기가 쉽지 않습니다. 그러나 중요한 메타 주제에 대해 자세히 다룰 수 있습니다. 재무 데이터 : 금융 데이터는 모든 알고리즘 거래 프로젝트의 핵심입니다. NumPy 및 pandas와 같은 Python 및 패키지는 모든 종류 (일 중, 일 중, 고 빈도) 백 테스팅의 구조화 된 재무 데이터를 처리하고 작업하는 데 큰 역할을합니다. 자동화 된 알고리즘 방식의 거래 없이는 거래 전략을 엄격하게 테스트하지 않습니다. 전개된다. 모멘텀, 평균 반향 및 기계 / 심층 학습 기반 예측 실시간 데이터를 기반으로 한 거래 전략을 다루고 있습니다 : 알고리즘 거래는 실시간 데이터, 이를 기반로 한 온라인 알고리즘 및 시각화를 필요로합니다. 실시간; ZeroMQ로 소켓 프로그래밍을 소개하고 Plotly 온라인 플랫폼으로 스트리밍 시각화를 소개합니다. 거래 플랫폼이없는 거래는 없습니다. 이 과정은 Oanda (CFD 거래), Interactive Brokers (주식 및 옵션 거래) 및 Gemini (cryptocurrency 거래)와 같은 세 가지 전자 거래 플랫폼을 다루고 있습니다. 또한 Python의 편리한 래퍼 클래스를 제공하여 몇 분 안에 자동화 작업을 수행 할 수 있습니다. 알고리즘 운영의 주요 문제점은 거래 작업의 자동화로 인한 것입니다. 이 과정에서는 클라우드에 Python을 배포하는 방법과 자동화 된 알고리즘 거래에 적합한 환경을 설정하는 방법을 보여줍니다.
목차.
온라인 교육 자료의 PDF 버전의 (현재) 목차를 살펴보십시오.
고유성 및 이점.
이 과정은 다음과 같은 특징과 이점을 가진 독특한 학습 경험을 제공합니다. 관련 주제 다루기 : 파이썬에서 알고리즘 무역 자체 포함 코드 기반의 관련 주제와 관련하여 폭과 깊이를 다루는 유일한 코스입니다 : 코스는 자체의 모든 코드를 포함하는 Quant Platform의 Git 저장소를 수반합니다 포함 된, 실행 가능한 형태 (3,000 + 라인의 코드) 도서 버전 PDF : 코스의 온라인 버전 외에도 PDF (450+ 페이지) 온라인 / 비디오 교육 (선택 사항)과 같은 도서 버전이 있습니다 : Python 퀀트는이 코스 / 책을 기반으로 한 온라인 및 비디오 교육 강좌 (포함되지 않음)를 제공하여 대화 형 학습 경험을 제공합니다 (예 : 라이브로 실행되는 코드보기, 개별 질문 요청). 목표와 다른 각도로 실제 거래 : 세 가지 온라인 거래 플랫폼의 적용 범위는 학생들에게 종이와 라이브 거래를 효율적으로 시작할 수있는 위치에 놓습니다. 이 과정은 학생들에게 관련성이 높고 실용적이며 가치있는 배경 지식 DIY-DIY-yourself & Self-Paced 접근법을 제공합니다 : 자료와 코드가 자체 포함되어 있으며 표준 Python 패키지에만 의존하기 때문에 학생은 완전한 지식을 갖추고 있습니다 진행 상황을 제어하고, 코드 예제를 사용하는 방법, 코드 예제를 변경하는 방법 등을 설명합니다. 예를 들어 백 테스팅을 수행하거나 거래 플랫폼에 연결하는 것과 같은 제 3 자 플랫폼에 의존 할 필요가 없습니다. 이 과정을 통해이 모든 것을 혼자서 할 수 있습니다. 가장 편리한 속도로 & mdash; 사용 가능한 사용자 포럼을 작성하는 코드가 한 줄씩 있습니다. 귀하가 직접 모든 것을 할 수 있다고하더라도, 우리는 당신을 도울 것입니다. 우리 포럼에 질문과 의견을 게시 할 수 있습니다. 우리는 24 시간 내에 후속 작업을 목표로합니다. Python 과정을 통한 재정 : 소개 과정은 이제 150 개가 넘는 PDF 콘텐츠, Jupyter Notebooks 및 7 시간 분량의 비디오 강의가 포함 된이 패키지에 완전히 포함됩니다.
개요 비디오.
짧은 동영상 (약 4 분) 아래에서 퀀트 및 트레이닝 플랫폼의 코스 자료 (내용 및 파이썬 코드)에 대한 기술적 개요를 제공합니다.
코스 저자에 대해서.
Yves J. Hilpisch 박사는 금융 데이터 과학, 알고리즘 거래 및 전산 금융에 오픈 소스 기술을 사용하는 데 중점을 둔 The Python Quants의 창립자이자 관리 파트너입니다. 그는 책의 저자입니다.
Yves는 응용 과학 대학 (University of Applied Sciences)에서 데이터 과학에 관한 CQF 프로그램에서 전산 금융에 관한 강의를하고 파이낸셜 대학 인증서 (Python for Finance University Certificate) (htw saar에서 수여)를위한 온라인 교육 프로그램의 책임자입니다.
Yves는 재무 분석 라이브러리 DX Analytics를 작성하여 프랑크푸르트, 런던 및 뉴욕에서 양적 금융을위한 파이썬에 관한 모임 및 회의를 주최합니다. 그는 또한 미국, 유럽 및 아시아의 기술 컨퍼런스에서 기조 연설을했습니다.
힘 저장소.
모든 Python 코드와 Jupyter Notebook은 쉬운 업데이트와 로컬 사용을 위해 Quant Platform에서 Git 저장소로 제공됩니다. 포괄적 인 과학적인 파이썬 3.5 설치가 준비되어 있는지 확인하십시오.
과정을 주문하십시오.
현재 Google은 오늘 가입 할 때 특별한 거래를 제공합니다. 그냥 지불 해.
299 EUR의 정상 가격 대신에. 자료는 아직 부분적으로 개발 중입니다. 현재 등록을 통해 향후 업데이트에 대한 액세스를 안전하게 유지할 수 있습니다. 이것은 잠재적 인 경력 변화 결정을 내리는 데있어 당신을 상당히 도와 줄 것입니다. 알고리즘 트레이딩을 위해 파이썬을 익히는 것이 더 쉬웠습니다.
PayPal을 통해 주문하면 신용 카드를 사용할 수도 있습니다.
완전한 전자 학습 자료 (HTML, Jupyter Notebooks, Python 코드 등)에 대한 완전한 액세스 권한을 얻었으므로 환불이 불가능합니다. 교재는 저작권으로 보호되며 공유 또는 배포 할 수 없습니다. 해당 법률에서 허용하는 한도 내에서 어떠한 보증이나 진술도 제공되지 않습니다.

알고리즘 트레이딩 전략 python
많은 사람들이 금융을 통한 프로그래밍을 듣고 고주파 거래 (HFT)에 대해 즉시 생각하지만, 투자 나 장기 투자와 같은 경우에도 금융 지원을 위해 프로그래밍을 활용할 수 있습니다. 대부분의 사람들은 컴퓨터를 사용하여 실제로 거래를 수행하고 사람이 할 수있는 것보다 훨씬 빠른 속도로 포지션을 만들 수 있기 때문에 고주파 거래 또는 알고리즘 거래에 금융을 사용한 프로그래밍을 사용한다고 생각합니다.
이것은 사실이지만 기계는 또한 필요한 연구 시간을 대폭 단축함으로써 투자를 통해 인간을 도울 수 있습니다. 장기 투자자조차도 가격 / 수익 (PE) 비율, 주당 수익 (EPS), 분기 별 수익률 (PER), 수익률 등의 모든 종류의 기본 사항을 검토하면서 회사를 조사하는 일종의 "알고리즘"을 만들기 위해 많은 일을하는 경향이 있습니다. 소득, 부채 / 주식 및 명부는 계속된다. 투자자가 단순히이 회사의 기본 통계에 대한 구체적인 가치를 찾고 있었다고해도, 아마도 10,000 개 이상의 미국 주식이 거래 될 수 있습니다. 이 모든 과정을 거치면 엄청난 시간이 걸릴 것이고, 몇 년이 지나면 많은 새로운 가치들이 나오게됩니다.
이 텍스트는 다음과 같습니다. 친숙하지 않은 경우 주제에 대해 자세히 알아 보려면 이처럼 텍스트를 클릭하십시오. 금융을 사용하면 친숙하지 않은 사람들을 빠르게 떠날 수있는 많은 용어가 있습니다. 따라서 어떤 신규 사용자라도 조건을 설명 할 수 있습니다. 아직도 혼란 스럽습니까? 동영상에 댓글 달기.
가격 대비 수입 비율.
PE 비율은 회사의 현재 주가와 지난 12 개월 동안의 주가 수익의 평가 비율입니다.
예를 들어 회사 주식이 38.96 달러이고 지난 12 개월간 수입이 4.87 달러라면 수입은 (38.96 달러 / $ 4.87)으로 8이됩니다. 일반적으로 "마법"수는 12이지만 이는 시장 유형 (은행, 기술, 의약품 등)과 회사의 예상 성장률에 따라 크게 다릅니다.
추가 설명문.
이 버튼을 클릭하면 텍스트 및 개념을 자세히 설명하는 팝업 모달이 나타납니다.
주당 수익 / EPS (EPS)
주당 이익은 기업의 수익성을 측정하는 데 사용되는 회사의 보통주의 각 발행 주식에 배당되는 회사의 이익 금액입니다.
분기 실적.
상장 회사는 법에 따라 분기 보고서를 작성해야합니다. 이 분기 별 보고서는 매 3 개월마다 발행되며 분기 별 수입과 같은 정보를 포함하는 경향이 있습니다. 일반적으로 수익, 성장, 전망 등이 포함됩니다.
Quarterly Earnings Reports에 이르기까지 주가는 투기꾼이 보고서에서 기대하는 바를 토대로 가격이 책정되는 경향이 있습니다. 결과는 예상보다 많이 긍정적이거나, 예상보다 부정적이거나, 기대했던 것과 완전히 반대되는 경우가 종종 있습니다. 때로는 20 % 이상 또는 때로는 가격면에서 매우 중요한 움직임을 일으 킵니다.
부채 비율.
부채 비율은 자기가 보유한 주식의 양과 관련하여 회사가 가지고있는 부채의 양을 비교 한 것입니다. 일반적으로이 숫자는 1보다 작 으면 좋지만, 다시 말하면 회사의 유형에 따라 크게 다릅니다.
우리가 금융을 위해 컴퓨터를 이용하는 것에 관심이있는 또 다른 이유는 우리 고유의 편견을 걸러 내기 위해서입니다. 논란의 여지는 있지만 인간이 지배적으로 변한 주된 이유 중 하나는 바로 패턴을 만들고 사물과의 관계를 볼 수있는 능력입니다. 우리는이 일을 매우 잘하고 때로는 너무 잘하고 패턴이없고 관계가없는 곳을 봅니다. 포식자와 가능한 먹이로 패턴과 관계를 보는 것이 도움이되는 것보다 일반적으로 도움이되므로 효과적입니다. 금융 분야에서는 존재하지 않는 패턴을 보면 해를 끼칠 수 있습니다. 당신은 아마도 상인의 90 % 이상이 시장에서 돈을 잃어 버리는 모습을 들었을 것입니다. 이것은 거의 이유입니다.
이미지 출처 : morguefile.
재무가있는 기계를 사용하는 데 부가 된 가치는 고주파 거래와는 아무런 관련이 없다고 주장하며, 연구 및 백 테스트 능력과 관련이 있습니다.
후위 테스트는 역사의 과거를 뒤돌아보고 역사적 데이터에 대한 전략을 교환하여 우리가 어떻게되었는지 확인하는 분석의 한 형태입니다. 이것은 물론 백 테스트의 매우 단순한 정의이지만이를 잘 포함합니다. 여기에서 아이디어는 생존자 편견을 제거 할뿐만 아니라 일종의 블라인드 백 테스트를 가능하면 수행하는 것입니다.
많은 거래자들이 실패하는 곳에서는 전략을 과거 데이터에 "지나치게 맞추는"경향이 있습니다. 이것은 일반적으로 백 테스트의 결과가 원하는만큼 좋지 않은 경우에 발생하므로 숫자를 약간 수정하고 반복합니다. 그들은 결과가 그들이 원하는 것을 얻을 때까지 계속이 작업을 계속합니다. 이것은 overfitting 및 데이터 스누핑이며, 그것은 당신을 깰 것입니다.
이를 염두에두고, 우리는 전략의 성능을 시험 할뿐만 아니라 우리가 작성한 전략에 대한 위험 분석 및 유효성 테스트를 수행하여 더 많은 정보를 얻는 데 도움이 될 수있는 백 테스트에 대한 몇 가지 요소가 있습니다 우리가했던 방식을 넘어서, 우리가 얻었을 리스크와 비교하여 얼마나 많은 위험을 감수하고 있는지를 알 수 있습니다.
Finance를 통한 프로그래밍은 돈을 벌지 못할 수도 있지만, 제대로 고용되면 돈을 절약 할 수 있습니다. 그것이이 튜토리얼 시리즈가 향하게 될 것입니다. 이를 위해 우리는 Python 프로그래밍 언어를 활용할 것입니다.
파이썬은 이해하기 쉽기 때문에 훌륭한 언어를 사용합니다. 일반적으로 파이썬 코드는 프로그래머가 아닌 사람도 읽을 수 있습니다. 또한 유용한 모듈과 파이썬을 뒷받침하는 훌륭한 커뮤니티가 있으므로 파이낸싱과 함께 사용할 수있는 훌륭한 언어입니다.
다음으로 전략을 실제로 테스트 할 방법을 결정해야합니다. 백 테스트 프레임 워크를 작성하는 것은 대대적 인 작업이며, 그렇게한다면 우리가 제대로 이해하는 것이 중요합니다. 자신의 암호화 알고리즘을 작성하지 않아야하는 것처럼, 단지 재미가 아닌 이상 실제로 자체 테스트 시스템을 작성해서는 안됩니다. 우리는 Quantopian이라는 웹 서비스를 활용할 것입니다.
Quantopian은 Zipline이라는 Python 용 강력한 백 테스트 알고리즘 위에 구축되었습니다. Zipline은 다양한 위험 측정 기준을 계산할뿐만 아니라 미끄러짐과 같은 것에 대한 회계를 포함하여 거래 알고리즘을 다시 테스트 할 수 있습니다.
Quantopian에서이 시리즈의 대부분을 다룰 예정이지만 Zipline을 다운로드하여 실제로 콴토 피안을 전혀 사용하지 않고서는 로컬에서 자신의 컴퓨터에서 사용할 수 있습니다. Quantopian을 사용하기를 원하는 이유는 Quantopian에서 제공되는 위험 메트릭과 일반 사용자 인터페이스가 뛰어나기 때문입니다. 이것만으로도 우리는 개발에 엄청난 시간을 절약 할 수 있으며, 폭넓게 테스트되고 있습니다. 우리가 스스로 해낸다면, 우리는 Matplotlib과 같은 것으로 할 수 있지만, 길을 따라 많은 것을 엉망으로 만들 것이라고 확신합니다.
Quantopian으로 향하면 홈페이지에서 "가입"을 선택하여 계정을 만드십시오 :
자유롭게 둘러 볼 수는 있지만, 계정을 만들고 로그인하면 다음 단계는 상단의 '알고리즘'탭입니다.
여기에 "테스팅 알고리즘"이라는 섹션이 있어야합니다. 알고리즘이 없으면 다음과 같이 표시됩니다.
"샘플 알고리즘 복제"를 선택하십시오. 그렇게 할 수있는 옵션이 표시되지 않는다면 걱정하지 마십시오! 대신, Quantopian에 대한 문서로 이동하면 샘플 알고리즘이 여기에 있으며 여기에서 "알고리즘 복제"를 클릭 할 수 있습니다. 참고로, 당신이 볼 수있는 알고리즘에 대해서만 이것을 할 수 있습니다. 커뮤니티 탭으로 이동하면 일반적으로 콴토 피안에 대한 질문과 정보를 게시하는 사람들이 나타납니다. 어떤 사람들은 여기에서 자신의 알고리즘과 백 테스트를 공유 할 수 있습니다. 그런 다음 복제하여 자신과 함께 게임 할 수 있습니다.
알고리즘을 복제 할 때 복제 된 알고리즘을 사용하는 능동 편집 알고리즘 페이지로 이동해야합니다. 이 알고리즘 페이지는 다음과 같습니다 (색상 상자 제외)
Python Editor - 여기에 algoirthm을위한 Python 로직을 코딩합니다. 알고리즘 생성 결과 - 알고리즘을 빌드하면 그래픽 결과가 표시됩니다. 로그 / 오류 출력 - 콘솔 출력 / 로그 정보가 여기에옵니다. 프로그램에서 디버깅을 위해 다양한 텍스트를 출력하거나 더 자세한 정보를 얻는 것이 일반적입니다. 알고리즘 작성 - 작성한 것을 신속하게 테스트 할 때 사용하십시오. 결과는 저장되지 않지만 내장 알고리즘 결과 섹션에서 결과를 볼 수 있습니다. Full Backtest - 현재 알고리즘을 기반으로 전체 백 테스트를 실행합니다. 전체 백 테스트에는 약간의 분석이 추가되어 결과가 저장되며 해당 결과를 생성 한 알고리즘도 저장되므로 백 테스트를 거치고 특정 결과를 생성 한 정확한 코드를 볼 수 있습니다.
전체 샘플 코드는 다음과 같습니다.
"def initialize (context) :"아래는 시작시 한 번만 실행되는 코드이며 handle_data 메소드가 있습니다. handle_data 메쏘드는 bar 당 한 번 실행될 것입니다. Quantopian에는 매일 또는 분과 같은 두 가지 주요 설정이 있습니다. 예를 들어 매일 실행하는 경우 handle_data는 "하루에 한 번"실행됩니다.
이 handle_data 메소드 내에서 우리는 5 일 이동 평균을 계산하고 현재 가격을 변수에 저장합니다. 여기에서 우리는 현재 가격이 평균 가격보다 높고 다른 주식을 살 돈이 있다면 물어 봅니다. 이 경우에는 구매합니다. 그렇지 않다면, 우리는 주식을 가지고 있다면 팔고 싶습니다.
이것은 여기서 일어나는 일들의 대략적인 요약입니다. 다음 튜토리얼에서는 코드를 한 줄씩 살펴보고이를 통해 어떻게 작동하는지 이해하는 데 도움이 될 것입니다.
이제 "전체 백 테스트 실행"을 누르십시오. 시작하는 데 시간이 걸릴 것이므로 결과를보기 시작해야합니다. 여기에서 알고리즘의 성능을 벤치 마크와 비교하여 볼 수 있습니다. 기본 벤치 마크는 S & P 500 지수입니다. 이 지수는 상위 500 개 컬렉션입니다 (실제로이 글을 쓰는 현재 502 개입니다). 회사는 지수로 전환됩니다. 이것은 전체적으로 주식 시장의 건전성을 계산하는 데 사용되는 보편적 인 측정입니다.
실적을 볼 수있을뿐만 아니라 위험 메트릭스를 상단에서 볼 수있을뿐 아니라 사이드 탐색 바를 사용하여 전략과 관련하여 많은 양의 데이터를 조사 할 수 있습니다.
이 페이지 주위를 훑어보고 사용할 수있는 것이 무엇인지 확인하십시오. 여전히 흐린 경우라면 놀라지 않을 것입니다. 우리는 Quantopian에 관해 더 자세히 정리할 것입니다. 파이썬 코드로 인해 길을 잃었다면, 파이썬 3 기초 튜토리얼 시리즈를 살펴 보는 것이 좋습니다.
파이썬 자습서 검색 창으로 이동하여 특정 주제에 대한 빠른 대답을 찾을 수 있는지 알아볼 수도 있습니다. 다른 모든 것이 실패하면 관련 동영상에 대한 의견을 게시하면 나와 다른 누군가가 도움을 줄 수 있습니다.

No comments:

Post a Comment