R에있는 역 테스팅 트레이딩 전략


FOSS 거래.
무료 오픈 소스 소프트웨어로 알고리즘 트레이딩.
2011 년 3 월 26 일 토요일.
R에서 전략을 백 테스팅하는 방법.
quantmod의 getSymbols 함수는 Yahoo Finance의 일일 데이터를 사용할 수있는 경우이 단계를 쉽게 만듭니다. 또한 다른 소스 (FRED, Google, Oanda, R 저장 파일, 데이터베이스 등)에서 데이터를 가져 오는 "방법"(엄격한 의미가 아님)이 있습니다. 템플릿을 사용하여 사용하는 특정 공급 업체에 대한 사용자 지정 함수를 작성할 수도 있습니다.
2 단계 : 표시기를 만듭니다.
TTR 패키지에는 다양한 지표가 포함되어 있습니다. 지표는 독창적이고 자유로운 방법으로 쉽게 결합 할 수 있도록 작성되었습니다. R-forge의 개정 106부터 TTR에는 DVI 표시기가 있습니다.
3 단계 : 거래 규칙을 수립하십시오.
이 거래 규칙은 간단하기 때문에 DVI가 0.5 이하이면 100 %로 길고 그렇지 않으면 100 %로 짧습니다. 단 한 줄로 작성할 수 있습니다. 보다 정교한 규칙 및 / 또는 위치 설정을 수행 할 수도 있지만 더 많은 코드가 필요합니다 (위치 크기 지정을 사용하는 RSI (2)는 더 복잡한 위치 크기 조정 규칙의 예입니다). 또한 신호 벡터가 뒤떨어져있어 미리보기 바이어스를 피할 수 있습니다.
4 단계 : 거래 규칙 / 형량 곡선.
Damian의 예에서와 같이, 아래 코드는 마찰이없고 슬립을 고려하지 않은 단순화 된 접근법입니다. 아래 코드는 오늘의 백분율을 반환하고 어제의 신호 / 위치 크기 (이 예제에서는 항상 +/- 100 %)로 곱합니다. 또한 Excel 파일의 결과와 일치하도록 시스템 반환을 하위 집합으로 지정합니다.
5 단계 : 전략 성과를 평가합니다.
Damian은 전략 평가의 중요성에 대해 언급했습니다. 다행스럽게도 R 사용자의 경우 PerformanceAnalytics 패키지를 사용하면이 작업을 쉽게 수행 할 수 있습니다. 몇 줄의 코드를 사용하여 코드 단편, 단점 위험 및 성능 요약을 볼 수 있습니다.
그게 바로 R에서 간단한 전략을 뒷받침하는 것입니다. 협박하는 것이 아니 었나요? Excel에서 R로 backtesting을 옮길 경우 의견을 남기십시오. 끊어 지거나 공유하고 싶은 멋진 팁이 있습니다.

