Sunday 18 March 2018

R 코드 거래 전략


R 코드 거래 전략
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을 이용한 양적 거래 전략 : 단계별 가이드.
이 글에서는 R을 사용하여 거래 전략을 수립하는 것에 대해 논의 할 것입니다. R을 사용하여 거래 전문 용어에 머무르기 전에 R이 무엇인지 이해하는 데 시간을 할애해야합니다. R은 오픈 소스입니다. 4000 개가 넘는 애드온 패키지가 있으며, 18000 가지 이상의 LinkedIn 그룹 구성원과 현재 80 개의 R Meetup 그룹이 있습니다. 특히 데이터 분석을위한 통계 분석을위한 완벽한 도구입니다. Comprehensive R Archive Network의 간결한 설정은 CRAN이 필요한 기본 설치와 함께 패키지 목록을 제공함을 알고 있습니다. 분석에 따라 사용할 수있는 패키지가 많이 있습니다. 거래 전략을 구현하기 위해 quantstrat이라는 패키지를 사용합니다.
기본 거래 전략의 4 단계 프로세스.
가설 형성 시험 정제 생산.
우리의 가설은 "시장은 평균 반향이다"라고 공식화되어있다. 평균 회귀 (mean reversion)는 결국 가격이 결국 평균값으로 돌아 간다는 것을 나타내는 이론입니다. 두 번째 단계는 우리 가설에 대한 전략을 공식화하고 지표, 신호 및 성과 지표를 계산하는 가설을 검증하는 것입니다. 테스트 단계는 세 가지 단계, 데이터 가져 오기, 전략 작성 및 출력 분석으로 나눌 수 있습니다. 이 예에서는 NIFTY-Bees를 고려합니다. Goldman Sachs가 관리하는 Exchange 거래 펀드입니다. NSE는 장비에 대한 막대한 양을 가지고 있으므로이를 고려합니다. 아래 이미지는 동일 가격의 Open-High-Low-Close 가격을 보여줍니다.
우리는 가격의 변동을 비교하기위한 기준점을 설정합니다. 가격이 증가하거나 감소하면 임계 값 열을 업데이트합니다. 종가는 상위 밴드와 하위 밴드와 비교됩니다. 상부 밴드가 넘어지면, 그것은 판매를위한 신호입니다. 마찬가지로 낮은 밴드가 넘어지면 팔리는 신호입니다.
코딩 섹션은 다음과 같이 요약 될 수 있습니다.
전략 결과물에 대한 헬리콥터보기가 아래 다이어그램에 나와 있습니다.
따라서 시장이 평균 반전이라는 가설이 뒷받침된다. 이것은 역기능 테스트이므로 평균 수익률과 실현 된 이익을 개선 할 수있는 거래 매개 변수를 조정할 여지가 있습니다. 다른 임계 값 레벨, 보다 엄격한 입력 규칙, 정지 손실 등을 설정하여 수행 할 수 있습니다. 백 테스트를 위해 더 많은 데이터를 선택하고, 임계 값 설정을 위해 Bayseian 접근법을 사용하고, 변동성을 고려합니다.
일단 백 - 테스트 결과에 의해 뒷받침되는 거래 전략에 대해 확신하고 나면 라이브 거래를 시작할 수 있습니다. 프로덕션 환경은 그 자체로 큰 주제이며 기사의 맥락에서 벗어납니다. 간단히 설명하면 거래 플랫폼에 전략을 쓰는 것입니다.
앞서 언급했듯이, 우리는 quantstrat 패키지를 사용하여 모델을 구축 할 것입니다. Quantstrat는 신호 기반 정량 전략을 모델링하고 백 테스트하는 일반 인프라를 제공합니다. 매우 적은 코드 행에서 전략을 빌드하고 테스트 할 수있게 해주는 고급 추상화 계층 (xts, FinancialInstrument, blotter 등을 기반으로 함)입니다.
퀀트 스트릿의 주요 특징은 다음과 같다.
지표, 신호 및 규칙을 포함하는 전략 지원 다중 자산 포트폴리오에 전략 적용 가능 시장, 제한, 중지 및 중지 오더 유형 지원 주문 크기 조정 및 매개 변수 최적화를 지원합니다.
이 게시물에서 우리는 지표, 신호 및 규칙을 포함하는 전략을 수립합니다.
일반적인 신호 기반 모델의 경우 다음 사항을 고려해야합니다.
계측기 - 시장 데이터 포함 지표 - 시장 데이터로부터 도출 된 정량적 가치 신호 - 시장 데이터와 지표 간의 상호 작용 결과 규칙 - 시장 데이터, 지표 및 신호를 사용하여 주문을 생성합니다.
별로 신경 쓰지 않고 코딩 부분을 논의 해 봅시다. 우리는 코딩을 위해 R studio를 선호하며 동일한 것을 사용하라고 주장합니다. 전략을 프로그래밍하기 전에 특정 패키지가 설치되어 있어야합니다.
다음 명령 세트는 필요한 패키지를 설치합니다.
패키지를 설치하면 추가 사용을 위해 패키지를 가져옵니다.
csv 파일에서 데이터를 읽고 xts 객체로 변환합니다.
우리는 주식, 통화, 초기 자본 및 전략 유형으로 포트폴리오를 초기화합니다.
동일한면에서 두 번 이상 교역하려면 위치 제한을 추가하십시오.
전략 개체를 만듭니다.
우리는 거래하고자하는 임계 값을 계산하는 함수를 만듭니다. 가격이 thresh1만큼 이동하면 임계 값을 새 가격으로 업데이트합니다. 거래를위한 새로운 밴드는 Threshold +/- Thresh2입니다. reclass 함수를 사용하지만 출력은 xts 객체입니다.
표시기, 신호 및 거래 규칙을 추가하십시오.
전략을 실행하고 주문서를보십시오.
포트폴리오를 업데이트하고 무역 통계를보십시오.
다음은 완전한 코드입니다.
이러한 기본 사항에 익숙해지면 R에서 quantimod 패키지를 사용하는 방법을 살펴 보거나 C ++을 잘 이해할 수 있도록 C ++로 코딩 된 예제 전략을 살펴보십시오.
자신의 자동 트레이딩 데스크를 시작하려는 소매업 종사자 또는 기술 전문가 인 경우 오늘 알 고 트레이딩을 배우십시오! 자동화 된 거래 아키텍처, 시장 미세 구조, 전략 백 테스트 시스템 및 주문 관리 시스템과 같은 기본 개념으로 시작하십시오.

