발명가들의 양적 거래에 대한 소개 - 기본부터 실제 전쟁까지

저자:선함, 2019-06-25 15:48:58, 업데이트: 2023-10-31 21:01:08

가격의 상승과 하락은 지지선을 깨는 것을 의미합니다. 우리는 상위 힘이 강화되고 있다고 생각합니다. 하락 추세가 형성되어 판매 시그널이 생성됩니다.img그림 4-20

만약 매입이 끝난 후, 가격이 다시 브린 라인 중간에 떨어지면, 우리는 다방면 힘이 약해지고 있거나, 상면 힘이 강화되고 있다고 생각하고, 평형 신호를 팔고, 만약 매출이 끝난 후, 가격이 다시 브린 라인 중간에 떨어지면, 우리는 상면 힘이 약해지고 있거나, 다방면 힘이 강화되고 있다고 생각하고, 상면 신호를 사서 평형 신호를 생성한다.

구매 및 판매 조건

다중 투입:如果无持仓,并且收盘价大于上轨,并且时间非14:45 빈장 오픈:如果无持仓,并且收盘价小于下轨,并且时间非14:45 다중 평면:如果持多单,并且收盘价小于中轨,或者时间是14:45 공허한 평면:如果持空单,并且收盘价大于中轨,或者时间是14:45

전략 코드 구현

전략을 구현하기 위해서는 먼저 우리가 어떤 데이터를 필요로 하는지, 어떤 API를 통해 얻을 것인지, 거래의 논리를 계산할 수 있는지, 그리고 어떤 방식으로 거래를 할 수 있는지 고려해야 합니다.

첫 번째 단계: CTA 전략 프레임워크를 사용하십시오.

CTA 전략 프레임워크 (CTA Strategy Framework) 는 발명가들이 정식으로 도입한 표준 프레임워크의 일종으로, 이 프레임워크를 사용하면 정량화 거래 전략을 개발하는 사소한 문제를 고려하지 않고 직접 프로그래밍 거래 로직에 집중할 수 있다. 예를 들어, 이 프레임워크를 사용하지 않으면, 주문을 할 때 월 전환, 주문 구매 판매 가격, 주문이 거래되지 않을 때 철회 또는 추적 등을 고려해야 한다.img그림 4-21

위의 그림은 발명자의 계량화 도구를 사용하는 CTA 전략 프레임워크이다. 이것은 모든 거래 논리 코드가 3줄에서 시작하는 고정된 코드 형식이다. 사용 중에서는 품종 코드를 수정해야 하는 것 (?? 黄色) 을 제외하고는 다른 곳에서는 변경이 필요하지 않다.

참고로 위의 그림의 품종 코드는?? rb000/rb888?? 이다. 이는 신호 데이터가?? rb000?? 를 사용하고 거래 데이터가?? rb888?? 을 사용하고 자동으로 이동한다는 것을 의미합니다. 물론 특정 품종 코드를 지정할 수도 있습니다. 예를 들어 품종 코드?? rb1910?? 를 사용하면 신호 데이터와 거래 데이터가 모두?? rb1910?? 을 사용합니다.

FMZ는 자바스크립트의 상품 선물 거래 클래스 라이브러리를 내장하고 있으며, 전략 편집 인터페이스에서 직접 클릭 참조를 코드에서 사용할 수 있습니다:img

두 번째 단계: 다양한 데이터를 확보합니다.

신중하게 생각해보면, 어떤 데이터가 필요한가? 우리의 전략 거래 논리에서 발견한 것은: 먼저 현재의 보유 상태를 확보하고, 그 다음 폐쇄 가격과 브린 띠 지표의 중추 궤도와의 상호 관계를 비교하여 시장이 닫을 것인지 판단하는 것입니다.

K 라인 데이터

첫 번째 방법은 K선 배열과 상근 K선 클로저 가격을 얻는 것입니다. K선 배열이 있기 때문에 브린 띠 지표를 계산 할 수 있습니다.img그림 4-22