r의 역 (backtesting) 거래 전략
App Store를 통해 가져 오기 우리의 응용 프로그램 에서이 게시물을 읽으십시오!
R : 거래 전략을 역행하십시오. Quantumod와 R. 에 초보자.
나는 R에 매우 익숙하며 WealthLab에서 이미 프로그래밍 한 전략을 다시 테스트하려고합니다.
내가 이해하지 못하는 몇 가지 것들 (그리고 그것은 분명히 작동하지 않습니다 :)
가까운 가격을 멋지게 벡터에 넣지는 않습니다. 또는 어떤 종류의 벡터지만 구조로 시작하고 나는이 함수가 무엇을하는지 정말로 이해하지 못한다. 그게 내 시리즈 [, 1] 호출이 아마 작동하지 않는 이유입니다.
n - nrow (series)도 작동하지 않지만 Loop에 필요합니다.
그래서이 두 가지 질문에 대한 답변을 얻으려면 내 전략이 효과가 있다고 생각합니다. 어떤 도움을 주셔서 감사합니다. R은 다른 언어로 프로그래밍 경험을해도 매우 복잡해 보입니다.
두 번째 질문부터 시작합니다.
따라서 실제 xts 객체에서 작업하려면 get을 사용해야합니다.
귀하의 첫 번째 질문에 대해 - 나는 당신이 정말로 벡터로 데이터를 가져올 필요가 없다고 생각합니다. xts 객체는 날짜별로 인덱싱 된 배열이며 작업하기 쉽습니다. 그래도 데이터를 얻으려면 사용할 수 있습니다.
이제 전략의 간단한 백 테스트를 시작하려면 다음 단계를 수행하는 것이 좋습니다.
전략을 정의하십시오. 2. 배열을 생성하거나 각 요일의 위치를 ​​나타내는 열을 xts 객체에 추가하십시오. 1은 길고, 0은 위치가 없으며 -1은 짧습니다 (나중에는 레버리지 번호로 게임을 할 수 있습니다). 3. 매일의 수익을 포지션과 곱하면 전략의 리턴 벡터를 얻을 수 있습니다. 4. 결과를 검토하십시오 - 내 추천은 PerformanceAnalytics입니다.
간단한 전략 - SMA20을 닫을 때 구매하십시오.

R로 Backtesting 전략
2016-05-06.
1 장 소개.
이 책은 주식 시장에서 가장 일반적인 기술 패턴의 통계를 생성 할뿐만 아니라 그러한 시나리오에서 실제 거래를 보여 주도록 고안되었습니다.
전략을 테스트하십시오. 결과가 유망하지 않으면 거부하십시오.
최적화를위한 전략에 다양한 매개 변수를 적용하십시오.
유망 해 보이는 전략을 죽이려 고 시도하십시오.
마지막으로 조금 설명해 드리겠습니다. 당신이 시장을 능가하는 것처럼 보이는 전략을 발견 할 수 있기 때문에, 좋은 이익과 낮은 하락률을 가지고 있다고해서 이것이 당신이 일하기위한 전략을 찾은 것을 의미하지는 않습니다. 반대로, 당신은 그것을 반증하도록 노력해야합니다. 비 윤리적 인 전략을 철저히 테스트하지 않았기 때문에 비영리 전략을 실행하는 것보다 더 나쁜 것은 없습니다. 우리는 나중에이를 다룰 것입니다.
1.1 R 리소스.
이 책은 R 플랫폼에 대한 최소한의 실무 지식이 있다고 가정합니다. R에 익숙하지 않거나 재교육을 필요로한다면 다음 사이트가 유용 할 것입니다 :
또한, 이 책에서 사용 된 패키지는 R-Forge에 투영 된 TradeAnalytics에서 찾을 수 있습니다. 이 책에 영감을주는 데 도움이되는 포럼과 소스 코드를 찾을 수 있습니다.
또한 Jan Humme과 Brian Peterson의 Using Quantstrat 프리젠 테이션뿐만 아니라 Back Testing에 대한 Guy Yollin의 프리젠 테이션을 읽으시기 바랍니다.
이 책은 R의 백 테스트 전략에 대한 기존 자원을 대체하기위한 것이 아니며, 그 자원을 향상시키고 간소화하는 것입니다. 이 책에서 다루지 않은 것이 있다면 위의 프레젠테이션을 읽으십시오.
또한이 책은 오픈 소스입니다. 누구나 기부하십시오. 내 Github 계정에서 사용할 수있는 소스 코드를 찾을 수 있습니다.
1.2 라이브러리.
백 테스팅 전략을 실행하는 데 필요한 유일한 라이브러리는 quantstrat입니다. quantstrat는 추가로 필요한 모든 라이브러리를로드합니다.
이 버전의 quantstrat에는 다음 패키지가 포함됩니다.
이러한 라이브러리를 통해 우리는 전략을 완전히 테스트하고 성과를 측정하는 데 필요한 모든 것을 갖추게 될 것입니다. 자세한 내용은 1.3 SessionInfo를 참조하십시오.
분석 또는 책 발표를 위해 사용할 수있는 추가 라이브러리 :