간단한 주식 거래 전략에 대한 백 테스팅.
참고 :이 게시물은 재정적 인 조언이 아닙니다! 이것은 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 튜토리얼의 알고리즘 트레이딩.
이번 포스트에서는 R을 사용하여 loyal3에 나열된 주식을 수집하고 Yahoo의 과거 데이터를 얻은 다음 간단한 알고리즘 거래 전략을 수행하는 방법을 보여 드리겠습니다. 길을 따라, 당신은 웹 스크래핑, 금융 API를 타격하는 함수, 대화 형 시계열 차트를 만들기위한 html 위젯을 배울 것입니다.
이 게시물의 경우 거래 알 고는 예측 모델 또는 시계열 예측 대신 구매 또는 판매 이벤트를 트리거하는 규칙 집합으로 정의됩니다. 이것은 거래 알 고의 가장 단순한 유형이지만, R을 사용하여 재무에 대해 더 깊이 파고 드는 데 관심이있는 경우 R에서 양적 거래 전략을 모델링 할 때 DataCamp†™ 과정을 수강 할 것을 권장합니다.
배경.
2015 년에 나는 충성스럽게 조금 투자하기 시작했습니다 .3. 그들의 서비스는 평범하지 않으며 투자 여정을 시작하기에 좋은 곳입니다. loyal3은 거래를 위해 투자자를 부과하기보다는 회사가 자신의 플랫폼에 등록하도록 청구합니다. 전제는 company†™ s 서비스를 좋아하는 사람들이 또한 주식을 사기 때문에 이렇게하는 것은 강한 상표 옹호자가된다이다. 플랫폼을 더욱 매력적으로 만드는 것은 분수 공유를 구입할 수 있다는 것입니다. 그래서, 당신은 그 달 말에 약간의 여분의 현금을 가질 때마다 단 $ 10에 대해 800 달러의 아마존 주식을 얻을 수 있고 또 다른 $ 10 분수를 살 수 있습니다. 창문에서 거래해야하고 전체 포트폴리오가 제한되어 있으므로 마찰 비용이 있습니다.
70 주식이지만 loyal3은 재미 있고 저렴한 비용으로 주식 트레이닝을 탐구합니다. 10 달러 정도면 게임에 실제 스킨을 넣을 수 있습니다!
분명히하기 위하여, 나는 전형적인 은퇴와 투자 계정이있다 그러나 나는 app에 loyal3†™ s 청결한 공용 영역을 좋아하고 요금의 부족을 좋아한다. 나는 직접적으로 선택한 주식의 성과를 보는 것이 쉽고 재미 있기 때문에 단순히 나의 뮤추얼 펀드보다 재미있는 로얄 3 포트폴리오를 점검하는 것으로 끝납니다.
loyal3에서 사용할 수있는 주식.
작업 공간 설정.
시작하려면 라이브러리를 환경에로드하십시오. 요즘 웹 스크랩을 위해 거의 항상 rvest를 사용합니다. RSelenium을 포함하여 작동하는 다른 패키지가 있지만, 나는 쉬운 rvest가 실행될 수있는 것을 좋아한다.
두 번째 패키지 인 pbapply는 적용 기능에 진행률 표시 줄을 추가하기 때문에 선택 사항입니다. 수백 개의 웹 페이지를 고칠 수 있으므로 진행률 막대를 사용하면 시간을 예측하는 데 도움이됩니다.
다음으로, TTR은 방금 탐구하기 시작한 패키지입니다. 라이브러리는 기술 거래 규칙을 구성하는 데 사용됩니다. 이 게시물에서 간단한 거래 알 고를 배우게되지만, TTR 패키지는보다 정교한 계산을 수행 할 수 있으며 학습 가치가 있습니다.
dygraphs 라이브러리는 빠르고 개방적인 소스 JavaScript 차트 라이브러리의 래퍼입니다. R 차트를보다 동적으로 만들고 정적 이미지 대신 HTML 파일의 일부로 만드는 htmlwidgets 중 하나입니다. 마지막으로, lubridate 패키지는 쉬운 날짜 조작을 위해 사용됩니다.
데이터 수집.
모든 충성스런 주식은 모두 한 페이지에 나열됩니다. 개별 일일 주가를 조사하여 거래 알고리즘을 작성하려면 먼저 사용 가능한 모든 Stocker Ticket을 수집해야합니다. 먼저 할 일은 stock. list를 URL 문자열로 선언하는 것입니다. 그런 다음 R 세션이 인터넷 세션을 만들고 페이지의 모든 HTML 정보를 XML 노드 집합으로 수집 할 수 있도록 read_html ()을 사용합니다. 페이지 CSS에는 “pany-name†called라고하는 ID가 있습니다. 이 노드와 연관된 XML 데이터 만 선택하기 위해 html_nodes ()를 호출 할 때이를 매개 변수로 사용하십시오. 마지막으로 html_text ()를 사용하여 회사 이름의 실제 텍스트 값을 수집합니다.
loyal3에서 사용할 수있는 주식을 검사하려면 stocks. names 개체를 콘솔에 인쇄 할 수 있습니다. 그러면 회사 이름이 텍스트 벡터로 반환됩니다.
주가를 조사하기 위해서는 먼저 증권 시세 기호를 알아야합니다. loyal3 사이트에있는 경우 회사 타일을 클릭하여 시세 표시 기호 및 기타 회사 정보가있는 페이지를로드 할 수 있습니다.
주식에 html_nodes ()를 사용하면 “a. †marked로 표시된 모든 노드를 가져옵니다. HTML에서 & lt; a & gt; 태그는 양식을 다른 페이지로 연결하는 데 사용되는 하이퍼 링크를 정의합니다. 하이퍼 링크 태그 내에서 “href†the는 정확한 URL 주소를 나타냅니다. 따라서 html_attr ()은 “href†pass를 전달하면 페이지의 모든 링크에 대한 URL을 추출합니다.
몇 가지 수동 검사를 수행 한 후 페이지의 54 번째에서 123 번째 링크가 티커 정보를 긁어 내기 위해 필요한 회사 페이지를 나타내는 것으로 나타났습니다. 마지막 줄은 paste0 ()을 사용하여 기본 URL 문자열 †™ loyal3`을 “ / WALMART†like와 같은 특정 회사 페이지에 연결합니다. 예를 들어, loyal3 / WALMART :
각 회사 페이지에는 설명, 최근 마감 가격 및 시세가 있습니다. 모든 회사 페이지는 동일하게 구성되어 있으므로 사용자 정의 함수 get. ticker ()를 사용하여 티커 심볼을 추출 할 수 있습니다.
company†™ s 웹 페이지 안에 “ticker 가격 †called이라고 칭한 테이블이있다. 이 함수는 회사 페이지로 이동하여 해당 테이블을 식별하고 html_text ()로 텍스트를 추출합니다. 마지막으로 정규 표현식 ^ ([[: alpha :]] *). * 및 \\ 1과 함께 sub ()를 사용하면 모든 알파벳 문자가 유지됩니다. 그 결과 $와 같은 특수 문자와 종가와 같은 모든 숫자가 제거됩니다. 함수는 70 페이지 각각을 읽으므로 주식 시세표 만 수집합니다.
알리바바에 대한 loyal3 주식 페이지는 в ™ ™의 증권 시세 표시기 인 BABA가 들어있는 테이블을 볼 수 있으며 굵게 표시된 텍스트 아래에 있습니다.
사용자 정의 함수로 무장 한 pblapply ()를 사용하여 각 company†™ s 페이지가 포함 된 stock. links에이를 적용하십시오. 결과 객체 인 stock. tickers는 개별 주식 시세 표시기의 목록으로 각 요소는 개별 회사에 해당합니다.
요소 목록을 평면 객체로 변경하는 한 가지 방법은 do. call ()을 사용하는 것입니다. 여기서는 rbind를 적용하여 각 목록 요소를 단일 벡터에 바인딩합니다. 마지막으로 기호 및 회사 이름 정보가있는 데이터 프레임을 만듭니다.
분석에서 일관성을 유지하려면 각 주식에 대해 수집 한 기록 정보의 양을 제한하고 싶을 수 있습니다. Sys. Data () 함수는 년, 월, 일로 날짜 개체를 저장합니다. integer와 함께 년을 사용하면 start. date 객체에서 특정 시간을 빼는 방법 중 하나입니다.
야후 재무 데이터를 얻으려면 날짜 개체를 대시가없는 간단한 문자 개체로 변경해야합니다. start. date 및 end. date에서 전역 대체 함수 gsub ()를 사용하면 클래스가 변경되고 동시에 대시가 제거됩니다. gsub () 내에서 검색 할 문자 패턴을 전달한 다음 대체 문자를 전달합니다. 이 경우 대체 패턴은 따옴표 사이의 빈 문자입니다. 마지막 매개 변수는 gsub ()가 적용될 객체입니다.
TTR () 함수 getYahooData ()는 주식 기호와 시작 날짜와 종료 날짜를 허용합니다. 이 함수는 시계열 정보가있는 데이터 프레임을 반환합니다. 각 행은 날짜이며 열은 “pen”, “igh вњќ ќќќќќќќќќќќќќќќќќќќќќ equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity equity................................... 여러 회사를 찾고 있기 때문에 lapply () 또는 pblapply ()를 사용할 수 있습니다. 회사 심볼의 벡터를 전달한 다음 getYahooData () 함수를 전달한 다음 날짜 정보를 전달합니다. date 객체는 getYahooData ()가 주식 기호에 적용될 때마다 재활용 된 매개 변수입니다.
반환 된 목록을 선택하려면 stocks. ts를 쉽게 탐색 할 수 있으며 목록 요소에 이름을 추가 할 수 있습니다. stocks. ts 객체에 이름을 사용하면 이름이 원래 $ 기호 벡터로 선언됩니다.
큰 목록으로 작업 할 때 결과 객체가 예상 한 결과인지 확인하려고합니다. 요소의 이름이 지정되었으므로 요소를 직접 참조 할 수 있습니다. 이 예제에서는 AMC Entertainment Holdings (AMC)의 처음 6 행을 검토합니다. $ AMC를 참조하면서 목록에서 head ()를 사용하면이 주식에 대한 시계열의 일부가 반환됩니다.
주식 데이터 검사.
금융 뉴스를 듣는 경우 종종 해설자가 차트를 참조합니다. 높은 빈도의 거래와 다른 사람들에 의한 능동적 인 관리에도 불구하고 많은 소규모 투자자들은 여전히 ​​통찰력을 얻기 위해 차트를 참조합니다. 플롯을 사용하여 시계열 객체를 빠르게 표시 할 수 있습니다. $ AMC와 같은 명명 된 요소를 참조한 목록을 전달한 다음 표시하려는 열 (여기서는 $ Close)을 전달합니다.
위의 그림은 정적이며 매우 흥미로운 것은 아닙니다.
Let†™는 당신이 탐구 할 수있는 도표를 만들기 위하여 JavaScript 도서관을 이용한다. 이 코드 스 니펫에서는 “ % & gt; % ” 또는 파이프 연산자를 볼 수 있습니다. 파이프 연산자는 간결한 코드를 작성하는 좋은 방법입니다. 이 게시물에서 이전에했던 것처럼 개체 이름을 다시 쓰지 않아도 개체를 다음 함수로 전달합니다.
이 예에서는 트위터 주식 $ TWTR을 표시하는 대화 상자를 작성한 다음 $ Close로 그려야 할 열을 작성합니다. dygraph에서 main은 따옴표 사이에 지정된 제목을 추가합니다. “ % & gt; % ”을 사용하여이 전체 객체는 다음 함수 dyRangeSelector ()로 전달됩니다. c ()를 시작 및 종료 날짜 문자열과 함께 사용하여 기본 날짜 범위를 지정할 수 있습니다. 결과 HTML 객체는 Twitter†™ 주식의 동적 시계열이며 하단에 날짜 슬라이더가 있습니다.
표시된 자산을 변경하려면 stocks. ts 목록의 시세 표시 기호를 변경 한 다음 그래프 제목을 변경하십시오.
이것은 Twitter†™ s 주식을위한 기본적인 dygraph이다.
간단한 무역 전략 : 추세 다음.
고 빈도 거래자와 헤지 펀드는 정교한 모델과 규칙 기반 접근법을 사용하여 거래를 수행합니다. 더 많은 것을 배우고 싶다면 퀀토 피안 (quantopian)을 고급 접근 방식으로 방문하는 것이 좋습니다. 보다 간단한 접근법은 Investopedia에서이 페이지로 시작하십시오.
아래 코드에서 간단한 모멘텀 트레이딩 전략을 시각화합니다. 기본적으로 주식 가격에 대한 200 일 이동 평균과 50 일 이동 평균을 계산할 것입니다. 50 일 이동 평균이 200 일 이동 평균을 초과하는 특정 일에 대해서는 포지션을 구입하거나 보유 할 것입니다. 200 일 평균이 50 일 이동 평균보다 많은 날에는 주식을 매각해야합니다. 이 전략을 추세 추적 전략이라고합니다. 두 시간 기반 평균 사이의 양 또는 음의 성질은 stock†™ s의 모멘텀을 나타냅니다.
TTR 패키지는 단순 이동 평균 계산을 위해 SMA ()를 제공합니다. 이 코드 스 니펫에서는 Twitter†™ s 200 및 50 일 이동 평균의 처음 6 개 값을 검사합니다. SMA ()는 주식의 시계열 데이터와 Close와 같은 특정 열을 전달하여 작동합니다. 이것은 TWTR 주식의 종가를 결정하는 단일 벡터입니다. 두 번째 매개 변수는 이동 평균에 대한 관측 수를 나타내는 정수입니다. head ()를 사용하지 않으면 SMA () 함수가 모든 값을 반환합니다.
이제 이동 평균 함수를 자세하게 살펴 보았으므로 70 개의 주식 각각에 적용해야합니다. stocks. ts는 개별 주식 데이터가 포함 된 70 개의 데이터 프레임 목록입니다. 각 데이터 프레임의 네 번째 열에는 이동 평균에 사용할 마감 가격이 포함되어 있습니다.
사용자 정의 함수 mov. avgs ()는 이동 평균을 계산하기 위해 하나의 주식 데이터 프레임을 허용합니다. 첫 번째 행은 [, 4]를 인덱싱하여 stock. close를 작성하기 때문에 종가를 선택합니다. 다음 함수는 ifelse를 사용하여 데이터 프레임의 행 수를 확인합니다. 특히 데이터 프레임의 nrow가 (2 * 260)보다 작 으면이 함수는 вњ with moving로 이동 평균의 데이터 프레임을 만듭니다.
1 년에 약 250 일 거래가 있기 때문에이 번호를 선택했습니다. 따라서 시계열이 약 2 년 이상인지 확인합니다. Loyal3은 때때로 IPO에 액세스 할 수 있으며 주식이 새로 공개되면 200 일 이동 평균에 대한 데이터가 충분하지 않습니다. 그러나 nrow 값이 2 * 260보다 크면이 함수는 원래 데이터와 함께 200 및 50 일 이동 평균과 함께 새 열로 데이터 프레임을 만듭니다. colnames를 사용하여 열 이름을 선언합니다. 함수의 마지막 부분은 complete. cases를 사용하여 200 일 이동 평균 열의 값을 확인합니다. 값이없는 행은 최종 결과에서 제외됩니다.
이 mov. avgs () 함수로 무장 한 pblapply ()를 사용하여 이동 평균 계산을 70 개의 데이터 프레임 각각에 추가 할 수 있습니다.
dygraph를 사용하여 stock†™ s moving average를 시각화하려면 아래 코드를 사용하십시오. 다시 한번, 이 코드는 вњњ % & gt; % ” 연산자를 사용하여 객체를 전달합니다. dygraph () 함수는 stocks. ts $ FOX 데이터 프레임을 허용합니다. 구체적으로, 데이터 프레임은 c ( 'sma_200', 'sma_50')로 열 이름으로 인덱싱됩니다. 이 객체는 다음 2 줄의 dySeries ()에 전달됩니다. dySeries ()가 2 행과 3 행의 вњњsma_50” 및 “sma_200” 값에 대한 선을 그릴 수 있도록 이름으로 열을 참조 할 수 있습니다. 이 객체는 selector†™ s 높이를 조정하기 위해 dyRangeSelector ()로 다시 전달됩니다. 마지막으로 주식을 매입하거나 보유하고 싶었던 기간과 주식을 매각 했어야하거나 주식을 매각해야하는 기간을 정의하기 위해 음영을 추가했습니다.
다음은 대화 형 시계열의 최종 결과입니다.
FOX는 음영 지역을 평균으로 매수 / 매도 대 매도로 이동합니다.
결론.
신진 알고리즘 트레이더로서 70 개의 모든 주식을 그릴 필요가 없습니다. 대신, 매일 코드를 실행하고 규칙 기반 방법에 맞는 주식을 식별하는 프로그램 방식을 추가하는 것이 좋습니다. 50 일 이동 평균이 200 일 이동 평균보다 높으면 “buy입니다. 위의 차트를 검토 할 때 녹색 부분은 FOX 에퀴티를 구입할 때입니다. 빨간색 섹션은 주식을 매각하고 재 입력하지 않는 시간을 나타냅니다.
그래프는 대화 형이므로 슬라이더를 사용하여 비주얼의 크기를 조정할 수 있습니다. 이 간단한 거래 거래 접근법을 기반으로 지금 FOX를 살 좋은 시간이 될 것입니다! 2016 년 12 월 30 일은 50 일 이동 평균이 200 일 이동 평균보다 0.01 달러 더 오른 거래일이었습니다!
폭스 형평의 확대 된 부분.
물론 모든 투자가 가치를 잃을 수 있음을 기억하십시오. 재정 및 골동품 거래에 대해 더 자세히 알기를 원하시면, 여기 DataCamp†™ 코스를 확인하십시오.

No comments:

Post a Comment