감정 분석 자료를 이용한 기계 학습 기반 무역 전략
전통적인 요인으로 정서 지표를 사용하면 수익이 향상됩니다.
Lucena Research는 RavenPack 지분 표시기를 두 가지 전략으로 사용합니다. 첫째, Lucena는 RP 지표를 5 일간의 모멘텀 요소와 함께 사용하여 포트폴리오를 구성하고 두 번째로 Lucena QuantDesk® 플랫폼의 Machine Learning에서 선택한 다른 요소와 결합합니다.
Lucena는 기존 요인과 함께 감정 지표를 사용하여 포트폴리오를 구성하면 2005 년 1 월에서 2014 년 11 월까지의 백 테스팅 기간 동안 S & amp; P 500 벤치 마크와 비교하여 상당한 초과 성과를 보일 수 있음을 발견했습니다. 특히, 기계 학습을 통해 Lucena는 P / E 비율과 이동 평균 십자가가 정서 지표와 잘 작동 함을 알았습니다.
Sharpe Ratio 0.83 대 0.46의 벤치 마크 대비 339 %의 초과 수익률.
비디오 : 감정 분석 데이터를 사용한 기계 학습 기반 거래 전략
Tucker Balch - 공동 창립자 & amp; CTO - Lucena Research | 2015 년 3 월 24 일
이 강연에서 Tucker는 기계 학습 기술과 함께 감정 정보가 어떻게 성공적인 주식 거래 전략을 제공 할 수 있는지 보여줍니다.
구체적으로 말하자면, 최근 정서 데이터를 기반으로 회사 주가에 대한 예측 기계 학습 기반 모델을 생성합니다. 그는이 모델을 인풋으로 사용하여 매주 리 밸런싱 된 포트폴리오를 구축하고 해당 포트폴리오의 성능을 시뮬레이션합니다.
그의 연구 결과는 정서 정보가 예측 가치가 있으며 후보 지분을 끌어내는 시장보다 훨씬 뛰어난 기계 학습 전략의 일환으로 유용함을 보여줍니다.
2015 년 3 월 24 일 뉴욕 RavenPack 3rdAnnual Research Symposium에서 발표.
이벤트 자료 요청.
관련 이벤트.
비디오 : 수입 뉴스의 투자자 관심 및 가격.
애셔 커티스 - 협조. 회계학 교수 - 포스터 스쿨 오브 비즈니스 | 2015 년 3 월 24 일
비디오 : 새롭고 사교적 인 인간 시계를 읽는 법 & # 34;
Howard Lindzon - 회장 - StockTwits | 2015 년 3 월 24 일
비디오 : 위험 모델에서 뉴스 감정 데이터 사용.
Stan Radchenko - 임원. 지분 분석 이사 - MSCI | 2015 년 3 월 24 일
RavenPack 플랫폼을 확인하십시오.
우리는 150 개 이상의 큐 레이 티드 데이터 세트와 강력한 시각화 도구로 구축 된 90 개 이상의 대시 보드를 제공합니다.
RavenPack은 금융 서비스 분야의 선도적 인 데이터 분석 전문 업체입니다. 회사의 고객은 세계에서 가장 성공적인 헤지 펀드, 은행 및 자산 관리자를 포함합니다.
QuantStart.
빠르게 성장하는 소매점 퀀텀 트레이더 커뮤니티를 지원하는 Quantcademy 개인 회원 포털에 가입하십시오. 당신은 당신의 가장 중요한 퀀트 트레이딩 질문에 대답 할 준비가되어있는 지식이 풍부하고 마음이 맞는 퀀트 트레이더 그룹을 찾을 수 있습니다.
퀀트 트레이딩에 관한 나의 eBook을 확인해보십시오. 여기서 저는 파이썬 툴로 수익성 높은 체계적인 트레이딩 전략을 만드는 법을 가르쳐드립니다.
Python 및 R을 사용하여 시계열 분석, 기계 학습 및 베이지안 통계를 사용하는 고급 거래 전략에 관한 새로운 전자 책을 살펴보십시오.
2017 년 1 월 22 일 Michael Halls-Moore
통계적인 재정 거래, 추세 추적 및 근본적인 분석에 대한 "일반적인"트릭 외에도 많은 퀀트 상점 (및 소매 퀀트!)은 체계적인 전략을 수립하기 위해 자연 언어 처리 (NLP) 기술을 사용합니다. 이러한 기술은 감정 분석 (Sentiment Analysis)의 기치 아래 있습니다.
이 기사에서는 공급 업체 API에서 생성 된 일련의 정서 신호를 활용하는 일련의 정량적 거래 전략을 개발할 것입니다. 이 신호는 날짜 및 시세 기호와 관련된 -3 ( "가장 강한 부정적인 감정")에서 +6 ( "가장 강한 긍정적 인 감정")까지의 정수 범위를 제공하며 이벤트 발생시 엔트리 및 종료 임계 값으로 사용할 수 있습니다. 구동 백 테스팅 시뮬레이션.
이러한 시스템을 개발하는 데있어 중요한 과제는 "datetime-ticker-sentiment"행의 CSV 파일에 저장된 정서를 나타내는 이벤트를 가격 데이터에서 직접 거래하도록 설계된 이벤트 중심의 거래 시스템으로 통합하는 것입니다 .
이 기사에서는 벤더 API 및 샘플 파일의 본질에 대한 개요와 함께 정서 분석이 수행되는 방법에 대해 간단히 설명합니다. 아티클은 관련 Python 코드를 포함하여 정서 기능이 최근 Qstrader에 어떻게 추가되었는지에 대해 계속 논의 할 예정입니다. 기술, 방위 및 에너지 분야의 S & P500 주식에 적용된 감정 전략의 세 가지 분리 된 백 테스팅의 결과를 제시함으로써 결론을 맺을 것이다.
감정 분석.
정서 분석의 목표는 일반적으로 대량의 "구조화되지 않은"데이터 (예 : 블로그 게시물, 신문 기사, 연구 보고서, 짹짹, 비디오, 이미지 등)를 사용하고 NLP 기술을 사용하여 긍정적이거나 부정적인 "정서"를 정량화하는 것입니다. 특정 자산.
특히 주식의 경우, 활용 된 언어에 대한 통계적 기계 학습 분석 및 강세 또는 약세 표현이 포함되어 있는지 여부가 종종 다릅니다. 이 문구는 정서의 힘의 측면에서 정량화 될 수 있으며, 수치의 의미로 해석됩니다. 종종 이것은 낙관적 인 감정을 반영하는 긍정적 인 가치와 곰 같은 감정을 나타내는 부정적인 가치를 의미합니다.
최근에는 Sentdex, PsychSignal 및 Accern을 포함한 정서 분석 공급 업체의 꾸준한 성장이있었습니다. 모두 독점 기술을 사용하여 대체 데이터 내의 "개체"를 확인한 다음 추출 된 정보에 타임 스탬프가 적용된 정서 점수를 연결합니다. 이 정보는 날짜 엔티티 감정 튜플을 생성하기 위해 일정 기간 (예 : 하루)에 걸쳐 집계 될 수 있습니다. 이러한 튜플은 거래 신호의 기초를 형성합니다.
대량의 "큰 데이터"를 취하고 정서를 정량화하는 실제 작업은이 특정 기사의 범위를 벗어납니다. 엔드 - 투 - 엔드 생산 준비 감정 분석 도구는 대규모 소프트웨어 엔지니어링 사업입니다. 따라서 소매 상인의 경우 벤더 신호를 얻고 전략을 형성하기 위해 더 광범위한 양적 신호 포트폴리오의 일부로 사용하는 것이 현실적입니다.
이 기사에서는 특정 공급 업체의 센티멘트 데이터, 즉 Sentdex를 기반으로하는 거래 전략과 그 주변에 기본적인 장기 전략 만 생성하는 방법에 대해 설명합니다.
Sentdex API 및 샘플 파일.
Sentdex는 다양한 금융 상품에 대한 정서 데이터를 다운로드 할 수있는 API를 제공합니다. 이 데이터는 1 분 또는 1 일 단위로 제공됩니다. 유료 서비스에 대한 자세한 내용은 해당 API 페이지에서 확인할 수 있습니다.
이 API는 유료 제품이기 때문에이 문서에서 논의하지 않을 것이고 종이 거래 또는 라이브 거래 스트리밍 이벤트 생성기로 주로 유용합니다. 이 기사에서는 과거 데이터를 대상으로 백 테스팅 전략을 수행하기 때문에 정적으로 로컬에 저장된 파일을 사용하여 정서 데이터를 나타내는 것이 더 적절합니다.
우연히도, Sentex는 S & P500의 많은 구성 요소에 대해 매일 해결할 때 약 5 년 분량의 정서 신호를 포함하는 샘플 데이터 파일 (여기에서 찾을 수 있음)을 제공합니다.
파일 스 니펫은 다음과 같습니다.
각 행에는 날짜, 시세 기호 및 감정의 강도를 나타내는 정수가 +6 (강한 긍정적 인 감정)과 -3 (강한 부정적인 감정) 사이에 있음을 볼 수 있습니다.
이 샘플 파일은이 기사에서 수행 된 세 가지 개별 시뮬레이션에서 활용되는 정서 데이터의 기초를 형성합니다.
무역 전략.
이 구현의 복잡성은 주로 전략 자체보다는 Qstrader에 대한 조정에서 비롯됩니다. 정서 신호가 생성되면 매우 간단합니다. 이 전략은 의도적으로 단순하게 유지되었으며 이후 기사의 주제가 될 수있는 수정 및 최적화를위한 많은 범위가 있습니다.
전략은이 구현에서 오랫동안 사용되었지만 짧은 위치를 포함하도록 쉽게 수정됩니다. 진입 및 종료 임계 값이 결정되면, 긴 위치를 생성하고이를 닫는 데 사용됩니다.
그들이 운영하는 주식의 선택을 제외하고는 모두 동일한 3 가지 전략이 제시됩니다. 주식 목록은 다음과 같습니다 :
전략의 규칙은 다음과 같습니다.
센티멘션 값이 +6에 도달하면 긴 시세 표시입니다. 감정 값이 -1에 도달하면 시세표 위치를 닫습니다.
각 주식에 대한 백분율 할당은 없으며 대신 고정 된 수량의 주식이 전략 전반에 걸쳐 사용됩니다. 그러나이 고정 수량은 위의 세 섹터마다 수정됩니다.
계정 크기에 따라 동적으로 할당을 조정하는 달러 가중치 투자를 만드는 것이 한 가지 분명한 수정입니다. 그러나이 기사에서는 핵심 감정 이벤트 생성을 쉽게 이해할 수 있도록 위치 크기 조정을 간단하게 유지합니다.
이 전략을 수행하려면 이러한 백 테스트가 적용되는 기간의 주식에 대한 일일 OHLCV 가격 데이터가 있어야합니다. 이 기사에는 S & amp; P500의 5 가지 주식 그룹이 포함 된 3 가지 시뮬레이션이 있습니다. 첫 번째 그룹은 기술 / 소비재 주식으로 구성됩니다.
두 번째 그룹은 S & amp; P500 :
시세표의 최종 세트는 S & amp; P500 :
이 데이터는 결과를 복제하려는 경우 Qstrader 설정 파일에 지정된 디렉토리에 저장해야합니다.
또한 Sentdex API 샘플 파일을 동일한 QSTrader 데이터 디렉토리에 배치해야합니다.
파이썬 구현.
Qstrader를 통한 감정 처리.
정서 기반 전략을 뒷받침하기 위해서는 먼저 정서 "신호"가 어떻게 백 테스트에 통합 될지 고려해야합니다.
Qtrader의 현재 백 테스팅 모델은 이벤트 응답 처리 분기 코드를 모든 TickEvent 또는 BarEvent 객체를 반복하는 큰 while 루프에 배치하는 것입니다. 데이터베이스 또는 별도의 티커 CSV 파일에 저장된 모든 기록 데이터 세트는 후속 판다 데이터 프레임의 각 행이 티커 당 TickEvent 또는 BarEvent를 형성하면서 라인 단위로 연결되고 반복됩니다.
이것을 수행하기위한 이전 코드는 다음과 같습니다.
이 코드는 백 테스트가 완료 될 때까지 계속 반복됩니다 (이는 PriceHandler 객체에 의해 결정됩니다). 큐에서 최신 Event를 가져 오려고 시도하고이를 올바른 이벤트 핸들러 객체로 전달합니다.
그러나 앞서 언급 한 정서 신호 CSV 파일에는 타임 스탬프 정서 신호가 포함되어 있습니다. 따라서 백 테스트의 정확한 시점에서 특정 시세 표시기에 대한 적절한 감정 신호를 "주입"해야합니다.
이것은 SentimentEvent라는 새 이벤트를 작성하여 수행됩니다. 그것은 SignalEvent를 생성하기 위해 타임 스탬프, 티커 및 센티멘트 값 (부동 소수점 값, 정수 또는 문자열 일 수 있음)을 저장하여 Strategy 객체에 보냅니다. SentimentEvent의 QSTrader 코드는 다음과 같습니다.
AbstractSentimentHandler라는 추가 오브젝트 계층도 작성되었습니다. 이를 통해 공통 인터페이스를 통해 공유되는 다양한 공급 업체 API에 대한 감정 인식 자 객체의 서브 클래 싱을 수행 할 수 있습니다. 정서 지표는 거의 항상 "타임 스탬프 - 시세 - 감정"튜플이므로 통일 된 인터페이스를 만드는 것이 유용합니다.
Sentdex 샘플 CSV 파일을 처리하기 위해 SentdexSentimentHandler 객체가 QSTrader에 작성되었습니다. 대부분의 핸들러와 마찬가지로 이벤트 대기열에 대한 핸들, 시작 및 종료 날짜와 함께 작동 할 티커의 서브 세트가 필요합니다.
이 클래스와 연관된 두 가지 메소드가 있습니다. 첫 번째는 _open_sentiment_csv입니다. 연관된 시세 및 날짜 필터링과 함께 CSV 오프닝을 팬더 DataFrame으로 래핑합니다.
두 번째는 다음 정취 신호를 이벤트 대기열로 "스트리밍"하는 데 사용되는 stream_next입니다. Sentdex CSV 파일에는 동일한 날짜에 여러 시세 표시기가 있기 때문에 미리보기 바이어스가 도입되지 않도록 stream_date를 지정해야합니다. 즉, 이벤트 처리기는 CSV 파일을 지나치게 멀리 보면서 "미래에"생성되는 정서 신호를 보지 않아야합니다.
결정적으로이 메서드는 실제로 특정 날짜에 생성 된 모든 SentimentEvent 객체를 출력합니다.
QSTrader 코드베이스의 최종 수정은 Backtest 객체 내에 있습니다. 여기에는 적절한 Dispatcher 객체에 전달되어야하는 SentimentEvent 객체의 추가를 처리하도록 이벤트 디스패처를 수정해야합니다.
특히, TICK 또는 BAR 이벤트를 처리하는 이벤트 내에서 추가 행이 추가되었습니다. 첫 번째는 이것이 SentimentHandler를 포함하는 전략인지 여부를 확인합니다. 이 경우 Sentdex 정서 파일에서 참조되는 특정 요일의 모든 SentimentEvent 객체가 만들어집니다.
이벤트 핸들러를 아래로 내려 가면 이러한 이벤트가 Strategy 객체로 보내지며, Strategy 객체는 신호를 생성하기 위해 작동합니다.
이것으로 QSTrader의 수정 사항을 마무리합니다. 이 변경 사항은 현재 Github에있는 최신 버전이므로이 전략을 복제하려면 로컬 QSTrader 버전을 최신 사본으로 업데이트하십시오.
감정 분석 전략 코드.
이 전략과 백 테스트에 대한 전체 코드 목록은이 기사의 끝 부분에 나와 있습니다.
위의 QSTrader 수정은 정서 분석 전략을 실행하는 데 필요한 구조를 제공합니다. 그러나 위의 진입 및 퇴장 규칙이 실제로 구현되는 방법을 보여 주어야합니다. 위의 모듈에서 대부분의 "노력"이 이루어졌습니다. 전략 구현 그 자체는 비교적 간단합니다.
항상 그렇듯이 첫 번째 작업은 필요한 라이브러리를 가져 오는 것입니다. 여기에는 놀랄만 한 것들이 없으며 단순히 Python2 / 3 호환성과 Strategy 서브 클래스와 상호 작용하는 기본 QSTrader 객체가 있습니다.
새 서브 클래스는 SentdexSentimentStrategy입니다. 즉, 이벤트 대기열에 대한 핸들, sent_buy 정수 감정 임계 값 항목 값 및 sent_sell 해당 종료 임계 값 만 있으면됩니다. 이 두 가지 모두 백 테스트 코드에서 나중에 지정됩니다.
또한 거래를 위해서는 기본 수량의 주식이 필요합니다. 전략을 비교적 간단하게 유지하기 위해 포지션 사이징은 전적으로 전략의 어느 시점에서든 각 종목에 대한 기본 수량을 구매 및 판매합니다. 즉, 위치 크기의 동적 조정이나 모든 티커에 대한 할당 비율이 없습니다. 생산 전략에서 이것은 최적화 할 첫 번째 부분 중 하나입니다. 이 포지션 사이징 코드는 전략의 주요 "정서"측면에서 벗어나기 쉽기 때문에이 기사에서 단순하게 유지하기로 결정했습니다.
마지막으로 self. invested 사전 멤버가 생성되어 각 티커가 현재 거래되고 있는지 여부를 저장합니다. 이는 긴 위치가 열려 있는지 여부에 따라 각 시세 표시기에 대해 부울 True / False 값을 조정하여 수행됩니다.
AbstractStrategy의 모든 하위 클래스와 마찬가지로 calculate_signals 메소드는 실제 이벤트 기반 거래 규칙이 배치되는 곳입니다. 현재까지의 다른 모든 Qstrader 전략에서이 메소드는 BarEvent 또는 TickEvent 객체에 응답합니다.
지금까지 제시된 모든 전략에서이 메소드의 첫 번째 행은 항상 이벤트 유형 (event. type == EventType 인 경우)을 확인합니다. 이는 자산 가격 데이터를 기반으로하는 것뿐만 아니라 임의의 이벤트에 응답 할 수 있으므로 AbstractStrategy 하위 클래스의 유연성을 향상시킵니다.
이벤트가 SentimentEvent로 확인되면 코드는 해당 티커가 이미 거래되고 있는지 여부를 확인합니다. 그렇지 않은 경우, 정서가 정서 정수 입력 임계 값을 초과하는지 여부를 확인한 후 기본 공유 수량을 길게 만듭니다. 그것이 이미이 시세를 거래하고 있고 현재 정서 임계 값이 제공된 종료 임계 값보다 낮 으면 위치를 닫습니다.
따라서 아래 제시된 전략은 오래갑니다. 짧은 거래로 확장하는 것이 직접적인 문제입니다. 단락에 대한 예제 코드는 현재까지 다른 거래 전략에 제시되어 있습니다. 특히 칼만 필터 쌍 거래에 대한 코드는 유사합니다.
모든 Qstrader 구현 전략과 마찬가지로 전략의 매개 변수를 지정하는 해당 백 테스트 파일이 있습니다. 이전의 많은 백 테스트 파일과 매우 유사하므로 전체 목록은이 기사의 끝 부분에만 제공됩니다.
가장 큰 차이점은 SentimentHandler 객체의 인스턴스 생성과 시작 및 종료 임계 값에 대한 매개 변수 설정입니다. 위의 기본 전략 규칙에 반영된 바와 같이 항목 6 및 종료 -1에 대해 설정됩니다. 다양한 시세 표시기에 대해이 값을 최적화하는 것이 유익합니다 (잠재적으로 더 수익이 높습니다).
sentdex_sample. csv는 가격 데이터가 일반적으로있는 Qstrader CSV_DATA_DIR에 저장됩니다. 시작 날짜와 종료 날짜는 Sentdex 샘플 파일에 정서적 예측이 포함 된 기간을 반영합니다.
이 전략을 실행하려면 Qstrader 가상 환경 (항상 그렇듯)을 활용하고 터미널에 다음을 입력해야합니다. 터미널에서 시세의 목록을 특정 전략에 맞게 조정해야합니다. 벤치 마크 비교가 필요한 경우 SPY를 포함해야합니다.
다음의 실행 예는 보잉, General Dynamics, 록히드 마틴, 노스 롭 그루먼 및 레이 시온을 포함한 S & amp;
국방 스톡 예제의 잘린 출력은 다음과 같습니다.
전략 결과.
거래 비용.
여기에 제시된 전략 결과는 거래 비용을 뺀 금액입니다. 인터 액티브 브로커 (Interactive Brokers)를 사용하여 비용을 시뮬레이션합니다. 그들은 실제 거래 전략에서 달성 할 수있는 것을 합리적으로 대표합니다.
S & amp; P500 기술 주식에 대한 심리
각 시세 표시에 사용되는 기본 주식 수량은 2,000입니다.
더 크게 보려면 이미지를 클릭하십시오.
기술주 심리 분석 전략은 5 개 시세 중 각각 2,000 개의 주식을 사용하여 9.4 %의 벤치 마크에 비해 21.0 %의 연평균 성장률을 보였다. 2013 년 5 월, 2013 년 10 월 및 2015 년 7 월과 같이 불과 3 개월 만에 큰 수익을 창출합니다. 또한 2014 년 중반에서 2015 년 중반까지 318 일의 대규모 인출 시간과 벤치 마크의 13.04 %와 비교하여 최대 일일 평균 17.23 %의 감소를 나타냅니다.
그럼에도 불구하고 Sharpe 비율은 벤치 마크의 경우 0.75와 비교하여 1.12이지만, 성능은 전략의 완전한 생산 구현을 정당화 할 정도로 중요하지 않습니다.
S & P500 에너지 주식에 대한 감정.
각 티커에 사용 된 기본 주식 수량은 5,000입니다.
더 크게 보려면 이미지를 클릭하십시오.
에너지 주식 믹스는 기술주의 콜렉션과는 꽤 다르게 수행됩니다. 그것은 큰 변동과 큰 손실을 가진 다른 개월 개월 게시 매우 휘발성입니다. 그것의 최대 매일 삭감은 27.49 %에 광대하다, 합리적인 양이 전략으로 어떤 더 고려 사항든지에서 그것을 혼자서 삭제한다. 또한 전략은 2014 년 중반 이후에 효과를 잃는 것으로 보입니다.
Sharpe 비율이 벤치 마크 0.75에 비해 0.63으로 낮습니다. 그러므로 이것은 현재의 형태로 앞으로 나아갈 수있는 실행 가능한 전략이 아닙니다.
S & amp; P500 국방 주식에 대한 감정.
각 시세 표시에 사용되는 기본 주식 수량은 2,000입니다.
더 크게 보려면 이미지를 클릭하십시오.
방위 산업은 기술과 에너지에 비해 다른 이야기를 제공합니다. 이 전략은 수개월의 탄탄한 성과를 거두며 건강한 장거리 일일 Sharpe 1.69를 보유하고 있습니다. 그것의 최대 삭감은 9.69 %에 기준보다는 더 적은이다. 그것은 또한 25.45 %에 강한 CAGR가 있습니다. 이러한 장점에도 불구하고 2014 년과 2015 년은 훨씬 적은 수익을 기록하면서 2013 년에 대부분의 수익을 올렸습니다.
이 전략이 확실히 흥미 롭긴하지만 생산에 투입하기 위해서는 더 많은 작업이 필요합니다. 하나는 훨씬 더 큰 기간에 걸쳐 테스트해야합니다. 또한 반바지를 추가하면 전략이 다소 시장 중립적 일 수 있으므로 시장 베타가 줄어들 수 있습니다.
위치 결정 및 위험 관리의 최적화는 다음 논리적 인 단계이며 성능에 상당한 영향을 줄 수 있습니다. 최종 수정은 혼합 부문에 더 많은 주식을 추가함으로써 다각화를 증가시키는 것입니다. 분명한 개선의 여지가있다.
이후 기사에서 QSTrader의 PositionSizer 및 RiskManager 객체를 수정하여 이러한 최적화 중 많은 부분을 살펴 보겠습니다. 이것은 전략을 생산 실행에 가깝게하는 데 도움이 될 것입니다.
양적 거래 시작하기?
QuantStart 목록을 구독해야하는 3 가지 이유 :
1. 퀀트 트레이딩 레슨.
계량 거래를 시작하는 데 도움이되는 힌트와 팁으로 가득한 무료 10 일간 코스에 즉시 액세스 할 수 있습니다!
2. 모든 최신 내용.
매주 나는 퀀트 스타트에서 모든 활동의 포장을 보내드릴 것입니다. 그래서 당신은 결코 다시 글을 놓치지 않을 것입니다.
현실감 넘치는 퀀 트레이딩 팁.
KD 너겟.
금융 시장은 예측 이론의 궁극적 인 테스트 베드입니다. 이 포스트를 통해 우리는 컴퓨터 과학자들이 금융 거래 및 양적 금융 분야를 탐험 할 때 예측 분석의 세계에서 관찰되는 일반적인 실수를 강조하고자합니다.
Lars Hamberg.
예측 속성에 대한 정서 데이터를 테스트 할 때 많은 일반적인 실수를 피할 수 있습니다. 여기에 하나 있습니다 :
'예측'이라는 용어는 법적 정의가 아닙니다. 정서 데이터의 예측 적 자질을 평가할 때, 금융 자산과 관련된 예측 적 특성을 테스트하기위한 신호로 간주되는 것에 대한 규칙은 없습니다.
그러나 최종적으로 선택한 방법에 따라 예측이라는 용어가 의미하는 바가 정의됩니다.
요점을 설명하기 위해 : 더 신중한 용어 정의를 사용하면 세계에서 가장 유명한 예측 연구의 정확도가 87 % (15 개 중 13 개) 대신 47 % (15 개 중 7 개) %).
47 %의 정확도는 전세계 언론의 주목을받지 못했고 1,600 명이 넘는 학술 인용도 발생하지 않았습니다.
금융 시장은 예측 이론의 궁극적 인 테스트 베드입니다. 금융 시장에 대한 성공적인 예측 도구는 간접적 인 아이디어이며 시사하는 바입니다.
몇 년 전 Johan Bollen, Huina Mao 및 Xiaojun Zeng ( "Bollen")에 의한 "주식 시장 예측 트위터 분위기"( "Bollen Study")라는 연구 *는 많은 언론 보도를 받았습니다.
1600 건 이상의 학술 인용으로 금융 위험 자산에 대한 예측 모델에서 정서 데이터 사용을 조사하는 분야에서 가장 많이 인용 된 논문으로 남아 있습니다.
이 게시물을 통해 저는 컴퓨터 과학자들이 금융 거래 및 양적 금융 분야에 진출 할 때 Bollen 연구 및 기타 예측 분석 분야에서 흔히 볼 수있는 실수를 강조하고자합니다.
정서 데이터가 매일 새로운 신호를 생성한다고 가정합니다. 어떤 이유로 시장이 다음 거래일로 움직일 것이라는 당신의 정서적 신호가 나타납니다. 이것은 20 일 연속으로 매일 반복되며 시장은 매 거래일마다 계속 올라갑니다.
금융 시장에 관한 교과서는 매일의 시장 방향이 무작위라고 말합니다. 따라서 무작위로 알려진 모델에 대해 20/20 예측 정확도가 모델에 있다고 생각합니다.
당신의 모델이 코인 플립을 20 회 연속 정확하게 호출했기 때문에 이것은 샴페인을 요구합니다! 아니면 정말로?
당신은 모든 시간의 가장 위대한 발견을 우연히 발견 했습니까? 물론 아닙니다.
당신의 정서적 신호는 예측 성질을 지니고 있습니까? 아마 ... 미안해!
샴페인을 취소하고 중요한 능력을 상담하십시오 :
소셜 미디어를 기반으로 한 시장 예측에 관한 학술 논문에는 종종 효율적인 시장이 오랫동안 논란을 일으킨 이후 가격 형성이 무작위 적이 않을 수 있다는 사실에 대한 언급이 있습니다.
일반적으로이 논문 뒤의 사람들은 소셜 미디어 분석 등을 통해 가격 형성 및 시장 방향을 예측할 수 있다고 가정합니다. 그것은 조사 대상인 기본 아이디어입니다.
결과적으로, 시장 방향이 무작위 인 테스트 조건 하에서 시장 방향이 체계적인지 여부를 테스트하는 이유와 달리, 귀하는 동의하지 않을 것입니다.
그러나 이것은 정확하게 일부 사람들이하는 경향이 있으며, 이는 양적 금융 내에서 많은 실무자를 놀라게 할 수 있습니다. Bollen 연구는 학술적으로 1600 번 이상 인용되었으며이 분야의 연구에서 가장 많이 인용 된 연구로 남아 있습니다.
Bollen 연구의 결과는 모델이 정확히 15 개의 코인 플립 중 13 개를 정확하게 호출 한 것처럼 15 개의 관측을 기반으로 예측 정확도 (86.7 %)에서 견고 함을 나타내는 누적 이항 확률 (0.35 %)을 나타냅니다.
아주 작은 표본에 대한 분명한 문제 외에도 Bollen은 시장 방향이 무작위라는 테스트 조건 하에서 시장 방향이 체계적인지 여부를 테스트하고 있습니다. 이 일반적인 접근 방식은 여러 가지 이유로 문제가됩니다.
인과 관계는 일반적으로 불명확하며, 두 개의 시계열에 대해 피드백 루프와 클러스터링 효과가 모두 고려되어야하기 때문에 예측 성질에 대한 적절한 테스트는 두 시계열 모두가 고려할 수있는 방법을 사용하여 수행되어야합니다. 무작위 또는 체계적이어야한다. 어떤 시간 간격에서는 무작위로, 다른 경우에는 체계적으로; 독립적이고 의존적 인; 어떤 시간 간격에서는 독립적이며 다른 시간 간격에서는 의존적이다; 선행 또는 후행뿐만 아니라 선행과 후행이 서로 다른 시간 간격으로 진행됩니다.
시장 방향과 관련하여 이러한 방법 중 하나는 방향 예측의 변화를 계산하는 것입니다. 즉 정서 데이터가 LONG에서 SHORT로 또는 그 반대로 바뀔 때만 계산합니다. 즉, 실제 시장 방향에 대해 평가할 적절한 정서 신호로 계산합니다. 정서 신호 변화 사이의 전체 시간. 이것은 예를 들어, whatismonitor에서 온라인으로 이용할 수있는 진행중인 여러 해의 예측 연구 (& WIM; # 8221;)에서 사용되는 방법입니다.
따라서 설명 된 방법을 사용하려면 정서 데이터가 LONG 또는 SHORT 또는 BUY 또는 SELL 등으로 표시되는 신호를 생성해야하며 예측의 정확도는 정서 신호가 변경된 경우, 즉 LONG에서 SHORT로 또는 그 반대로.
요점을 설명하려면 다음과 같습니다. 첫 번째 날 정서 데이터가 SHORT에서 LONG으로 바뀌고 다음 5 일 동안 계속 LONG이 될 것을 말하면 그 후 SHORT로 바뀌고 시장은 처음 4시 간 동안 올라갑니다 그 5 일 중, 귀하의 모델이 80 % 정확하다는 의미는 아닙니다. 또한 귀하의 모델이 한 번만, 즉 4 일간의 상향 이동에 대해서도 적절하다는 의미는 아닙니다.
연구에서 예측 신호를 "성공"또는 "실패"로 계산하기 위해서는 5 일 기간 전체에 대한 총 가격 이동을 고려하는 것이 합리적입니다. 즉 예측 신호 시그널의 변화를 통해 무역을 종결 시켰습니다 : LONG에서 SHORT로 또는 그 반대로.
시장이 & # 8211; 또는 가격 & # 8211; 전체 5 일 동안, 즉 SELL에서 BUY로 그리고 BUY에서 SELL로, 신호 변화 사이의 시간 간격은 성공적인 예측으로 간주 될 수 있습니다.
반대로 가격이 하락하면 관측치가 실패로 기록됩니다. 그럼에도 불구하고 & # 8211; 통계적으로 예측 가능한 신호 '라는 정의와 함께, 그것은 하나의 단일 지점으로 남아 있습니다.
Bollen은 다른 방법을 사용했다. DJIA의 일일 움직임을 예측할 때 87 일 (86,7 %)의 정확성을 보여주는 인상적인 헤드 라인 수는 15 거래일 동안 달성되었습니다. 이 15 일 동안 Bollen은 15 일 중 13 일의 적중률을 의미합니다.
그러나 시장이 15 일 동안 8 번 이상, 즉 2008 년 12 월 첫 15 거래일 동안 방향을 바꾸지 않았 음을 주목할 필요가 있습니다. 두 차례에 걸쳐, 이 15 거래일 동안 시장 방향은 2 일 연속으로 동일하게 유지되었으며 한 번에 시장 방향은 3 일 연속으로 동일하게 유지되었습니다.
그것은 우리에게 무엇을 말해 줍니까?
짧은 순서대로, 그것은 & # 8211; "예측"이라는 용어의 신중한 정의와 함께. & # 8211; Bollen 연구의 87 % (13/15) 정확도는 결코 달성 될 수 없었습니다.
Bollen의 신호의 정확도는 신중한 예측으로 Bollen의 신호가 실제로 47 % (7/15)로 낮을 수 있었으며 Bollen & # 8217과 함께 87 % (13/15)의 정확도를 나타낼 수있었습니다. & # 8220; 예측 & # 8221;의 정의.
47 %의 정확도는 전세계 언론의 주목을받지 못했고 1,600 명이 넘는 학술 인용도 발생하지 않았습니다.
Comments
Post a Comment