위 그림과 같이: 네 번째 줄: K선 배열을 얻으십시오. 이것은 고정된 형식입니다. 5줄: K줄의 길이를 필터링합니다. 왜냐하면 우리가 브린밴드 지표를 계산하는 데 사용하는 파라그램이 20이기 때문에, K줄이 20개 미만일 때 브린밴드 지표를 계산할 수 없습니다. 그래서 여기서 K줄의 길이를 필터링합니다. 6줄: 얻어진 K선 배열에서 먼저 루트 K선의 객체를 얻으며 그 객체로부터 클로저 가격을 얻는다. r[r.length - 2]라는 배열의 길이 빼기 2라는 배열의 역수 두 번째 요소를 얻는다. K선 배열의 모든 요소는 하나의 객체이며, 객체는 오픈 가격, 최고 가격, 최저 가격, 클로저 가격, 거래 완료, 시간을 포함하고 있으며, 클로저 가격을 얻으려면 그 뒤에 직접 을 더할 수 있다. 과 속성 이름은 ((r[r.length - 2].Close) 이다.

K 라인 시간 데이터를 가져오기

우리는 일내 전략이기 때문에 종식 전에 포지션을 평정해야하므로 현재 K 라인이 종식 직전인지 판단하기 위해, 만약 종식 직전인 K 라인이라면 포지션을 평정하고, 만약 종식 직전인 K 라인이 아니라면 포지션을 열 수 있습니다.img그림 4-23

위 그림과 같이: 8줄: 루트 K줄의 시간대 속성을 가져와서 시간 객체를 생성합니다. 9줄: 시간 객체에 따라 시간 및 분 수를 계산하고, 루트 K 라인의 시간이 14:45인지 판단한다.

보관 자료를 얻습니다

포지션 정보는 거래 전략을 정량화하는 중요한 조건이다. 거래 조건이 성립할 때 포지션 상태와 포지션 수에 의해 주문을 할 수 있는지 판단해야 한다. 예를 들어: 구매 오픈 포지션 거래 조건이 성립할 때 포지션이 있다면 반복적으로 주문할 필요가 없다. 포지션이 없다면 주문할 수 있다.img그림 4-24 위 그림과 같이: 11줄: 현재 보유 상태를 얻는다. 다수의 주문이 있다면 값은 1; 빈 주문이 있다면 값은 1; 보유가 없다면 값은 0이다.

브린밴드 데이터

그 다음에는 브린밴드 지표의 궤도, 중간 궤도, 아래 궤도 값을 계산해야 한다. 먼저 브린밴드 행렬을 얻어야 하며, 행렬에서 상중 하 궤도 값을 얻어야 한다. 발명자의 계량화 도구에서 브린밴드 행렬을 얻는 것은 간단하다. 브린밴드 API를 직접 호출하면 된다.

2차원 행렬은 사실 잘 이해되는데, 그것은 행렬의 행렬이고, 그러면 얻는 순서는 다음과 같습니다: 먼저 행렬에서 지정된 행렬을 얻으며, 그 다음 지정된 행렬에서 지정된 요소를 얻습니다.img그림 4-25

아래 그림과 같이, 13-19 행은 브린 벨트 궤도, 중궤도, 하도 궤도의 값을 코드에서 얻는 것이다. 그 중 13 행은 직접 발명자의 계량화 도구를 사용하는 API를 사용하여 브린 벨트 행을 직접 얻는 것이다. 14-16 행은 각각 2차원 행에서 상궤도, 중궤도, 하도 궤도 행을 얻는 것이다. 17-19 행은 각각 상궤도, 중궤도, 하도 궤도 행에서 상궤도, 중궤도, 하도 궤도 행을 얻는 것이다.img그림 4-26

세 번째 단계: 거래를 주문하십시오.

위의 자료를 가지고 거래 논리와 하위 주문 거래의 코드를 작성할 수 있다. 형식 또한 매우 간단하며, 가장 많이 사용되는 것은?? if 문장?? 이다.img그림 4-27

위의 그림에서, 21줄부터 24줄까지는 거래 논리와 다음 주문 거래의 코드이다. 위에서 아래로 각각: 평면, 평면, 겹면, 열면이다.

예를 들어, 이 문장에는 한 줄의 코드만 실행하면 우두머리 우두머리 우두머리 {} 우두머리가 생략될 수 있는 우두머리 if 문장이 있습니다. 이 문장은 다음과 같이 번역됩니다. 현재 보유가 0이고, 종료 가격이 열차보다 크며, K 라인의 시간은 14:45이 아닌 경우 우두머리 return 1입니다.

주의를 기울인다면, 이 몇 줄에 1과 -1이 있는 것을 발견할 수 있을 것이다. 이것은 고정된 형식이다. 즉, 구매할 경우 1을 쓰고, 판매할 경우 1을 쓰고, 판매할 경우 1을 쓰고.

전체 전략 코드

이제 완전한 전략 코드가 작성되었습니다. 거래 프레임워크, 거래 데이터, 거래 논리, 구매 및 판매 주문 등을 분리하여 작성하는 것이 간단하지 않습니까?img그림 4-28

주의해야 할 두 가지 장소가 있습니다: 최대한 (하지만 필수적이지 않습니다): 루트 K 라인 조건이 성립하고 하위 루트 K 라인 조건이 성립되면 전략 논리를 작성하거나 루트 K 라인 조건이 성립되면 상위 루트 K 라인 조건이 성립하면 이러한 재검토 결과는 실제 거래의 결과와 거의 다르지 않습니다. 그렇지 않은 경우에도 작성할 수 있지만 전략 논리가 올바르는지 주의해야합니다. 일반적으로, 평형의 논리를 오픈 거래의 논리에 앞서 작성하여 전략 논리가 당신의 예상에 맞게 되도록 노력하십시오. 예를 들어, 전략 논리가 반대의 손을 잡을 때, 반대 손의 규칙은, 먼저 평형, 다시 새로운 거래를 시작하십시오. 새로운 거래를 열지 않고, 다시 평형입니다. 우리가 직접 평형 논리를 오픈 거래의 논리에 작성하면 이러한 문제가 발생하지 않습니다.

요약

위에서 우리는 전략 개요, 브린그밴드 지표 계산 방법, 전략 논리, 매매 조건, 전략 코드 구현 등이 포함된 완전한 일내 정량화 거래 전략을 개발하는 모든 단계를 배웠습니다. 이 전략 사례를 통해 발명자의 정량화 도구의 프로그래밍 방법을 알고있을뿐만 아니라 이 템플릿에 따라 다른 전략을 개조 할 수 있습니다.

양적 거래 전략은 주관적인 거래 경험이나 시스템의 요약일 뿐입니다. 만약 우리가 주관적인 거래에서 사용된 경험이나 시스템을 직접 작성하기 전에 개별적으로 작성하고, 그 다음에 하나씩 코드로 번역한다면, 전략을 작성하는 것이 훨씬 쉬워진다는 것을 알게 될 것입니다.

다음 섹션 예고

양적 거래 전략 개발에서 하나의 프로그래밍 언어만 선택할 수 있다면, 의심의 여지 없이, 반드시 파이썬을 선택해야 합니다. 데이터 획득에서 전략 리테크까지 거래까지, 파이썬은 전체 비즈니스 체인을 덮고 있습니다. 금융 양적 투자 분야에서 중요한 위치를 차지하고 있습니다. 다음 섹션에서는 파이썬 언어를 배우게됩니다.

수업 후 숙제

1, 이 부분의 지식을 사용하여 양평한 전략을 실행하기 위해 시도하십시오. 2, 발명자의 계량화 도구의 자바스크립트 언어를 사용하여 KDJ 지표 알고리즘을 구현하려고 시도한다.

4.3 파이썬 언어에 대한 빠른 소개

요약

양적 거래 전략 개발에서 하나의 프로그래밍 언어만 선택할 수 있다면, 의심의 여지 없이, 반드시 파이썬을 선택해야 합니다. 데이터 획득에서 전략 리테크까지 거래까지 파이썬은 전체 비즈니스 체인을 커버하고 있습니다. 금융 양적 투자 분야에서 중요한 위치를 차지하고 있습니다. 이 섹션에서는 파이썬 언어를 배우게됩니다.

왜 이렇게 많은 프로그래밍 언어를 배워야 할까요?

이전 수업을 돌아보면, 우리가 함께 배운 것은: 마이 언어, 시각화 언어, 자바스크립트 언어, 그리고 이 섹션에서 배울 Python 언어입니다. 어떤 파트너가 의문을 가질 수 있습니다.

사실 모든 프로그래밍 언어는 고유한 언어 특성을 가지고 있으며, 이 언어의 장단점이 없습니다. 더 많은 것은 전략이 어떤 프로그래밍 언어에 더 적합한지, 그리고 이 프로그래밍 언어가 자신에게 적합하는지 보는 것입니다. 그래서 말, 단지 직접 시도하면 알 수 있습니다. 이것은 우리가 너무 많은 부분을 펼쳐서 프로그래밍 언어에 대해 이야기하는 이유입니다.

우리는 또한 모든 사람들에게 양성의 문을 열고 모든 프로그래밍 언어에 대한 지식을 보급하기 위해 노력하고 있습니다. 양성은 우리가 상상하는 것처럼 높고 멀리 떨어져 있지 않습니다.

왜 파이썬을 선택합니까?

양적 거래의 과정은 데이터 획득, 분석, 처리 등에 그치지 않고, 데이터 분석의 측면에서 다른 언어는 파이썬과 같은 연산성과 성능을 유지할 수 없다. 특히 시간 계열 분석 데이터 (K 라인, 시간 계열 데이터) 처리에서 파이썬은 더 간단하고 편리한 장점을 가지고 있다. 또한, 다른 프로그래밍 언어에 비해 파이썬은 더 간결하고 쉽게 학습할 수 있으며, 읽는 좋은 파이썬 프로그램은 영어 읽기와 같은 느낌을 준다.

파이썬을 선택하는 5가지 이유

1. 양적 사용의 폭이 넓다:

미국의 쿼토피안과 국내의 발명가들은 모두 파이썬을 사용해서 양적화할 수 있습니다.

2. 쉽게 배울 수 있습니다.

파이썬의 디자인 철학은 사용자 중심이며, 디버깅이 쉬운 해석 언어이다.

3. 무료 오픈 소스:

사용비용이 없고, 오픈소스 코드가 공유되고, 학습과 사용 효율성을 강화합니다.

4. 풍부한 도서관:

데이터 처리, 데이터 연산, 시각화, 통계 분석, 기술 분석, 기계 학습...

5. 애플리케이션 인터페이스:

각 플랫폼의 데이터는 저장 통화와 실시간 거래 링크를 연결하는 인터페이스를 얻습니다.

전체 전략

이 부분의 핵심 지식을 빠르게 이해하는데 도움을 주기 위해, 개발자 양자 자바스크립트 언어에 대한 빠른 소개를 하기 전에, 이 부분의 명사 개념에 대한 초기 이해가 필요합니다. 우리는 가장 간단한 쌍평선 전략을 사용하여 예로 들겠습니다:

다중 투입: 현재 포지션이 없으면, 5주기 평균선이 20주기 평균선보다 크다.빈장 오픈: 현재 포지션이 없으면, 5주기 평균선은 20주기 평균선보다 작다.다중 평면: 만약 현재는 여러 개의 주문을 보유하고 있고 5주기 평균선이 20주기 평균선보다 작다면.공허한 평면: 만약 현재 공백을 가지고 있고, 5주기 평균선이 20주기 평균선보다 크다면.

이 문서는 파이썬 언어로 작성된 경우 다음과 같습니다.img그림 4-29

위 그림의 코드는 파이썬 언어로 작성된 완전한 양적 거래 전략이다. 실제 실행이 가능하며 자동으로 거래를 주문한다. 코드의 양에서 볼 때, 파이썬 언어는 자바스크립트 언어보다 훨씬 더 많기 때문에 우리는 CTA 거래 프레임워크를 사용하지 않는다.

그러나 전체 전략의 설계 과정은 거의 동일합니다: 시장의 종류를 설정하고, K 라인 데이터를 얻고, 보유 정보를 얻고, 거래 논리를 계산하고, 주문을 받고, 판매합니다. 즉, 프로그래밍 문법은 다르지만, 작성된 전략 논리는 동일합니다.

버전 선택

파이썬은 두 가지 버전이 있습니다. 파이썬2과 파이썬3입니다. 파이썬은 두 개의 튜브 총과 같지만 한 번에 한 개의 튜브로 총알을 발사 할 수 있다고 한 구절이있었습니다. 그러나 어느 것이 더 정확할지 결코 알 수 없었습니다.

아이디

아이디는 변수의 이름입니다. 아래 그림의 test,test,test10,test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10와 test10는 test10와 test10입니다.demo와 같이. 파이썬의 모든 것 (변수, 함수 이름, 연산자) 는 대소문자로 구분됩니다. 즉, 변수 이름 테스트와 변수 이름 테스트는 두 개의 다른 변수입니다. 식별자 (변수, 함수, 속성, 함수 매개 변수 이름) 의 첫 번째 문자는 문자, 하부선으로 있어야합니다.), 다음 문자는 숫자가 될 수 있습니다.img그림 4-30

