이 기사에서는 제가 직접 수익성 있는 알고리즘 트레이딩 전략을 식별하는 방법에 대해 소개하고자 합니다. 오늘 우리의 목표는 그러한 시스템을 찾는 방법, 평가하고 선택하는 방법을 자세히 이해하는 것입니다. 저는 전략을 식별하는 것이 전략 성과와 마찬가지로 개인적인 선호도에 대한 방법, 테스트를 위한 역사 데이터의 종류와 양을 결정하는 방법, 거래 전략을 무관심하게 평가하는 방법, 그리고 마지막으로 백테스팅 단계와 전략 구현으로 진행하는 방법을 설명하겠습니다.
성공적 인 거래자 가 되기 위해 - 사법적 으로든 알고리즘적 으로든 - 자신 에게 정직 한 질문 을 던져야 한다. 거래 는 위험 한 속도로 돈을 잃을 수 있는 능력을 제공 해 준다. 따라서 선택 한 전략 을 이해 하기 위해 필요한 것 만큼 자신 을 아는 것 이 필요하다.
나는 거래에서 가장 중요한 고려 사항은 자신의 성격에 대한 인식이라고 말할 것입니다. 특히 거래 및 알고리즘 거래는 상당한 수준의 규율, 인내심 및 정서적 분리를 요구합니다. 알고리즘이 당신을 위해 거래를 수행하도록 허용하기 때문에 실행되는 전략에 간섭하지 않도록 결의해야합니다. 이것은 특히 긴 인하 기간에 매우 어려울 수 있습니다. 그러나 백테스트에서 매우 수익성이있는 것으로 입증 된 많은 전략은 간단한 간섭으로 파괴 될 수 있습니다. 알고리즘 거래 세계로 진출하고 싶다면 정서적으로 테스트 될 것이며 성공하기 위해서는 이러한 어려움을 극복해야합니다!
다음 고려 사항은 시간입니다. 당신은 풀 타임 직장을 가지고 있습니까? 당신은 파트 타임을 일합니까? 당신은 집에서 일합니까 또는 매일 긴 출퇴근을합니까? 이러한 질문은 당신이 추구해야 할 전략의 빈도를 결정하는 데 도움이 될 것입니다. 풀 타임 고용에 있는 사람들에게는 하루 내 선물 전략이 적절하지 않을 수 있습니다 (적어도 완전히 자동화 될 때까지!). 당신의 시간 제약은 또한 전략의 방법론을 지시합니다. 당신의 전략이 자주 거래되고 비싼 뉴스 피드 (블룸버그 터미널과 같은) 에 의존하는 경우 당신은 분명히 사무실에서 이것을 성공적으로 실행 할 수있는 능력에 대해 현실적이어야합니다! 많은 시간이 있거나 전략을 자동화 할 수있는 기술이있는 사람들에게는 더 기술적 인 고 주파수 거래 (HFT) 전략을 살펴보고 싶을 수 있습니다.
내 신념은 지속적으로 수익성있는 포트폴리오를 유지하기 위해 거래 전략에 대한 지속적인 연구를 수행하는 것이 필요하다는 것입니다. 몇 가지 전략은 영원히 레이더 아래에 남아 있습니다. 따라서 거래에 할당되는 시간의 상당 부분은 지속적인 연구를 수행하는 데 사용됩니다. 강력한 수익성 또는 손실로 느린 감소 사이의 차이점이 될 수 있기 때문에 이것을 할 준비가되어 있는지 스스로 물어보십시오.
당신은 또한 당신의 거래 자본을 고려해야합니다. 양적 전략에 대한 일반적으로 허용된 이상적 최소 금액은 50,000 USD (우리 영국에서 약 35,000 파운드). 내가 다시 시작한다면, 나는 더 큰 금액으로 시작할 것입니다. 아마도 100,000 USD (약 70,000 파운드) 에 가깝습니다. 이것은 중~고 빈도 전략에 대한 거래 비용이 매우 비싸고 마감시에 흡수 할 충분한 자본이 필요하기 때문입니다. 10,000 USD 미만으로 시작하는 것을 고려한다면 거래 비용이 신속하게 수익을 섭취 할 것이기 때문에 하나 또는 두 가지 자산으로 거래하는 저 빈도 전략에 자신을 제한해야합니다. 최소 API로 인해 프로그래밍 기술을 가진 사람들에게 가장 친절한 중개인 Interactive Brokers에는 10,000 USD의 소매 계좌가 있습니다.
프로그래밍 능력은 자동화된 알고리즘 거래 전략을 만드는 데 중요한 요소입니다. C++, Java, C#, Python 또는 R와 같은 프로그래밍 언어를 잘 아는 것은 끝에서 끝까지 데이터 저장, 백테스트 엔진 및 실행 시스템을 직접 만들 수 있습니다. 이것은 여러 가지 장점을 가지고 있으며, 그 중 가장 중요한 것은 거래 인프라의 모든 측면을 완전히 인식 할 수있는 능력입니다. 또한 기술 스택의 완전한 통제를 할 수 있기 때문에 높은 주파수 전략을 탐색 할 수 있습니다. 이것은 당신이 자신의 소프트웨어를 테스트하고 버그를 제거 할 수 있음을 의미하지만, 그것은 또한 코딩 인프라에 더 많은 시간을 보내고 전략을 구현하는 데 덜 시간을 할애한다는 것을 의미합니다. 적어도 당신의 거래 경력의 초기 부분에서. 당신은 엑셀 또는 MATLAB에서 편안하게 거래하고 다른 구성 요소의 개발을 아웃소싱 할 수 있다는 것을 발견 할 수 있습니다. 그러나 나는 특히 높은 주파수에서 거래하는 사람들을 위해 이것을 권장하지 않을 것입니다.
알고리즘 트레이딩을 통해 무엇을 달성하기를 희망하는지 스스로에게 물어봐야 합니다. 거래 계좌에서 수익을 얻을 수 있는 정기적 인 수입에 관심이 있습니까? 또는 장기적 자본 이득에 관심이 있으며 자금을 끌어내리지 않고 거래를 할 수 있습니까? 소득 의존도는 전략의 빈도를 결정합니다. 더 규칙적인 수입 인출은 변동성이 적은 더 높은 빈도 거래 전략 (즉, 더 높은 샤프 비율) 을 필요로합니다. 장기적인 거래자는 더 평온한 거래 빈도를 감당할 수 있습니다.
마지막으로, 짧은 시간 내에 극도로 부유해질 것이라는 개념에 속지 마십시오! 알고 거래는 빠르게 부자가 되는 스키마가 아닙니다. 그렇지 않으면 가난하게 되는 스키마가 될 수 있습니다. 알고리즘 거래에서 성공하기 위해서는 상당한 징계, 연구, 치열함과 인내심이 필요합니다. 일관된 수익성을 창출하는 데 몇 달이 걸리더라도 몇 년이 걸릴 수 있습니다.
반대로 일반적인 인식에도 불구하고, 실제로는 공공 영역에서 수익성있는 거래 전략을 찾는 것이 매우 간단합니다. 거래 아이디어는 오늘날보다 쉽게 사용할 수 없었습니다. 학술 금융 저널, 사전 인쇄 서버, 거래 블로그, 거래 포럼, 주간 거래 잡지 및 전문 텍스트는 아이디어를 기반으로 할 수 있는 수천 개의 거래 전략을 제공합니다.
양적 거래 연구자로서 우리의 목표는 지속적인 거래 아이디어의 흐름을 제공하는 전략 파이프 라인을 구축하는 것입니다. 이상적으로는 우리가 만나는 전략을 소싱하고 평가하고 구현하는 방법론적 접근 방식을 만들고 싶습니다. 파이프 라인의 목표는 일관된 양의 새로운 아이디어를 생성하고 최소한의 감정적 고려로 이러한 아이디어의 대부분을 거부 할 수있는 틀을 제공하는 것입니다.
우리는 인지적 편견이 의사 결정 방법론에 영향을 미치지 않도록 매우 조심해야합니다. 이것은 다른 자산 클래스에 대한 선호도 (황금 및 기타 귀금속이 마음에 들어) 를 갖는 것만큼 간단 할 수 있습니다. 왜냐하면 그들은 더 이국적인 것으로 인식되기 때문입니다. 우리의 목표는 항상 긍정적 인 기대와 함께 지속적으로 수익성있는 전략을 찾는 것입니다. 자산 클래스의 선택은 거래 자본 제약, 중개 수수료 및 레버리지 능력과 같은 다른 고려 사항에 기초해야합니다.
거래 전략의 개념에 대해 완전히 익숙하지 않은 경우, 먼저 살펴봐야 할 곳은 기존의 교과서입니다. 클래식 텍스트는 양적 거래에 익숙해질 수 있는 더 간단하고 더 직접적인 다양한 아이디어를 제공합니다. 다음은 양적 거래에 처음 접하는 사람들을 위해 추천하는 선택지입니다. 목록에서 작업함에 따라 점차 더 정교해집니다.
양적 거래 책들의 더 긴 목록은 QuantStart 읽기 목록을 참조하십시오.
더 정교한 전략을 찾는 다음 장소는 거래 포럼과 거래 블로그입니다. 그러나 주의: 많은 거래 블로그는 기술적 분석의 개념에 의존합니다. 기술적 분석은 자산 가격의 추세 또는 역전 패턴을 결정하기 위해 기본 지표와 행동 심리학을 활용하는 것을 포함합니다.
전체 거래 공간에서 매우 인기가 있음에도 불구하고, 기술적 분석은 양적 금융 커뮤니티에서 다소 비효율적이라고 간주됩니다. 어떤 사람들은 예측력 측면에서 별자리 읽거나 차 잎을 연구하는 것보다 낫지 않다고 제안했습니다! 실제로 기술적 분석을 사용하는 성공적인 개인이 있습니다. 그러나, 우리가 사용할 수있는 더 정교한 수학적 및 통계적 도구 상자와 함께, 우리는 쉽게 그러한
다음은 잘 존경받는 알고리즘 거래 블로그와 포럼 목록입니다.
간단한 전략을 평가하는 데 약간의 경험을 쌓았을 때, 더 정교한 학술 제공을 살펴볼 때입니다. 일부 학술 저널은 높은 구독 또는 일회성 비용없이 액세스하기가 어려울 것입니다. 만약 당신이 대학의 회원 또는 졸업생이라면, 이러한 금융 저널의 일부에 액세스 할 수 있어야합니다. 그렇지 않으면, 학술 논문의 최신 초안의 인터넷 저장소인 프리 프린트 서버를 살펴볼 수 있습니다. 우리는 성공적으로 복제, 백테스트 및 수익성을 얻을 수있는 전략에만 관심이 있기 때문에, 동료 검토는 우리에게 덜 중요합니다.
학술 전략의 주요 단점은 종종 시대에 뒤떨어질 수 있고 모호하고 비싼 역사적 데이터를 요구하고, 유동성 없는 자산 클래스에 거래하거나 수수료, 미끄러짐 또는 스프레드를 고려하지 않는다는 것입니다. 또한 거래 전략이 시장 명령, 제한 명령 또는 스톱 손실 등을 포함하는지 여부는 명확하지 않을 수 있습니다. 따라서 전략을 최대한 잘 복제하고 백테스트하고 거래하고자하는 자산 클래스의 많은 측면을 포함하는 현실적인 거래 비용을 추가하는 것이 절대적으로 중요합니다.
다음은 당신이 아이디어를 얻을 수있는 더 인기있는 사전 인쇄 서버와 금융 저널 목록입니다:
자신의 양적 전략을 세우는 것은 어떨까요? 일반적으로 다음 과목 중 하나 이상의 전문 지식을 필요로 합니다.
물론 퀀트가 조사해야 할 다른 많은 영역이 있습니다. 우리는 나중에 어떻게 사용자 지정 전략을 세밀하게 논의 할 것입니다.
이러한 소스를 매주 또는 매일 지속적으로 모니터링함으로써 다양한 소스에서 일관된 전략 목록을 수신 할 수 있습니다. 다음 단계는 수익성이 없을 가능성이있는 전략에 대한 시간과 백테스팅 자원을 최소화하기 위해 이러한 전략의 큰 부분 집합을 거부하는 방법을 결정하는 것입니다.
첫 번째, 그리고 가장 명백한 고려 사항은 실제로 전략을 이해하는지 여부입니다. 전략을 간결하게 설명 할 수 있습니까? 아니면 경고와 끝없는 매개 변수 목록을 필요로합니까? 또한, 전략은 현실에서 좋은, 견고한 근거를 가지고 있습니까? 예를 들어, 당신이 착취하려고하는 패턴을 유발할 수있는 행동의 합리성 또는 펀드 구조 제약에 대해 지적 할 수 있습니까? 이러한 제약은 급격한 규제 환경 장애와 같은 체제 변화에 견딜 수 있습니까? 전략은 복잡한 통계 또는 수학적 규칙에 의존합니까? 그것은 어떤 금융 시간 시리즈에 적용됩니까? 또는 수익성이 있다고 주장되는 자산 클래스에 특정합니까? 새로운 거래 방법을 평가 할 때 이러한 요소에 대해 끊임없이 생각해야합니다. 그렇지 않으면 수익성이없는 전략을 테스트하고 최적화하는 데 상당한 시간을 낭비 할 수 있습니다.
일단 전략의 기본 원칙을 이해한다고 결정하면 앞서 언급한 성격 프로필에 맞는지 여부를 결정해야 합니다. 이것은 들릴만큼 모호한 고려 사항이 아닙니다! 전략은 성능 특성에서 크게 다를 것입니다. 더 큰 마감 기간을 처리 할 수 있거나 더 큰 수익을 위해 더 큰 위험을 기꺼이 받아들이는 특정 성격 유형이 있습니다. 우리가 양자로서 가능한 한 많은 인지 편견을 제거하고 평가 할 수 있어야한다는 사실에도 불구하고 편견은 항상 침투 할 것입니다. 따라서 전략의 성능을 평가 할 수있는 일관성 있고 감정적이지 않은 수단이 필요합니다. 다음은 잠재적인 새로운 전략을 판단하는 기준 목록입니다.
전략의 실제 수익률을 논의하지 않았다는 점에 유의하십시오. 왜 그런가? 고립적으로 수익률은 실제로 전략의 효과에 대한 제한된 정보를 제공합니다. 그들은 레버리지, 변동성, 벤치마크 또는 자본 요구 사항에 대한 통찰력을 제공하지 않습니다. 따라서 전략은 거의 수익률만으로 판단되지 않습니다. 수익률을 보기 전에 항상 전략의 위험 특성을 고려하십시오.
이 단계에서 파이프 라인에서 발견 된 많은 전략은 자본 요구 사항, 레버리지 제약, 최대 마감 용도 또는 변동성 선호도를 충족시키지 못하기 때문에 즉시 거부 될 것입니다. 남아있는 전략은 이제 역 테스트를 고려 할 수 있습니다. 그러나 이것이 가능하기 전에 이러한 전략을 테스트 할 수있는 사용 가능한 역사적 데이터의 최종 거부 기준을 고려해야합니다.
오늘날, 역사적 데이터 저장에 대한 자산 클래스 전반에 대한 기술적 요구 사항의 폭은 상당합니다. 경쟁력을 유지하기 위해, 구매 측 (펀드) 및 판매 측 (투자 은행) 모두 기술 인프라에 크게 투자합니다. 그 중요성을 고려하는 것이 필수적입니다. 특히, 우리는 시기적절성, 정확성 및 저장 요구 사항에 관심이 있습니다. 나는 이제 역사적 데이터를 얻는 기본 사항과 그것을 저장하는 방법을 설명 할 것입니다. 불행히도 이것은 매우 깊고 기술적 인 주제입니다. 따라서 나는이 기사에서 모든 것을 말할 수 없습니다. 그러나 금융 업계에서 나의 이전 산업 경험이 주로 금융 데이터 획득, 저장 및 액세스와 관련이 있었기 때문에 미래에 이것에 대해 더 많이 쓸 것입니다.
이전 섹션에서 우리는 우리 자신의 개인적인 거부 기준에 따라 특정 전략을 거부 할 수있는 전략 파이프 라인을 설정했습니다. 이 섹션에서는 역사적 데이터를 얻기위한 우리의 선호도에 따라 더 많은 전략을 필터링합니다. 주요 고려 사항 (특히 소매업자 수준에서) 은 데이터의 비용, 저장 요구 사항 및 기술 전문의 수준입니다. 또한 사용 가능한 다양한 유형의 데이터와 각 유형의 데이터가 우리에게 부과하는 다른 고려 사항에 대해 논의해야합니다.
사용 가능한 데이터의 종류와 우리가 생각해야 할 주요 문제들에 대해 논의함으로써 시작합시다.
볼 수 있듯이, 파이프 라인을 통해 전략이 확인되면 특정 역사 데이터 집합의 가용성, 비용, 복잡성 및 구현 세부 사항을 평가 할 필요가 있습니다. 역사 데이터 고려에만 기반 한 전략을 거부 할 필요가 있음을 알 수 있습니다. 이것은 큰 영역이며 박사팀은 가격 설정이 정확하고 적시에 있는지 확인하는 큰 자금으로 작업합니다. 백테스팅 목적으로 강력한 데이터 센터를 만드는 어려움을 과소평가하지 마십시오!
그러나 많은 백테스팅 플랫폼이 이러한 데이터를 자동으로 - 비용으로 제공 할 수 있다고 말하고 싶습니다. 따라서 구현 통증의 많은 부분을 제거하고 전략 구현 및 최적화에 전적으로 집중 할 수 있습니다. 트레이드 스테이션과 같은 도구는이 기능을 보유하고 있습니다. 그러나, 내 개인적인 견해는 가능한 한 내부적으로 구현하고 소프트웨어 공급업체에 스택의 일부를 아웃소싱하는 것을 피하는 것입니다. 더 매력적인 샤프 비율로 인해 높은 주파수 전략을 선호하지만 고급 최적화가 중요한 기술 스택과 밀접하게 결합되어 있습니다.
이제 우리는 역사적 데이터에 관한 문제를 논의 한 후에 백테스팅 엔진에서 전략을 구현하기 시작할 때입니다. 이것은 다른 기사의 주제일 것입니다.