Saturday 17 February 2018

단순 이동 평균 백 테스트


단순 이동 평균 - 백 테스팅 거래. 이동 평균 매개 변수가 가장 좋습니다. 이 사이트는 DAX, SP500 및 USD EU Forex에 대해 수행 한 이동 평균 백 테스트의 바다가 있습니다. 이 테스트는 간단한 지수 및 크로스 오버를 사용하여 수행되었습니다 변종 및 1000 일 거래 기간 동안 다른 인덱스를 사용합니다. 다른 웹 사이트와 대조적으로, 나는 또한 조합에서 크로스 오버 전략에 대한 1 - 1000 일에서 모든 이동 평균 하루 창 값을 테스트했습니다. 이 데이터는 또한 unqiue로 나는 현실적인 테스트를 수행하고, 구매 매도 확산 및 세금을 시뮬레이션하여 레퍼런스 바이 홀드 전략과 비교했습니다. 빠른 반응 창 값은 이론적으로나 간단한 테스트로 보입니다. 그러나 스프레드, 수수료 및 세금은 실용적인 응용 프로그램이 현실적인 테스트는 왜 그렇게 가치가있다. 나는이 사이트가 귀하의 거래와 함께 당신을 도울 수 있기를 바랍니다. 귀하의 거래 아이디어를 백업하십시오. 당신이 할 수있는 가장 유용한 것들 중 하나 분석 창에서 과거 데이터에 대한 거래 전략을 백 테스트하는 것입니다. 이는 실제 현금을 투자하기 전에 시스템의 장점과 약점에 대한 귀중한 통찰력을 제공 할 수 있습니다. 이 단일 AmiBroker 기능은 많은 돈을 절약 할 수 있습니다. 거래 규칙 먼저 시장 진입 및 퇴출을위한 객관적 또는 기계적 규칙이 필요합니다. 이 단계는 전략의 기반이며 시스템이 위험 허용 범위, 포트폴리오 크기, 자금 관리 기술 및 기타 요구 사항과 일치해야하기 때문에 스스로 생각해야합니다 다른 개별 요인. 거래에 대한 자신의 규칙이 있으면 AmiBroker Formula Lanugage에 규칙을 사고 파는 것으로 작성해야하며 짧은 거래도 테스트하려는 경우 표지를 작성해야합니다. 이 장에서는 매우 기본적인 이동 평균 교차 분석 시스템 가까운 가격이 45 일 지수 이동 평균 이상으로 올라갈 때 시스템은 주식 계약을 체결하고 가까운 가격이 45 일의 지수로 떨어지면 주식 계약을 판매합니다 이동 평균. 지수 이동 평균은 내장 함수 EMA를 사용하여 AFL로 계산할 수 있습니다. 입력 배열 및 평균 기간을 지정하면되므로 마감 가격의 45 일 지수 이동 평균을 다음과 같이 구할 수 있습니다. 닫기 식별자는 현재 분석 된 심볼의 마감 가격을 유지하는 내장 배열을 나타냅니다. 가까운 가격이 지수 이동 평균을 초과하는지 테스트하려면 내장 된 교차 함수를 사용하십시오. 교차 닫기, 닫기, 45를 입력하십시오. 위의 진술은 구매 거래 규칙을 정의합니다. 가까운 가격이 가까운 ema를 초과하면 1 또는 true를 제공합니다. 45 그런 다음 반대 조건이 발생하면 1을 제공하는 판매 규칙을 작성할 수 있습니다. 가까운 가격은 가까운 에마 닫기, 45. 교차 에마 닫기, 45, 닫습니다. 같은 교차 함수를 사용하지만 인수의 반대 순서를 사용한다는 점에 유의하십시오. 긴 거래에 대한 완전한 수식은 다음과 같습니다. 교차 구매 닫기, 닫기 닫기, 45 교차 닫기 닫기, 45 닫기 참고 c 새로운 수식 재 입력 Analysis - 수식 편집기 메뉴를 사용하여 수식 편집기를 열고 수식을 입력하고 수식 편집기의 도구 - 분석으로 보내기 메뉴를 선택하십시오. 시스템을 다시 테스트하려면 자동 분석 창의 뒤로 테스트 단추를 클릭하십시오. 위와 같이 매매 거래 규칙을 적어도 포함하는 수식을 입력했습니다 수식이 올 바르면 AmiBroker는 거래 규칙에 따라 기호를 분석하기 시작하고 시뮬레이션 거래 목록을 생성합니다 전체 프로세스가 매우 빠릅니다 - 몇 분 만에 수천 개의 기호 진행 상황 창에 예상 완료 시간이 표시됩니다. 프로세스를 중지하려면 진행 창에서 취소 버튼을 클릭하면됩니다. 프로세스가 완료되면 시뮬레이트 된 거래 목록이 하단에 표시됩니다 자동 분석 창의 일부 결과 창 결과 창에서 거래를 더블 클릭하면 구매 및 판매 신호가 언제 발생했는지 확인할 수 있습니다. 승패 조건에 부합하는 모든 막대에 대해 필터링되지 않은 신호를 표시합니다. 현재 선택된 거래를 열거 나 닫는 단일 거래 화살표 만보고 싶으면 SHIFT 키를 누른 상태에서 라인을 두 번 클릭해야합니다. 마우스 오른쪽 버튼으로 결과 창을 클릭 할 때 표시되는 상황에 맞는 메뉴에서 적절한 항목을 선택하십시오. 결과 목록 외에도 보고서 버튼을 클릭하여 시스템 성능에 대한 매우 상세한 통계를 얻을 수 있습니다. 보고서 통계에 대한 자세한 내용은 보고서 창 설명을 확인하십시오. 다시 테스트 설정을 변경하십시오. AmiBroker의 이전 테스트 엔진은 포트폴리오 크기, 주간 월별 정기주기, 커미션 금액, 이자율, 최대 손실 및 이익을 포함하여 작업 수행에 사전 정의 된 일부 값을 사용합니다 목표 중지, 거래 유형, 가격 필드 등이 모든 설정은 사용자가 설정 창 A를 사용하여 변경할 수 있습니다 설정을 변경하는 경우 결과가 설정과 일치하도록하려면 다시 테스트를 실행해야합니다. 예를 들어, 매일 대신 주간 막대를 테스트하려면 설정 버튼을 클릭하기 만하면주기 선택기 상자에서 주 단위를 선택하고 OK를 클릭하고 Back test. Reserved variables names를 클릭하여 분석을 실행하십시오. 다음 표는 Automatic Analyzer에서 사용하는 예약 변수의 이름을 보여줍니다. 이 장의 의미와 사용 예는이 장의 뒷부분에서 설명합니다. 무역에 투자 된 것은 아래의 설명을 참조하십시오. 3에서 새로운 자동 분석 9. 지금까지 우리는 백 테스터 AmiBroker의 사용법을 간단하게 논의했지만, 이 장의 뒷부분에서 더 자세히 설명 할 훨씬 더 정교한 방법과 개념을 지원합니다. 초급 사용자는 진행하기 전에 위에서 설명한 쉬운 주제로 먼저 연주해야합니다. 준비가되면 추종자를 살펴보십시오. g 최근에 백 테스터의 기능을 도입했습니다. a 고급 수식 작성자를위한 AFL 스크립팅 호스트 b 짧은 거래에 대한 지원 향상 c 스크립트에서 주문 실행 가격을 제어하는 ​​방법 d 백 테스터 e 위치 크기 조정 라운드 로트 크기 그리고 틱 크기 g 마진 계정 h backtesting futures. AFL 스크립팅 호스트는 별도의 문서에서 사용할 수있는 고급 주제는 여기에 내가이 문서에서 논의하지 않을 남아있는 기능은 훨씬 더 쉽게 이해할 수 있습니다. 이전 버전의 AmiBroker , 장기 및 단기 거래를 모두 사용하여 시스템을 백 테스트하려는 경우 정지 및 후진 전략 만 시뮬레이션 할 수 있습니다. 긴 순위가 닫히면 새로운 단 축 위치가 바로 열렸습니다. 구매 및 판매 예약 변수가 거래 유형입니다. 현재 버전 3 59 이상에서는 장단기 거래를 열고 닫는 별도의 예약 된 변수가 있습니다. 구매 - true 또는 1 값은 긴 거래 매도를 엽니 다 - true 또는 1 value true 또는 1 값은 short trade cover를 엽니 다 - true 또는 1 값은 short trade를 닫습니다. 짧은 거래를 테스트하기 위해 short 및 cover 변수를 지정해야합니다 stop-and-reverse system always on 시장은 간단히 매도를 할당하고 커버하기 위해 구매합니다. 짧은 매도 커버 구매. 이것은 3 가지 59 가지 버전 이전의 방식을 시뮬레이션합니다. 하지만 이제 AmiBroker를 사용하면이 간단한 방법과 같이 길고 짧게하는 별도의 거래 규칙을 가질 수 있습니다 예. 긴 거래 진입 및 퇴장 규칙 교차 cci 구매, 100 판매 교차 100, cci. 짧은 거래 진입 및 퇴출 규칙 짧은 교차 -100, cci 표지 교차 cci, -100.이 예제에서 CCI가 -100과 100 사이에있는 경우주의하십시오. 무역 거래 통제. AmiBroker는 이제 4 개의 새로운 예약 변수를 제공합니다 구매, 판매, 단기 및 커버 오더가 실행되는 가격을 지정하기위한 것입니다. 이 어레이는 다음과 같은 이름을 가지고 있습니다. 이 변수는 판매 가격, 판매 가격, shortprice 및 coverprice입니다. 이 변수의 주요 응용 프로그램은 무역 가격을 제어합니다. BuyPrice IIF dayofweek 1, HIGH, CLOSE on 월요일에 높은 가격으로 살 수 있습니다. 그렇지 않으면 닫을 때 구매하십시오. 다음과 같이 실제 정지 주문을 시뮬레이션 할 수 있습니다. 구매 중지 수준 SellStop의 공식을 중지하십시오. 언제든지 하루 동안의 가격 상승이 buystop level high buystop보다 높으면 구매 주문은 buystop 또는 낮은 가격으로 발생합니다 Cross High, BuyStop 구매. 언제든지 낮 동안의 가격이 sellprice 수준 미만으로 떨어지면 sellstop은 sellstop 또는 high 중 높은 가격으로 판매가 이루어집니다. Cross SellPrice, SellStop. BuyPrice max BuyStop, Low는 최저 가격보다 낮은 가격으로 판매하십시오. SellPrice min SellStop, High AmiBroker는 buyprice, sellprice, shortprice 및 coverprice 배열 변수를 아래 표시된 시스템 테스트 설정 창에 정의 된 값으로 미리 설정하므로 수식에 정의 할 필요가 없습니다. AmiBroker는 이전 버전에서와 같이 작동합니다. 백 테스트 AmiBroker는 buyprice, sellprice, shortprice, coverprice에 지정된 값이 지정된 막대의 고저 범위에 맞는지 확인합니다. 그렇지 않은 경우 AmiBroker는이를 높은 가격으로 조정합니다. if 가격 배열 값이 낮거나 낮은 경우 가격 배열 값이 높거나 낮습니다. 수익 목표 중지. 위 그림에서 볼 수 있듯이 수익 목표 정지에 대한 새 설정은 사용할 수 있습니다. 파일 시스템 테스트 설정 창에서 수익 목표 정지는 주어진 날의 고가가 구매 가격에서 백분율 또는 포인트 증가로 주어질 수있는 정지 레벨을 초과 할 때 실행됩니다. 기본적으로 중지는 판매로 정의한 가격으로 실행됩니다 짧은 거래의 경우 가격 배열 또는 짧은 거래의 경우 가격 배열이 동작은 중지 기능에서 종료 기능을 사용하여 변경할 수 있습니다. 정지 기능에서 종료하십시오. 설정의 중지 상자에서 종료를 표시하면 정지는 정확한 정지 레벨에서 실행됩니다. 만약 당신이 이익 목표를 정하면 10을 멈추고 매수 가격은 50이었습니다. 매도 가격 배열이 56의 다른 종가를 포함하고 있더라도 55로 주문이 실행됩니다. 최대 손실은 비슷한 방식으로 작동을 멈 춥니 다. 주어진 일의 저렴한 가격이 구매 가격에서 백분율 또는 포인트 증가로 주어질 수있는 정지 수준 아래로 떨어지면 실행됩니다. 이 종류의 정지는 매번 위치를 추적하므로 이익을 보호하기 위해 사용됩니다 값이 새로운 높이에 도달하면 트레일 링 스톱이 더 높은 레벨에 배치됩니다. 이익이 트레일 링 스톱 레벨 이하로 떨어지면 위치가 닫힙니다. 이 메커니즘은 아래 그림 10에 나와 있습니다. AFL에서의 이익 목표 정지의 샘플 저수준 구현. Cross MACD, Signal. for i 0 가격 매김 경우 가격 계산 0 1 1 priceatbuy 판매 i 1 SellPrice i 1 1 priceatbuy priceatbuy 0 else i 0 판매 . 이것은 버전 3 9의 새로운 기능입니다. 백 테스터의 위치 결정은 새로운 예약 된 변수를 사용하여 구현됩니다. 위치 크기 배열. 이제는 달러 금액 또는 무역에 투자 된 포트폴리오 백분율을 제어 할 수 있습니다. 예를 들어 거래에 투자됩니다. 포지션 크기 1000은 모든 거래에 1000을 투자합니다. 음수 -100 -1 정의 백분율 -100은 현재 포트폴리오 크기 100을 제공하고, -33은 33의 가용 자본을 제공합니다. 포지션 크기 -50은 항상 절반 만 투자합니다 RSI 값은 0에서 100까지 다양합니다. RSI 값에 따라 위치가 결정됩니다. RSI 값이 낮 으면 투자 비율이 높아집니다. 사용 가능한 현금이 100 미만이면 남아있는 금액은 설정에 정의 된대로 이자율을 올립니다. 또한 AA 설정 창에 새 확인란이 있습니다. 위치 크기 축소 허용 - 이 플래그가 설정된 경우 PositionSize 변수를 통해 요청 된 위치 크기가 사용 가능한 현금을 초과하는 경우 백 테스터가 상황을 처리하는 방법을 제어합니다 위치가 입력되지 않은 경우 사용 가능한 현금으로 크기가 입력되어 위치가 입력되었는지 확인합니다. 실제 위치 크기를 보려면 AA 설정 창에서 새 보고서 모드를 사용하십시오. 가격 및 POS 크기가있는 거래 목록. AFL로 코딩 된 Tharp의 ATR 기반 포지션 사이징 기술의 예입니다. 여기에서 구매 공식을 사용하십시오. 정지로만 판매되는 판매를 판매합니다. TrailStopAmount 2 ATR 20 Capital 100000 중요 설정 초기 자본으로 설정하십시오. 위험 0 자본 위치 크기 위험 TrailStopAmount BuyPrice ApplyStop 2, 2, TrailStopAmount, 1.이 기술은 다음과 같이 요약 될 수 있습니다. 심볼 당 총 자본은 100,000이고, 위험 수준은 tota l 지분 위험 수준은 다음과 같이 정의됩니다. 50 주식에 대한 후행 중지가 45에 해당하는 경우 ATR은 두 개의 ATR을 포지션과 비교하여 5의 손실을 1000의 위험으로 나누어 200의 주식을 매입합니다. 손실 위험은 1000이지만 할당 위험은 200 주 x 50 주 또는 10,000입니다. 따라서 우리는 주식에 10을 할당하지만 위험은 1000입니다. AmiBroker 메일 링리스트에서 발췌되었습니다. 라운드 로트 크기 및 틱 크기입니다. 다양한 도구가 있습니다 다양한 거래 단위 또는 블록으로 거래 예를 들어 뮤추얼 펀드의 분수를 구입할 수 있지만 분수의 주식을 구입할 수없는 경우 가끔은 10 또는 100s 단위로 구매해야합니다 AmiBroker는 이제 전역에서 블록 크기를 지정할 수 있습니다 및 기호 별 수준을 정의 할 수 있습니다. 기호 - 정보 페이지에서 기호 별 라운드 로트 크기를 정의 할 수 있습니다. 그림 3 0 값은 기호에 특별한 라운드 로트 크기가 없으며 자동 분석의 기본 라운드 로트 크기 전역 설정 설정 p 나이 그림 1 기본 크기를 0으로 설정하면 주식 계약의 분수가 허용됩니다. 또한 예를 들어 RoundLotSize 예약 변수를 사용하여 AFL 공식에서 라운드 로트 크기를 직접 제어 할 수 있습니다. 이 설정은 주어진 기호 전역 및 기호 수준에서 정의 할 수 있습니다. 라운드 로트 크기와 마찬가지로 기호 - 정보 페이지에서 기호 별 눈금 크기를 정의 할 수 있습니다. 그림 3 0 값은 AmiBroker가 설정에서 정의 된 기본 눈금 크기를 사용하도록 지시합니다 자동 분석 창의 페이지 그림 1 기본 눈금 크기도 0으로 설정되면 최저 가격 이동이 없음을 의미합니다. 예를 들어 TickSize 예약 변수를 사용하여 AFL 공식에서도 눈금 크기를 설정 및 검색 할 수 있습니다. 크기 설정은 기본 제공 중지 및 / 또는 ApplyStop에서 종료 한 거래에만 영향을 미칩니다. Backtester는 가격 데이터가 틱 크기 요구 사항을 따르고 사용자가 제공 한 가격 배열을 변경하지 않는다고 가정합니다. 틱 크기를 지정하려면 m akes는 내장 된 스톱을 사용하는 경우에만 의미를 가지므로 계산 된 값 대신 허용 된 가격 수준에서 종료 점이 생성됩니다. 예를 들어 일본에서는 엔의 분수 부분을 가질 수 없으므로 전역 틱 크기를 1로 정의해야합니다. 정수 수준에서 출구 거래를 중지합니다. 계정 여백 설정은 전체 계정에 대한 여백 요구 사항을 정의합니다. 계정 여백의 기본값은 100입니다. 이는 거래에 들어가기 위해 100 개의 자금을 제공해야한다는 것을 의미하며, 이는 이전 버전에서 역 테스터가 어떻게 작동했는지 하지만 이제 마진 계좌를 시뮬레이트 할 수 있습니다. 마진을 살 때 브로커로부터 돈을 빌려 증권을 사기 만하면됩니다. 현행 규정으로는 구매하려는 주식의 구매 가격의 50 %를 매입하고 중개인이 것을 시뮬레이션하려면 계정 여백 필드에 50을 입력하십시오. 그림 1 참조 초기 자본이 10000으로 설정되면 구매력이 20000이되며 더 큰 포지션을 입력 할 수 있습니다 이 설정은 전체 계정에 대한 마진을 설정하고 선물 거래와 전혀 관련이 없습니다. 즉, 마진 계좌의 주식을 거래 할 수 있습니다. 역 입력 신호는 Backtester 설정으로 확인란을 종료합니다. 기본 설정 인 경우 - 백 테스터 이전 버전과 동일하게 작동하며 역방향으로 새로운 진입 신호가 발생하면 이미 POSITON을 닫습니다. 이 스위치가 꺼져있는 경우 - 역 신호가 발생하더라도 백 테스터는 현재 열려있는 거래를 유지하고 일반 출구 판매 또는 표지 신호가 생성 될 때까지 POSITON을 닫지 않습니다 이 스위치가 OFF 일 때 다른 단어들 backtester는 긴 거래 동안 Short 신호를 무시하고 짧은 거래 동안 Buy 신호를 무시합니다. Allow 동일한 바는 단일 바 거래 옵션을 출구로 설정합니다 ON 일 때 기본 설정 - 매우 동일한 바에서의 진입 및 종료는 이전 버전 에서처럼 OFF 인 경우 허용 - 다음 막대에서 종료가 발생할 수 있음이 경우에만 일반 신호에 적용됨, ApplyS에 별도 설정이 있음 상위 생성 종료점 OFF로 전환하면 당일 종료를 처리 할 수없는 MS 백 스터의 동작을 재현 할 수 있습니다. 즉시 중지합니다. 이 설정은 시장 개방 상태에서 거래를 시작하는 시스템 테스트 문제를 해결합니다 4 09 이전 버전 backtester는 당신이 시장에 가까운 거래를하고 있다고 가정했기 때문에 내장 된 정류장이 다음 날부터 활성화되었습니다. 문제는 사실 오픈 가격을 거래 진입 가격으로 정의했을 때 - 그 당시의 가격 변동이 정류장을 트리거하지 않은 경우였습니다. AFL 코드를 기반으로 한 해결 방법을 게시했지만 지금은 사용하지 않아도됩니다. 열어서 거래하는 경우 Activate는 즉시 멈 춥니 다. 1. 공개 가격과 동일하면 왜 buyprice 또는 shortprice 배열을 선택하지 않는지 묻습니다 불행히도 이건 성공하지 못했습니다. 이유는 간단히 말해서, 오픈 프라이스가 닫히고 거래가 시장 개방 또는 종가로 진입했는지 결코 알 수 없기 때문입니다. 그래서 우리는 정말로 별도의 s QuickAFL을 사용합니다. QuickAFL tm은 특정 조건 하에서 더 빠른 AFL 계산을 가능하게하는 기능입니다. 2003 년 이래 처음에는 표시기에서만 사용할 수 있었으며 버전 5 14에서는 자동 분석에서도 사용할 수있었습니다. 처음에는 더 빠른 차트 다시 그리기를 허용했습니다. 차트에서 볼 수있는 부분에 대해서만 AFL 수식 계산을 통해 비슷한 방식으로 자동 분석 창은 선택한 범위 매개 변수가 모든 인용보다 작 으면 AFL을 계산하기 위해 사용 가능한 인용의 하위 집합을 사용할 수 있습니다. QuickAFL 작동 방법 및 방법에 대한 자세한 설명 그것을 제어하는 ​​것은이 지식 기반 기사에서 제공됩니다. 이 옵션은 백 테스터뿐만 아니라 최적화, 탐색 및 스캔에서도 작동합니다. pandas를 사용하여 Python에서 이동 평균 크로스 오버를 다시 테스트합니다. BackTesting Environments Python With Pandas 우리는 객체 지향 연구 기반의 백 테스팅 환경을 만들고 무작위 예측 전략을 테스트했습니다. 우리는 실제 전략, 즉 AAPL의 이동 평균 크로스 오버에 대해 연구하기 위해 도입 한 기계류를 사용할 것입니다. 이동 평균 크로스 오버 전략. 이동 평균 크로스 오버 기술은 매우 잘 알려진 단순한 운동량 전략입니다. 양적 거래에 대한 Hello World의 예를 생각해보십시오. 여기에 설명 된 전략은 길기 만합니다. 특정 시계열에 대한 룩백 기간이 달라지는 두 개의 분리 된 간단한 이동 평균 필터가 생성됩니다. 자산을 구입하기위한 신호는보다 짧은 룩백 이동 평균이 더 긴 룩백 이동 평균보다 긴 평균이 연속 평균보다 짧으면 자산이 다시 팔립니다. 시계열이 강한 추세에 들어서면서 천천히 추세를 바꿀 때 전략이 잘 작동합니다. 이 예제에서는 Apple, Inc AAPL은 100 일의 짧은 룩백과 400 일의 장기 룩백으로 시계열로, 이는 zipline에서 제공하는 예제입니다 알고리즘 트레이딩 라이브러리 따라서 우리 자신의 백 테스터를 구현하고 싶다면 밸리데이션의 기본 수단으로 zipline의 결과와 일치하는지 확인해야합니다. 여기 백 테스터의 초기 객체 계층 구조가 어떻게되는지를 설명하는 이전 튜토리얼을 따르십시오. 그렇지 않으면 아래의 코드가 작동하지 않습니다. 이 특정 구현에서는 다음 라이브러리를 사용했습니다. 이전 튜토리얼의 구현이 필요합니다. 첫 번째 단계는 필요한 모듈과 객체를 가져 오는 것입니다. 이전 튜토리얼에서와 마찬가지로 하위 클래스로 Strategy 추상 기본 클래스는 AAPL의 이동 평균이 서로 교차 할 때 신호를 생성하는 방법에 대한 모든 세부 사항을 포함하는 MovingAverageCrossStrategy를 생성합니다. 객체에는 작동 할 shortwindow와 longwindow가 필요합니다. 기본값은 default로 설정되었습니다 100 일 및 400 일 각각의 zipline의 주요 예제에서 사용되는 동일한 매개 변수입니다. 이동 avera 막대에 팬다 롤링 기능을 사용하여 생성됩니다. AAPL 주식 마감 종가 개별 이동 평균이 구성되면 짧은 이동 평균이 0보다 큰 경우 열을 1로 설정하여 신호 시리즈를 생성합니다 long moving average 또는 0 0 그렇지 않으면이 위치 주문은 거래 신호를 나타 내기 위해 생성 될 수 있습니다. MarketOnClosePortfolio는 Portfolio에서 하위 클래스로 분류됩니다. 이전 자습서에서 설명한 구현과 거의 동일하지만 예외는 있습니다 이제 Open-to-Open 기반이 아닌 Close-to-Close 기반으로 수행됩니다. Portfolio 객체가 정의 된 방법에 대한 자세한 내용은 이전 자습서를 참조하십시오. 코드 완성도를 유지하고이 자습서를 자체적으로 유지합니다. MovingAverageCrossStrategy 및 MarketOnClosePortfolio 클래스가 정의되고 주요 기능이 호출되어 모든 기능을 하나로 묶습니다. 전략의 성능은 주식 곡선의 음모를 통해 조사 될 것입니다. 팬더 DataReader 객체는 1990 년 1 월 1 일부터 2002 년 1 월 1 일까지 AAPL 주식의 OHLCV 가격을 다운로드합니다. 이 시점에서 DataFrame 신호는 장기간 only signals 그 다음 포트폴리오는 100,000 USD 초기 자본베이스로 생성되고 수익률은 자본 곡선에서 계산됩니다. 마지막 단계는 matplotlib를 사용하여 AAPL 가격의 두 자리 그림을 이동 평균과 겹침 값으로 신호를 판매하고 동일한 매도 신호로 주식 곡선을 그립니다. 플로팅 코드는 zipline 구현 예제에서 가져오고 수정됩니다. 코드의 그래픽 출력은 다음과 같습니다. IPython 붙여 넣기 명령을 사용하여이를 직접 Ubuntu에서 IPython 콘솔을 사용하여 그래픽 출력이보기에 남아 있도록합니다. 핑크색 증가는 주식 구매를 나타내며 검은 색 하락은 그것을 다시 판매하는 것을 나타냅니다. AAPL Moving 평균 C rossover Performance. 1990-01-01에서 2002-01-01까지. 전략은 5 번의 왕복 거래를 통해이 기간 동안 돈을 잃어 버리는 것으로 볼 수 있습니다. AAPL의이 기간 동안의 AAPL 행동을 보면 놀랍지 않습니다. 1998 년부터 큰 폭으로 상승세를 보임. 이동 평균 신호의 회귀 기간이 다소 길어서 최종 거래의 수익에 영향을 미쳤지 만 그렇지 않은 경우 전략을 수익성있게 만들 수 있습니다. 이후 기사에서는 성능을 분석하는 정교한 방법, 개별 이동 평균 신호의 전환 확인 기간을 최적화하는 방법을 설명합니다. 정량 거래 시작하기.

No comments:

Post a Comment