간단한 주식 거래 전략에 대한 백 테스팅.
참고 :이 게시물은 재정적 인 조언이 아닙니다! 이것은 R이 데이터를 가져오고 조작하는 데 필요한 몇 가지 기능을 탐색하는 재미있는 방법입니다.
나는 최근 Excel에서 흥미로운 주식 거래 전략을 연구 한 ETF Prophet에 관한 글을 읽었습니다. 전략은 간단합니다 : 지난 200 일 동안 주식의 최고 지점을 찾아 그 이후로 경과 한 일수를 계산하십시오. 100 일이 넘지 않았다면 주식을 소유하십시오. 100 일이 넘었 으면 소유하지 마십시오. 이 전략은 매우 간단하지만 인상적인 결과를 산출합니다. 그러나이 예에서는 스플릿이나 배당금으로 조정되지 않은 데이터를 사용하며 다른 오류가있을 수 있으며 거래 비용과 실행 지연도 무시되므로 전략 성능에 영향을 미칩니다.
이 전략을 R로 구현하는 것은 간단하며 엑셀보다 많은 장점을 제공합니다. 그 주된 이유는 주식 시장 데이터를 R로 끌어들이는 것이 쉽기 때문에 비교적 적은 노력으로 광범위한 인덱스에서이 전략을 테스트 할 수 있다는 것입니다.
우선, 우리는 quantmod를 사용하여 GSPC에 대한 데이터를 다운로드합니다. (GSPC는 S & P 500 지수를 의미 함). 다음으로, 우리는 시계열에서 n 일이 지난 이후의 일수를 계산하는 함수를 만들고, 우리의 거래 전략을 구현하는 함수를 생성합니다. 후자의 함수는 2 개의 매개 변수를 사용합니다. 사용하려는 n 일의 최고치와 그 최고치를 넘는 일수를 저장합니다. 예는 200과 100이지만, 이것을 500 일 최고로 쉽게 변경할 수 있으며 구제하기 전에 300 일 이전에 주식을 보유하면 어떤 일이 발생 하는지를 볼 수 있습니다. 이 함수는 매개 변수화되어 있으므로 다른 여러 버전의 전략을 쉽게 테스트 할 수 있습니다. 전략의 시작 부분을 0으로 채우므로 입력 데이터와 길이가 같습니다. (daysSinceHigh 함수에 대한 자세한 설명을 원한다면 상호 유효성 검사에 대한 토론을 참조하십시오.)
우리는 우리의 위치 (0,1) 벡터에 지수의 수익을 곱하여 전략의 수익을 얻습니다. 이제 우리는 거래 전략에 대한 통계를 반환하고 전략을 벤치 마크와 비교하는 함수를 만듭니다. 다소 임의적으로 나는 누적 수익, 평균 연간 수익률, 샤프 비율, 우승 %, 연평균 변동성, 최대 하락률 및 최대 길이 하락률을 살펴보기로 결정했습니다. 다른 통계는 쉽게 구현할 수 있습니다.
보시다시피, 이 전략은 기본적으로 "매수 및 유지"방식에 비해 유리합니다.
마지막으로 아일랜드와 영국을 대표하는 FTSE, 1896 년으로 거슬러 올라가는 다우 존스 산업 지수, 일본을 대표하는 N225 등 3 가지 지수에 대한 전략을 테스트합니다. 전체 프로세스를 기능화 했으므로 다음과 같이 1 줄의 코드로 각각의 새로운 전략을 테스트 할 수 있습니다.
코멘트는 닫힙니다.
최근 인기있는 글.
가장 많이 방문한 기사.
R 사용자를위한 작업.
bavotasan 디자인을 사용하여 WordPress에 의해 구동됩니다.
저작권 및 사본; 2017 R-bloggers. 판권 소유. 이 웹 사이트의 이용 약관.

Comments