참고자료

해설은 한 줄의 코드에 대한 번역 또는 해설이며, 그 규칙은 매우 간단하며, 해설에는 단선 해설과 블록 수준의 해설이 포함됩니다. 단선 해설은 우수호 (#) 로 시작되며, 블록 해설은 세 개의 단문호 () 또는 세 개의 이중호 (""") 로 시작되며, 세 개의 단문호 () 또는 세 개의 이중호 (""") 로 끝납니다. 아래와 같이:img그림 4-31

경로와 축소

파이썬의 가장 특징적인 특징은 대괄호 {}를 사용하지 않고 코드 블록을 표시하기 위해 축소하는 것을 사용하는 것입니다. 축소된 공간의 수는 변합니다. 그러나 동일한 코드 블록의 문장은 동일한 축소된 공간을 포함해야합니다. 아래 그림과 같이: 이 경우 프로그램은 오류를 보냅니다. 만약 조건이 정해진 경우에도 true () 는 출력되지 않습니다. 왜냐하면 파이썬은 코드 실행 전에 코드 문법의 정확성을 자동으로 검사하기 때문에 코드 형식이 잘못되면 프로그램이 실행되지 않기 때문입니다. 이유는 5 줄 코드에는 통일 코드의 축소 형식이 없기 때문입니다.img그림 4-32

변수

변수는 모든 유형의 데이터를 저장할 수 있으며, 직접 변수의 이름을 쓰는 것은 변수를 만드는 것이지만, 변수를 만들 때 변수의 값을 동시에 설정해야하지 않으면 프로그램이 오류를 나타냅니다. =========================================================================================================================================================================================================================img그림 4-33

데이터

파이썬에는 6가지의 데이터 타입이 있는데, 그 중 3가지가 변함없는 데이터이고, 3가지가 변함없는 데이터이다. 이름 그대로 변함없는 데이터는 일단 생성되면 그 값이 변경될 수 없으며, 메모리에 있는 주소가 독특하다. 변함된 데이터는 메모리에 있는 주소의 참조이며, 그 값이 변경되면 그 메모리의 주소가 변하지 않는다. 변함없는 데이터 (제3자):Number (제3자) ;String (제3자) ;Tuple (제3자) ; 변수 데이터 ((3개):List ((목록)、Dictionary (사전)、Set (집합) 』.img그림 4-34

숫자

파이썬의 숫자 타입은 int (전체형), float (동점형), bool (불형), complex (복합형) 를 지원한다. 내장된 type (동종형) 함수는 변수가 언급하는 객체 유형을 쿼리하는 데 사용될 수 있다. 아래 그림과 같이:img그림 4-35

연산자

대부분의 언어와 마찬가지로, 파이썬의 수학 연산은 매우 직관적입니다. 수학적 연산자, 비교 연산자, 논리적 연산자 모두 우리가 학교에서 알고 있는 것과 같습니다. 여기서 수학적 연산자는 덧셈과?? 셈의 수학적 연산입니다. 비교 연산자는 두 값의 크기를 비교할 수 있습니다.img그림 4-36

참고로:?? and?? 는 논리와 함께,?? 를 대표하고?? 의 의미이다.?? or?? 는 논리 또는,?? 또는?? 의 의미이다.??!?? 는 논리 아닌,?? 또는?? 의 의미이다. and은 모든 조건이 true에 도달했을 때, 최종 조건이 true에 도달할 때입니다. or은 모든 조건에서, 어떤 조건이라도 true이 있는 한, 최종 조건은 true이다.

우선순위

만약 100* ((10-1) /(10+5) 표현식이 있다면, 프로그램이 먼저 계산하는 단계가 어디인가? 중학교 수학은 우리에게 말한다: (1) 같은 수준의 연산이라면 일반적으로 왼쪽에서 오른쪽으로 치며 계산한다. 2. 더하기, 빼기, 곱하기 두 가지 방법이 있으면 먼저 곱하고, 더하기, 빼기한다. 3. 괄호가 있다면, 괄호 안에 있는 것을 먼저 계산한다. 4. 연산법칙에 부합하면 연산법칙을 사용하여 축소할 수 있다.img그림 4-37

불 값

풀 타입은 참과 거짓을 나타냅니다. 일반적으로 조건 판단과 루킹 문장에서 사용됩니다. 파이썬은 두 가지 상수를 정의합니다. True과 Flase은 참과 거짓을 나타냅니다. 실제로 모든 객체는 풀 타입으로 변환 될 수 있으며 직접 조건 판단에 사용될 수 있습니다.img그림 4-38

문자열

문자열은 문자이며, 품종 코드를 설정할 때 문자열을 자주 사용한다. 예를 들어?? if1905??;; 파이썬의 문자열은 단호 또는 이중호 "로 묶어진다. 더하기 +는 문자열의 연결자이다. 인덱스 값에 따라 문자열의 어떤 문자를 얻을 수 있다.img그림 4-39

목록

리스트는 파이썬에서 가장 자주 사용되는 데이터 타입입니다. 리스트를 컨테이너로 상상할 수 있습니다. 하지만 컨테이너의 요소는 왼쪽에서 오른쪽으로 순서대로 배치되어 있으며, 첫 번째 요소는 0이고, 두 번째 요소는 1이고, 그 밖의 것들이 있습니다. 또한 파이썬의 리스트는 다음과 같이 모든 데이터 타입을 저장할 수 있습니다.img그림 4-40

함수

파이썬의 함수와 우리 중학교의 함수는 본질적으로 다르지 않습니다.img그림 44-41

if 문장

if 문장은 우리 생활에서 자주 나타납니다. 예를 들어: 오늘 비가 오면 내세운다. 즉, 조건이 True로 지정된 경우에만 이 문장이 코드를 실행합니다. 참고, 코드의 축소 형식에 주의하십시오. 그렇지 않으면 Python 오류를 생성합니다! 아래 그림에서 나타납니다:img그림 44-42

if...else 문장

if...else 문장은 일반적으로 사용되는 문장이기도 합니다. 예를 들어: 오늘 비가 오면 내기; 그렇지 않으면 내기 않습니다.img그림 44-43

elif 문장

파이썬은 스위치 문장을 지원하지 않기 때문에, 여러 조건의 판단을 파이썬은 elif 문장으로만 구현할 수 있다. 예를 들어: 햇살이라면 더 많이 볼 수 있다; 그렇지 않으면 음경이라면 빈; 그렇지 않으면 관찰할 수 있다.img그림 44-44

for 순환

때때로 우리는 최근 몇 일 동안의 K선 데이터를 얻어야 합니다. K선 배열에서 K선 데이터의 위치에 따라 순차적으로 얻어야 합니다.img그림 4-45

while 순환

우리는 시장이 끊임없이 변화하고 있다는 것을 알고 있습니다. 만약 여러분이 최신의 K선 배열을 얻고 싶다면 계속해서 같은 코드를 반복해서 실행해야 합니다. 그러면 whilex 루프를 사용해서 조건이 true인 한 루프는 항상 최신의 K선 배열을 얻을 수 있습니다.img그림 44-46

break 문장과 continue 문장

루킹은 전제 조건이 있다. 전제 조건이??true일 때만 루킹이 반복적으로 어떤 일을 시작하여 전제 조건이??false일 때까지 루킹이 종료된다. 그러나 break 문장은 루킹 실행 과정에서 즉시 루킹을 건너갈 수 있다. continue 문장은 한 번 루킹을 중단하고 다음 루킹을 계속할 수 있다. 아래와 같이:img그림 44-47

return 문장

return 문장은 함수의 실행을 종료하고 함수의 값을 반환합니다. return 문장은 함수체 내에서만 나타납니다.img그림 44-48

전략 구조

전략구조는 전략의 고정된 형식으로 이해할 수 있으며, 발명가들의 계량화 도구는 컨설팅 모형을 사용한다.

그 중 4호선~7호선은 전체 프로그램의 주요 입력 함수이다. 즉, 컴퓨터는 4호선부터 코드를 실행하고, 5호선을 직접 실행하면 무한한 루프에 들어가게 된다. 그리고 무한한 루프 안에서 계속 전략 논리 함수 (onTick) 와 휴식 함수 (Sleep) 를 실행한다.img그림 44-49

요약

이것이 파이썬 언어에 대한 빠른 소개입니다. 간단한 기본 지식이지만 간단한 양적 거래 전략을 작성하는 데에는 문제가 없습니다. 더 복잡한 전략을 작성해야하는 경우 발명자의 양적 도구인 파이썬 언어 API 문서를 참조하십시오.

다음 섹션 예고

기술분석의 트렌드 클래스 전략에서, 평균선과 통로 돌파는 의심할 여지 없이 두 가지 큰 방이다. 비록 목적이 가격의 흐름을 잡는 것이지만, 두 종류의 전략의 거래 철학과 위험 특성은 매우 다르다. 이 섹션의 파이썬 언어의 소개를 배운 후, 다음 섹션에서는 우리가 손을 들고 통로를 돌파하는 양적 거래 전략을 작성 할 것입니다.

수업 후 숙제

1, 발명자의 계량화 도구에 있는 파이썬 언어를 사용하여 역사 K 라인 데이터를 얻으려 한다. 2, 이 섹션의 시작에 있는 전략 코드를 작성하고 설명서를 작성해보십시오.

4.4 파이썬 언어를 사용하여 전략 거래를 수행하는 방법

요약

지난 기사에서 우리는 파이썬 언어의 소개, 기본 문법, 전략 프레임워크 등을 배웠습니다. 내용은 지루하지만 거래 전략을 구현하는 데 필요한 필수 기술이며 배워야합니다. 그러면 이 기사에서는 열을 타고 파이썬 기초 지식을 계속하여 간단한 전략에서 시작하여 학습을 통해 실행 가능한 정량 거래 전략을 구현하는 데 단계적으로 도움이 될 것입니다.

전략 개요

수많은 거래 전략들 중 가장 고전적인 돌파구 전략 중 하나라고 할 수 있는 도치안 통로 전략은 1970년대에 이미 유명해졌으며, 외국 소유의 회사들이 주류적인 절차적 거래 전략에 대한 특화된 시뮬레이션 테스트와 연구를 수행했을 때 그 결과 도치안 통로 전략이 모든 전략 테스트 중에서 가장 성공적이었다는 것을 보여준다.

나중에 미국에서 거래 역사상 가장 유명한 해파리 거래자 훈련이 일어 났고, 엄청난 성공을 거두었습니다. 당시 해파리의 거래 방법은 기밀이었지만, 해파리 거래법이 공개된 지 10여 년이 지나서야 해파리들이 사용하는 것이 개선된 도치안 통로 전략이라는 것이 밝혀졌습니다.

파격형 거래 전략은 유동성이 비교적 높은 거래 종류에 적합하며, 가장 일반적인 파격형 거래 방법은 가격과 지지 및 저항의 상대적 위치 관계를 활용하여 특정 거래의 매각 지점을 결정하는 것입니다. 이 섹션의 도치안 통로 전략은 이 원칙에 기반합니다.

치안 통로 전략 규칙

돈치안 통로는 트렌드형 지표로, 그 외관과 신호는 브린밴드 지표와 약간 비슷하다. 그러나 돈치안의 가격 통로는 일정 기간 동안의 최고 가격과 최저 가격에 따라 구성된다. 예를 들어, 최근 50개의 K선 최고 가격의 최대 값을 계산할 때, 궤도를 형성한다. 최근 50개의 K선 최저 가격의 최저 값을 계산할 때, 궤도를 형성한다. 이 지표는 3개의 다른 색상의 곡선으로 구성되어 있으며, 20주기의 최대 가격과 최저 가격으로 기본으로 시장 가격의 변동성을 나타냅니다. 그 통로가 좁으면 시장 변동이 작고 그 통로가 넓으면 시장 변동이 크다는 것을 나타냅니다.

가격이 상승하고 상승할 때 시그널을 구매하고, 상승하고 하락할 때 시그널을 판매한다. 상승과 하락이 최고와 최저로 계산되기 때문에 일반적으로 가격이 상승하고 하락하는 통로선을 동시에 상승하고 하락하는 경우는 거의 없다. 대부분의 경우 가격은 상승과 하락의 일방적인 움직임, 또는 상승과 하락의 움직임에 따라 움직인다.

치안 통로 계산 방법

발명자의 정량화 도구에서 도치안 통로의 계산 방법은 매우 간단하며, 지정된 주기의 최고 가격이나 최저 가격을 직접 사용해서 얻을 수 있습니다. 아래 그림에서 나타낸 바와 같이: 5줄은 50주기의 최고 가격의 최대 값, 6줄은 50주기의 최저 가격의 최소값을 얻을 수 있습니다.img그림 4-50

전략적 논리

도치안 채널의 사용 방법은 여러 가지가 있으며, 단독으로 사용하거나 다른 지표와 함께 사용할 수 있습니다. 이 섹션에서는 가장 간단한 사용 방법을 사용하겠습니다. 즉, 가격이 아래에서 위로 경로를 돌파할 때, 즉 상위 압력선을 돌파할 때, 우리는 다자 세력이 강해지고 있다고 생각합니다.img그림 4-51

만약 오픈 포지션을 구매한 후 가격이 다시 도안 통로 중간에 떨어지면, 우리는 다자력이 약해지고 있거나, 상공력이 강화되고 있다고 생각하고, 평형 신호를 판매하고, 만약 오픈 포지션을 판매하고, 가격이 다시 도안 통로 중간에 떨어지면, 우리는 상공력이 약해지고 있거나, 다자력이 강화되고 있다고 생각하고, 상공력이 약해지고, 상공력 신호를 구매하고, 평형 신호를 생성한다.

구매 및 판매 조건 다중 투입: 만약 보유가 없다면, 그리고 마감값이 상위보다 높다면빈장 오픈: 만약 보유가 없다면, 그리고 거래가 하락하면다중 평면: 더 많은 주문이 있고 매출 가격이 중간에 낮은 경우공허한 평면: 빈 명세서, 그리고 중선보다 더 높은 가격으로 종료하면

전략 코드 구현

전략을 구현하는 첫 번째 단계는 데이터를 얻는 것입니다. 데이터가 거래 전략을 구성하는 필수 요소이기 때문에, 어떤 데이터가 필요한지 상상해보십시오. 그리고 어떻게 데이터를 얻을 수 있습니까? 그 다음이 데이터를 계산하고 거래 논리를 설계하십시오. 마지막으로 거래 논리를 사용하여 거래를 구매하고 판매하십시오. 구체적인 단계는 다음과 같습니다:

첫 번째 단계: 트랜잭션 클래스 라이브러리를 사용

트레이드 클래스 라이브러리를 기능 모듈로 생각할 수 있고, 트레이드 클래스 라이브러리를 사용하는 것의 장점은 당신이 전략 논리를 작성하는 데 힘을 쏟을 수 있다는 것입니다. 예를 들어, 트레이드 클래스를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 클래스 라이브러리에서 아래와 같은 API를 직접 사용할 수 있습니다. 그러나 트레이드 클래스를 사용하지 않을 경우, 트레이드 클래스를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 클래스 라이브러리를 사용할 때, 트레이드 라이브러리를 사용할 때, 트레이드 라이브러스를 사용할 때, 트레이드 라이브러스를 사용할 때, 트레이드 라이브러스를 사용할 때, 트레이드 라이브러스를 사용할 때, 트레이드 라이브러스를 사용할 때, 트레이드 라이브러스를 제거img그림 4-52

위 그림은 발명자의 계량화 도구를 사용하는 CTA 전략 프레임워크이다. 이것은 모든 거래 논리 코드가 4 행부터 작성되는 고정된 코드 형식이다. 다른 곳에서는 아무런 수정도 필요하지 않다.

자바스크립트의 템플릿 클래스 라이브러리가 내장되어 있고, 파이썬은 이 템플릿을 복사해서 저장해야 합니다:https://www.fmz.com/strategy/24288▲ 다음 정책 편집 페이지에서 참조를 선택하십시오. 또한, 물론, 템플릿 라이브러리를 사용하지 않고도 정책을 완료할 수 있습니다.

img

두 번째 단계: 다양한 데이터를 확보합니다.

신중하게 생각해보면, 어떤 데이터가 필요한가? 우리의 전략 거래 논리에서 발견한 것은: 먼저 현재의 보유 상태를 확보하고, 그 다음 폐쇄 가격과 브린 띠 지표의 중추 궤도와의 상호 관계를 비교하여 시장이 닫을 것인지 판단하는 것입니다.

K 라인 데이터

첫 번째는 K선 배열과 현재 K선 종료 가격을 얻는 것입니다. K선 배열이 있기 때문에 N주기의 최고 가격이나 최저 가격을 얻는 API를 호출할 수 있습니다.img그림 4-53 위 그림과 같이: 네 번째 줄: K선 배열을 얻으십시오. 이것은 고정된 형식입니다. 5줄: K줄의 길이를 필터링합니다. 왜냐하면 우리는 N주기의 최고값이나 최저값을 계산하기 때문에, 사용된 매개 변수는 50이고, K줄이 50개 미만일 때 계산할 수 없습니다. 그래서 여기 K줄의 길이를 필터링합니다. 6줄: 우리는 코드 records [len ((records - 1) ]를 사용하여 K선 배열의 마지막 데이터, 즉 최신 K선 데이터에 도달합니다. 이 데이터는 객체입니다. 이 객체에는 열기 가격, 최고 가격, 최저 가격, 닫기 가격, 거래량, 시간 등의 데이터가 포함되어 있습니다.

보관 자료를 얻습니다

보유 정보는 거래 조건을 설정할 때 보유 상태와 보유 수를 통해 주문을 할 것인지 판단하는 중요한 조건이다. 예를 들어: 구매 오픈 포스 거래 조건을 설정할 때, 보유가 있다면 반복적으로 주문을 할 필요가 없습니다. 보유가 없다면 주문을 할 수 있습니다. 이번에는 우리는 직접 보유 정보를 함수로 포장합니다. 이 함수를 호출하면 사용할 수 있습니다:img그림 4-54

위 그림과 같이: 이 함수는 채무 정보를 얻는 함수입니다. 채무가 빈다면 0을 반환합니다. 채무가 빈다면 1을 반환합니다. 채무가 빈다면 -1을 반환합니다. 위의 코드를 참조하십시오: 2줄: 함수 mp를 생성합니다. 이 함수는 변수가 없습니다. 세 번째 줄: 고정된 형식인 저장 배열을 가져옵니다. 네 번째 줄: 저장 행렬의 길이를 결정합니다. 만약 그 길이가 같다면, 그것은 반드시 빈 행렬이므로 0을 반환합니다. 6줄: for 루킹을 사용하여 이 배열을 탐색하기 시작하면 다음 논리는 간단합니다. 더 많은 문자를 유지하면 1을 반환합니다. 빈 문자를 유지하면 -1을 반환합니다. 18줄: 방금 작성한 저장 정보를 얻을 수 있는 함수 mp를 호출한다.

최근 50개의 K 라인의 최고 가격과 최저 가격을 얻으십시오.

발명자의 정량화 도구에서, TA.HighestTA.Lowest 함수를 직접 사용하여 직접 얻을 수 있으며, 더 이상 논리를 직접 작성하지 않아도 됩니다. 그리고 TA.HighestTA.Lowest 함수는 배열이 아닌 특정 값을 반환합니다. 이것은 매우 편리합니다. 더 나아가서, 공식은 수백 개의 지표 함수를 내장했습니다.img그림 4-55

위 그림과 같이: 19줄: TA.Highest 함수를 호출하여 50주기 최고값의 최대값을 얻습니다. 20줄: 50주기 최저값의 최소값을 얻기 위해 TA.Lowest 함수를 호출합니다. 21줄: 50주기 최고 가격의 최대 값과 50주기 최저 가격의 최소 값에 따라 평균을 계산합니다.

세 번째 단계: 거래를 주문하십시오.

위의 자료를 가지고 거래 논리와 하위 주문 거래의 코드를 작성할 수 있다. 형식 또한 매우 간단하며, 가장 많이 사용되는 것은?? if 문장?? 이다.img그림 4-56

위 그림과 같이: 22줄: 거래 클래스 라이브러리를 사용하세요. 이것은 고정된 형식입니다. 23,24 줄: 이것은 우리가 전에 배운 비교 연산법과 논리 연산법으로 모든 포지션을 평평하게 하는 평형 중점보다 낮은 가격으로 현재 더 많은 주문을 보유하고 있다면 의미하는 평형 중점 문장이다. 25,26 줄: 이것은 평평한 빈 리스트의 문장이며, 우리가 전에 배운 비교 연산법과 논리 연산법으로, 현재 빈 리스트를 보유하고 있고, 매출 가격이 중간에 있는 것보다 크다면 모든 포지션을 평평하게 한다는 것을 의미합니다. 27 줄: 현재 보유 상태를 판단하고, 빈 보유가 있다면 다음 단계로 이동하십시오. 28,29 줄: 종료 가격이 상승보다 크는지 판단하고 종료 가격이 상승하면 오픈 포션을 구입하십시오. 30,31 행: 종료 가격이 하향보다 낮는지 판단하고, 종료 가격이 하향에 떨어지면 오픈 포션을 판매하십시오.

요약

위에서 우리는 Python로 완전한 양적 거래 전략을 개발하는 모든 단계를 배웠습니다. 여기에는 전략 개요, 도치안 통로의 계산 방법, 전략 논리, 매각 조건, 전략 코드 구현 등이 포함됩니다. 이 부분은 단순한 전략일 뿐이며, 주사위와 같은 방법보다 더 많은 방법이며, 당신은 당신의 거래 시스템에 따라 다른 거래 방법을 중첩하여 자신의 양적 거래 전략을 형성 할 수 있습니다.

다음 섹션 예고

양적 거래 전략 개발에서, 프로그래밍 언어 실행 속도 관점에서, 어떤 언어가 가장 빠르다고 말할 수 있다면, 그것은 C++만이 불가능하다. 특히 파생물 및 HF 거래 분야에서, C++는 고유한 언어 특정, C++는 숫자 계산에서 우위를 점하고, 자바스크립트 및 파이썬에 비해 몇 단계의 속도를 향상시킬 수 있습니다.

수업 후 숙제

1, 임진왜란을 시작으로 이 섹션의 전략을 실행하십시오. 2, 이 섹션의 전략에 평선 지표를 추가하여 거래 빈도를 줄이는 방법을 시도하십시오.

5장 전략 재검토, 정비 및 개선

5.1 재검토의 의미와 함정

요약

재검토는 양적 거래와 전통적인 거래의 가장 다른 부분이며, 역사적으로 이미 일어난 실제 시장 데이터, 빠른 모형 전략 신호 트리거 및 촬영 거래, 일정 기간 동안의 성과 보고와 같은 데이터를 기반으로합니다. 국내외 주식, 상품 선물, 외환 등 시장에 대한 전략 개발의 가장 중요한 구성 요소 중 하나입니다.

재검토의 의미

이전 장에서는 주류 프로그래밍 언어의 기초적인 부분을 배우고, 이러한 프로그래밍 기초를 활용하여 간단한 거래 전략을 작성하는 방법을 가르쳤습니다. 그러나, 하나의 전략이 작성된 후, 그것은 확실히 직접적으로 실행될 수 없습니다. 그것은 계속적으로 테스트를 반복하고, 테스트를 반복하고, 테스트를 반복하고, 테스트를 반복하고, 그리고 그 다음을 반복해야 합니다.

양적 거래 논리 관점에서 전략은 시장에 대한 인식과 가정의 집합에 기반을 두고 있으며, 재검토는 이러한 가정이 타당하고 안정적인지를 효율적으로 결정할 수 있다. 역사적 불안정성 시기에 어떤 손실이 발생할 수 있으며, 이러한 손실을 방지하기 위한 의사결정을 돕는다.

또한, 양적 거래 운영의 관점에서, 재테스팅은 전략 논리 내의 버그, 예를 들어 미래 함수, 도난 가격, 다중 적합성 등을 탐지하는데 도움이 된다. 전략이 실제 거래에 사용될 수 있는 신뢰할 수 있는 증거를 제공한다.

  • 거래 신호의 정확성을 검증합니다.
  • 거래의 논리와 당신의 아이디어가 실행될 수 있는지 확인합니다.
  • 거래 시스템의 결함을 발견하고 원시 전략을 개선합니다.

따라서 재검토의 의미는 역사적 자료를 통해 실제 거래 과정을 최대한 진실하게 복원하고 전략의 효과를 검증하고 잘못된 전략에 대한 고가의 비용을 피하고 거래 전략을 선별, 개선, 최적화하는 데 도움이됩니다.

재검토의 함정

트램프 신호가 깜빡이는 것:

트레이딩 전략은 역량 측정 시 정적 역사 데이터에 기초한다. 실제 거래의 데이터는 동적이다. 예를 들어: 최고 가격이 어제의 종료 가격보다 크다면 입장을 개척한다. 이 입장의 조건은 실제 디스크에서 K 라인이 끝나지 않은 경우 최고 가격이 동적이고 거래 신호가 번쩍일 가능성이 있다. 역량 측정시, 역량 측정 엔진은 정적 역사 데이터에 기초하여 합성을 모방할 수 있다.

트랩의 미래 함수를 재검토합니다.

미래 함수는 미래의 가격을 사용한다. 즉, 현재 조건이 미래에 변경될 수 있는 것과 마찬가지로 미래 함수는 신호 깜박임의 원인이 된다. 따라서 모든 함수는 미래 함수의 특성을 가지고 있다. 예를 들어, 의 단어는 함수 로 전환된다.

아래 그림과 같이: 이 단어로 전환된 함수는 파동점과 파동곡의 전환점을 나타냅니다. 그것은 최신 실시간 가격에 따라 그 가치를 조정할 수 있습니다. 그러나 현재 가격이 변할 때 이 단어로 전환된 함수의 계산 결과가 변합니다. 미래 함수를 가진 함수를 사용하면 현재 주문 신호가 생성되고 주문될 수 있지만 잠시 후에 이 신호가 작동하지 않을 수도 있습니다.img그림 5-1

덫에 걸린 도둑들의 가격을 재검토

소위 도난행위는 과거 가격을 이용해서 거래를 하는 것을 말한다. 예를 들어: 최고가격이 일정 가격보다 크면 개시 가격으로 구매한다. 이 조건은 도난 가격이기 때문에 실제 가격에서 최고가격이 일정 가격보다 크면 가격이 개시 가격보다 일정 거리에 있기 때문에 개시 가격으로 구매할 수 없다. 그러나 재검토에서는 구매 신호가 있고 거래가 가능하다.

또 다른 경우, 가격 점프가 전략적으로 설정된 고정 가격과 높은 경우, 재검토 시 고정 가격으로 거래할 수 있지만 실제 시장에서 이 고정 가격은 분명히 구입할 수 없습니다.

트랩의 불가능한 가격을 재검토합니다

이 경우, 거래가 불가능한 가격은 다음과 같은 여러 가지로 나눌 수 있습니다. 첫 번째: 실제 거래에서, 정지시에는 일반적으로 구입할 수 없으며, 반대로 하락도 마찬가지입니다. 그러나 재검토에서 거래 할 수 있습니다.

두 번째 유형: 거래소 촬영 메커니즘은: 가격 우선, 시간 우선이다. 일부 품종 거래소에는 종종 엄청난 주문이 있으며, 실제 거래소에서 거래소 두께를 기다려야 거래가 완료되거나 거래가 완료되지 않을 수도 있습니다. 그러나 재검토시에는 거래소가 완료 될 수 있습니다.

세 번째 방법: 만약 이변 전략이라면, 이변의 이익은 매우 높습니다. 왜냐하면 이변을 할 때마다 이러한 가격 차이를 잡았다고 가정했기 때문입니다. 실제 상황에서는 많은 가격 차이를 잡을 수 없거나 한 다리를 잡았을 때, 일반적으로 당신에게 불리할 수 있는 쪽을 먼저 거래해야 합니다.

네 번째 유형: 블랙 스완 사건. 아래 그림자처럼, 외환 스위스 블랙 스완 사건, 비록 겉으로 보기에는 오픈 가격, 최고 가격, 최저 가격, 폐쇄 가격, 실제로 그 날의 극단적인 시장에서 중간 가격은 공허, 많은 중지 손실 명령, 발걸음 사건, 유동성 0을 발생, 거래 난이도가 매우 큰, 그러나 다시 테스트에 손실을 중지 할 수 있습니다.img그림 5-2

탐지 트랩의 과도한 적합성

아래 그림을 볼 때마다 내 마음 속에는 '하하하하하... 아래 그림에서 보듯이 말도 안되는 모델은 충분히 복잡하다면 데이터에 완벽하게 적응할 수 있다'는 생각이 들었습니다.img그림 5-3

양적 거래의 경우 리코딩은 역사적 데이터에 기초하지만, 역사적 데이터의 샘플은 제한되어 있으며, 거래 전략의 파라미터가 너무 많거나 거래 논리가 너무 복잡하면 거래 전략이 너무 많은 역사적 데이터에 적응하게 된다.

정량화 전략의 모델링 과정은 본질적으로 대량의 겉으로 보기에는 무작위적인 데이터에서 부적절한 무작위적인 데이터를 찾는 과정이며, 통계학적 지식을 사용하지 않으면 과도한 적합성의 함정에 빠질 수 있다.

따라서, 자기 자신을 속이지 마십시오. 만약 양상외의 데이터가 좋지 않다고 발견되고, 모델을 버리는 것이 너무 슬프거나 자신의 모델이 작동하지 않는다는 것을 인정하기를 원하지 않는다면, 양상외의 데이터에 대해 양성하는 것을 계속하여 양상외의 데이터에도 똑같이 작동 할 때까지 모델을 최적화하는 경우, 최종 상처는 당신의 실버 금이 될 것입니다.

트랩 생존자 편차를 재검토

월스트리트에서는 이런 농담이 유행합니다. 시장에 1000마리의 코코넛이 있다고 가정하고, 첫해에는 500마리의 코코넛을 없애고, 두 번째 해에는 절반을 없애고, 250마리의 코코넛을 남겨두고, 세 번째 해의 끝에는 125마리의 코코넛을 남겨두고 있습니다.img그림 5-4

9학년 때, 마지막 이 남아있었다. 그리고 당신은 보아라, 보아라, 왼쪽으로, 오른쪽으로 쳐다봐, 그리고 눈을 뜨고 있었다. 그리고 마지막으로 금융 잡지의 표지를 보았을 때 갑자기 생각했어요, 오, 오, 이 사람이 버핏이 아니냐?

물론 이건 농담이지만, 만약 1000명의 펀드 매니저가 있다면, 10년 후 10명의 펀드 매니저가 10년 연속 시장에서 큰 성공을 거둘 것이라고 생각해본 적이 있나요?

아래 왼쪽의 재검토 결과와 같이, 대부분의 투자자들이 즉시 밝을 것이라고 확신합니다. 이 투자 전략은 매우 안정적인 성과를 내고 거의 크게 뒤집어지지 않았습니다.img그림 5-5

그리고 느린, 오른쪽 그림에서 보이는 것처럼, 실제 상황은 그 안에 있다. 원래 왼쪽의 재검토 곡선은 많은 재검토 중 가장 잘 수행한 것 중 하나일 뿐이다. 즉, 왼쪽의 재검토에서, 그 뒤에 더 나쁜 많은 재검토 상황들이 있다.

함정의 충격 비용을 재평가합니다

실제 거래 환경에서는 가격이 항상 변동하고, 당신이 거래 기회를 기대하고, 주문을 할 때, 가격이 이미 변했을 가능성이 있습니다. 따라서 점유점 문제는 주관 거래와 양자 거래에서 모두 피할 수 없습니다.

그러나 재검토는 정적 데이터에 기반하여 실제 거래 환경을 시뮬레이션하는 것이 어렵습니다. 예를 들어: 시매 가격은 1050 구매이지만 실제 거래 가격은 1051 일 수 있습니다. 이러한 현상을 일으키는 원리는 여러 가지가 있습니다. 예를 들어: 극심한 시점의 유동성 진공, 네트워크 지연, 소프트웨어 시스템, 하드웨어 시스템, 서버 응답 등.

미끄러지지 않는 재검토

img그림 5-6

위 그림과 같이, 비스리드 포인트의 리모델링은 자본 곡선이 비교적 좋아 보이지만 실제 거래 가격과 전략 리모델링의 이상 거래 가격의 차이점이 있습니다. 따라서 이러한 오류를 줄이기 위해 전략 리모델링을 할 때 두 개의 리모델링 포인트를 설정하여 구매 가격을 높이고 판매 가격을 낮추는 것이 좋습니다.

슬라이드 포인트 재검토

img그림 5-7

위 그림과 같이, 같은 전략, 만약 2개의 점프점을 추가한 후, 재검토의 결과가, 점프점을 추가하지 않은 재검토의 결과와 매우 차이가 난다면, 이 또한 이 전략이 개선되거나 새로운 것을 제거해야 한다는 것을 나타냅니다. 특히 거래 빈도가 높은 전략, 재검토에 1-2개의 점프점을 추가하는 것은, 재검토를 실제 거래 환경에 더 가깝게 만들 수 있습니다.

요약

어떤 파트너가 질문 할 수 있습니다. 양적 거래가 이렇게 많은 문제를 일으킬 수 있기 때문에 내 전략이 문제가 없다는 것을 어떻게 증명해야합니까? 사실 대답은 간단합니다. 전략이 실행되기 전에 잠시 동안 거래를 모방해야합니다. 모방 거래의 거래 가격은 재조정 시 거래 가격과 거의 다르다면 전략이 문제가 없다는 것을 증명합니다. 적어도 전략 논리는 문제가 없습니다.

어쨌든, 경험 많은 거래 시스템 개발자에게는 리모델링이 필수적입니다. 왜냐하면 그것은 전략적 아이디어가 역사적인 거래에서 검증 될 수 있는지 여부를 알려줍니다. 그러나 많은 경우 리모델링은 미래에 수익을 가져올 것이라는 것을 의미하지는 않습니다. 리모델링에 너무 많은 구멍이 있기 때문에 돈을 지불하지 않고 교훈을 이해하지 못할 것입니다. 그리고 그 교훈은 금과 은으로 쌓여 있습니다.

수업 후 숙제

1 과잉 적응이란 무엇이며 어떻게 피할 수 있는가? 2 실생활에서 어떤 것이 생존자의 편견인가?

5.2 거래 재검토를 어떻게 할 것인가

요약

재검토의 의미와 중요성은 의심의 여지가 없으며, 재검토를 실시할 때, 전략은 가능한 한 역사의 실제 환경에 있어야 하며, 역사적 환경의 세부사항을 무시하면 전체 재검토가 무효로 이어질 수 있다. 이 글은 재검토를 수행하는 방법에 대해 설명한다.

재검토는 데이터 복귀와 동등한 것으로, 역사적 K 라인 데이터를 복귀하고 실제 거래 규칙을 모방하여 구매 및 판매를 수행하여 최종적으로 셔프 비율, 최대 회수율, 연간 수익률, 자본 곡선 등의 데이터를 한 시간 동안 집계합니다. 현재 많은 소프트웨어가 재검토를 수행 할 수 있습니다. 예를 들어, 다양한 종류의 완전한 문화 재무, 유연하게 사용자 정의 할 수있는 VNPY 등.

발명자는 상업용 정량화 거래 소프트웨어로 정량화하여, 높은 성능의 정량화 엔진을 탑재하고, for-loop (?? 轮询) 정량화 프레임워크를 사용하여, 보다 빠르게 정량화 계산을 수행하고, 정량화와 실제 디스크의 코드를 통일하여, 부분적으로 정량화 쉬운, 실제 디스크의 난제를 해결하였다.

재검토 인터페이스 소개

우리는 발명가들의 양적화 된 메어 언어 전략을 통해 개발자의 양적화 된 거래 도구의 웹 사이트를 만들었습니다.www.fmz.com) ; 다음 페이지로 이동하기 위해 컨트롤 센터, 정책 도서관, 정책을 선택, 모형 재검토를 클릭하십시오:img그림 5-8

리테스트 구성 인터페이스에서는 자신의 실제 요구에 따라 사용자 정의를 할 수 있습니다. 예를 들어: 리테스트 시간, K 라인 주기, 데이터 유형 (애고로그 레벨 데이터 또는 실제 디스크 레벨 데이터). 비교하여 아고로그 레벨 데이터 리테스트가 더 빠르며 실제 디스크 레벨 데이터 리테스트가 더 정확합니다). 또한 리테스트 시 처리 요금과 계정 초기 자금 등을 설정할 수 있습니다.

클릭 마인어 거래 클래식, 우선 거래 설정 태그, 발명가 양적 거래 도구의 마인어 전략에는 두 가지 재검토 실행 방법이 있습니다. 즉: 종료 가격 모델 및 실시간 가격 모델. 종료 가격 모델은 현재 K 라인이 끝나기 전에 모델을 실행하고, 아래 루트 K 라인이 시작될 때 거래를 실행합니다. 실시간 가격 모델은 가격 변화마다 모델을 실행하고 거래 신호가 생성되면 즉시 거래를 의미합니다. 아래 그림과 같이:img그림 5-9

기본 오픈 핸드 수는 리모델링 시 평점 개척 수를 가리키며, 최대 단일 거래 단위는 리모델링 엔진에 위탁된 단일 거래의 최대 평점 개척 수이다. 실제 디스크의 거래 가격과 미리 설정된 거래 가격 사이즈 사이에 오차가 발생한다. 이러한 오차는 일반적으로 거래자에게 불리한 방향으로 이동하여 거래의 추가 손실을 초래하므로 슬라이드 포인트를 추가하는 것이 필수적입니다.

선물 옵션에는 복습하고자 하는 계약 품종, 예를 들어 rb000 또는 rb888을 입력한다. 실판 옵션은 주로 실판 거래에 사용되며, 복습에서 기본 설정을 유지할 수 있다. 자동 복원 진행을 true로 클릭하면, 정책이 실판 실행 중에서 로봇을 중지한 후, 로봇이 다시 시작하면 신호를 다시 계산하지 않고 자동으로 이전 신호 위치를 복원한다. 신호를 설정하면 단일 복사 횟수가 20으로 설정되어 있으며, 현재 단일이 실패하면 다음 명령을 다시 시도한다. 네트워크 쿼리 사이클은 로봇이 매 시간마다 정책 코드를 실행하는 것을 의미합니다.img그림 5-10

현금 거래 옵션은 주로 디지털 화폐 거래에 적용되며, 리모델링에서 기본 설정을 유지할 수 있습니다. 단일 거래량, 최소 거래량, 가격화 통화 정확성, 거래 품종 정확성, 절차 수수료, 계좌 동기화 시간, 이익/손실 통계 간격 등, 또한 개별 디지털 화폐 거래소에 대한 레버풀이 및 기타 관련 설정을 설정할 수 있습니다.img그림 5-11

전략 재검토

재테스트하기 전에 먼저 당신의 거래 전략을 결정하십시오. 여기 우리는 시장 상태에 따라 트렌드 시장에서 트렌드 전략, 충격 시장에서 충격 전략을 적용하는 열기 템포스타트 전략을 예로 사용합니다.img그림 5-12 모형 리테이팅 인터페이스에서 리테이팅 설정을 구성한 후, 리테이팅 시작 버튼을 클릭하면, 수십 초 후에 리테이팅 결과가 즉시 표시됩니다. 리테이팅 로그에는 리테이팅 사용 시간, 로그 총수와 거래 번수가 기록됩니다. 여기에는 계정 정보가 전략 리테이팅 최종 성과: 평균 이익/손실, 보유/손실, 보증금, 절차 수수료 및 예상 이익 등을 인쇄합니다.img그림 5-13

상태 정보 열에는 거래 품종, 보유량, 보유 가격, 최신 가격, 마지막 신호 종류, 보유 후 최고 가격과 최저 가격, 갱신 번과 시간 및 자금 정보가 기록됩니다. 또한 부동의 수익/손실 라벨에는 계좌의 자세한 자금 곡선이 표시되며, 일반적으로 사용되는 성능 지표: 수익률, 연간 수익률, 샤프 비율, 최대 연간 변동률, 회수율 등이 포함됩니다.

이 중 가장 중요한 성과 지표는 샤프 비율이다. 이 지표는 수익과 위험을 동시에 고려하는 종합 지표이며, 펀드 상품을 측정하는 중요한 기준 지표이기도 하다. 통상적으로 말하면, 당신은 1달러당 얼마나 많은 위험을 감수하는가, 따라서 샤프 비율의 값이 높을수록 좋다.

연간 변동률은 이름 그대로 일일 변동률 x 일 년 거래일 수이며, 그것은 펀드의 위험을 측정하지만 모든 위험을 절대적으로 측정하지 않습니다. 예를 들어 전략 A의 변동률이 크지만 항상 상승하고 수익률이 좋습니다. 전략 B의 변동률은 작지만 항상 움직이지 않습니다. 우리는 전략 B가 전략 A보다 낫다고 말할 수 있습니까? 아래 그림에서 전략 A:img그림 5-14

마지막으로, 로그 정보 패널에는 트레이드 촬영의 세부 사항, 트레이드의 특정 시간, 거래소, 매매 및 거래 상식 유형, 트레이드 촬영 엔진의 완료 가격, 거래 수 및 인쇄 정보 등이 기록됩니다.img그림 5-15

재검토 후

많은 경우, 심지어는 대부분의 경우, 재검토의 결과는 기대와는 거리가 멀어집니다. 장기적으로 안정적인 수익을 창출하는 전략은 그렇게 쉽게 얻을 수 없습니다. 시장에 대한 지능을 필요로합니다.

만약 당신의 전략 재검토 결과가 돈을 잃는 결과를 가져오면, 실망하지 마십시오. 이것은 정상입니다. 먼저 전략 논리가 잘못 작성되었는지, 극단적 인 매개 변수를 채택했는지, 평준화 조건을 너무 많이 열었는지 등을 살펴보고, 필요한 경우 다른 관점에서 자신의 거래 전략과 거래 개념을 재검토 할 수 있습니다.

만약 당신의 전략 리모델링 결과가 매우 좋고, 자본 곡선이 매우 완벽하고, 샤프 비율이 1보다 높거나 더 높다면. 또한, 기쁜 것을 서둘러 하지 말고, 이런 경우, 대부분 미래 함수를 이용하거나, 또는 도난 가격이나, 또는 과도한 조화를 이용하거나, 또는 슬라이드 포인트를 설정하지 않은 경우, 이러한 문제를 제거할 수 있습니다.

요약

위의 것은 전체 거래 전략 재검토의 전체 과정에 대한 소개이며, 모든 세부 사항에 구체적이라고 할 수 있습니다. 참고해야 할 것은 역사적 데이터 재검토는 모든 위험이 알려진 이상적인 환경이기 때문입니다. 따라서 전략 재검토의 시간은 1 라운드를 경험하는 것이 가장 좋습니다.

시장은 항상 변화하고 진화하고 있으며, 역사적으로 재검토된 좋은 전략은 미래에 반드시 훌륭할 것이라는 것을 의미하지 않으며, 전략은 재검토 환경에서 알려진 위험에 대처할 수 있을 뿐만 아니라 미래의 알려지지 않은 위험에 대처할 수 있다. 따라서 전략의 위험 저항력과 보편성을 높이는 것이 매우 필요하다.

수업 후 숙제

1, 이 섹션의 전략을 복제하고 성과 보고서를 다시 테스트하십시오. 2. 자신의 거래 경험에 따라 이 섹션의 전략을 개선하고 최적화하려고 노력하십시오.

5.3 전략 리코드 성과 보고서를 읽는 방법

요약

우리의 전략 재검토가 완료되면, 발명자 양적 거래 도구는 웹 페이지에 다양한 성과 지표, 수익 곡선 도표를 포함한 출력을합니다. 그러나 아마도 우리가 이러한 지표의 정의와 내용을 잘 알지 못하기 때문에 그룹을 판단하는 전략이 좋지 않을 수도 있습니다. 이 글은 주요 지표 개념에서 시작하여 전략을 재검토하는 성과 보고서를 읽고 전략의 장단점을 구별하는 데 도움이 될 것입니다. 대부분의 양적 거래 도구에는 이러한 재검토 성과 보고서가 있습니다.

객관적이고 완전한 평가

실제 거래 데이터의 기록이나 역사적 데이터의 역 테스트 (Back-Testing) 를 이용한 재검사 보고서에 관계없이, 모델의 우수성은 거래 상황에 대한 통계에 의해 평가된다.

문제는 어떤 통계자료로 비교해야 하는지에 대한 것입니다. 예를 들어, 아래 그림에서 같은 시간대에 테스트를 통해 다음 두 개의 데이터 집합을 얻으면 어떤 모델이 더 잘 수행하는지 판단할 수 있을까요?img그림 5-16

답은 '아니오'입니다. 평가 시스템의 단면성은 양적 거래 시스템을 무산시키는 결과를 초래합니다.

트레이딩 시스템은 역사 리모델링을 통해 사용 가능해야 한다. 역사 리모델링이 불가능한 트레이딩 시스템은 실제 거래에서 장기적으로 수익을 얻을 수 없다. 역사 리모델링은 트레이딩 시스템이 실제 거래에 들어가는 데 필요한 전제 요소이다.

역사적으로 재검토할 수 있는 거래 시스템은 반드시 유용한 거래 시스템일 필요는 없지만, 역사적으로 재검토할 수 없는 거래 시스템은 반드시 유용한 거래 시스템이 아니다. 일반적으로 우리는 안정성, 지속성, 기대되는지 여부를 판단하는 등의 관점에서 성과 보고서를 분석해야 한다.img그림 5-17

위 그림과 같이, 그러나 양적 거래자를 접한 사람은 이러한 번거로움과 이해하기 어려운 리테스트 성과 데이터 용어를 접할 수 있습니다. 이러한 성과 데이터 중 많은 데이터도 서로 모순됩니다. 많은 양적 거래 초보자는 오히려 어떤 데이터에 집중해야하는지 의문을 가질 것입니다.

위 그림의 성능 지표 명칭은 일반적으로 성능 비율, 주기 분석, 다양한 곡선, 극단적인 거래 분석 등 여러 가지 범주로 나눌 수 있습니다. 심지어 엄격한 펀드 제품 관점에서 볼 때도, 대부분은 재검토 계산 결과의 표시일 뿐이며, 실제로는 의미가 거의 없습니다. 예를 들어: 계좌 자금 수요, 보유 수익, 신뢰 한계 등. 심지어 중요한 몇 가지에만주의를 기울여야 할 수도 있습니다. 아래에서 나는 재검토 성능 지표 중 가장 중요한 몇 가지를 선택하여 상세한 설명으로 설명합니다.

중요한 성과 지표

최대 자산 회수 비율 (Max Drawdown)

최대 회귀를 계산하는 공식은


관련

더 많은

해일하이드라2좋은 기사입니다!

빈 공간 정량화표지