양적 거래 전략에서 그룹 명령어 작성

저자:선함, 2019-07-10 09:55:13, 업데이트: 2019-07-16 15:37:32

왜 명령어를 분류해야 할까요?

전략 개발자의 요구

다른 시장에 대해 다른 지표로 판단해야 합니다. 다른 입상 조건에 따라 다른 스톱 손실 차이를 설정할 수 있습니까?

예를 들어, 전통적인 모델에서 작성된 평준화 조건은 다른 오픈 조건에 대한 구별을 하지 않는다.

아래 코드는 단순한 전통적 무분별한 채용 조건의 전략입니다:

MA5^^MA(C,5);
MA10^^MA(C,10);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K..SMA(RSV,3,1);
D..SMA(K,3,1);
CROSS(MA5,MA10)||CROSS(K,D),BK;
C>HV(H,10)||C<BKPRICE-5*MINPRICE,SP;
AUTOFILTER;

다른 방법으로는,

분할 명령어는 평형 조건에 대해 n개의 그룹으로 나눌 수 있으며, 한 그룹의 조건 개방 포지션은 특정 그룹에 해당하는 평형 조건 조건에서만 평형 될 수 있으며, 다른 그룹의 평형 조건이 충족되는 경우 신호를 보내지 않으며 위탁되지 않습니다.

예를 들어:

첫 번째 그룹은 다조건

MA5^^MA(C,5);
MA10^^MA(C,10);
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;

두 번째 그룹은 다조건

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K..SMA(RSV,3,1);
D..SMA(K,3,1); 
CROSS(K,D),BK; 
C>HV(H,10)||C<BKPRICE-5*MINPRICE,SP;

같은 모델에서 다른 그룹 조건들을 어떻게 구분할 수 있을까요?

분할 명령어를 작성하는 방법

먼저, 모델은 필터링 모델과 필터링되지 않은 모델로 나니다:

  • 필터링 모델: 다른 오픈 조건이 다른 평형 조건으로 평형되기를 원하는 경우 명령어 그룹화를 사용하여 구현할 수 있습니다.

  • 비필터 모델: 첫 입구 전략은 위축 전략과 다르며, 다른 스톱 손실 평점 전략으로 평점을 원하는 경우 명령어 그룹화를 사용하여 구현할 수 있습니다.

필터링 모델

//A组指令
A组的开多条件,BK('A');
A组的开空条件,SK('A');
A组的平多条件,SP('A');
A组的平空条件,BP('A');
//B组指令
B组的开多条件,BPK('B');
B组的开空条件,SPK('B');
B组的平多条件,SP('B');
B组的平空条件,BP('B');
AUTOFILTER;//过滤函数

참고: 필터 모델의 그룹은 거래 명령에 따라 그룹에 추가되고 단호로 묶어야 합니다. 예를 들어 BK (A)

필터링이 없는 모델

//A组指令
A组的开多条件1,BK('A',2);
A组的开空条件1,SK('A',2);
A组的加多条件2,BK('A',1);
A组的加空条件2,SK('A',1);
A组的平多条件,SP('A',GROUPBKVOL('A'));
A组的平空条件,BP('A',GROUPSKVOL('A'));
//B组指令
B组的加多条件,BK('B',1);
B组的加空条件,SK('B',1);
B组的平多条件1,SP('B',GROUPBKVOL('B'));
B组的平空条件1,BP('B',GROUPSKVOL('B'));

참고: 비필터 모델의 그룹은 거래 명령에 따라 그룹과 수를 추가해야하며 그룹은 단절로 묶어야합니다. 예를 들어 BK (A, 2)

분할 명령어의 작동 메커니즘

필터링 모델: 그룹 필터링, 신호 필터링

  • 그룹 필터링은 다음을 의미한다: 만약 마지막 K선 신호가 그룹 A에서 나온 시점 신호라면 (BK SK BPK SPK) 현재 K선은 그룹 A의 평형 신호일 수 있다. 만약 마지막 K선 신호가 그룹 A에서 나온 평형 신호라면 (BP SP) 현재 K선은 임의의 그룹에서 나온 시점 신호일 수 있다.

  • 비집단식 평준화 조건은 비집단식 평준화 조건만 열 수 있습니다.

신호 필터링은: 평평한 신호 필터링

우선 순위는 다음과 같습니다.

  • 상위 K줄은 BK이고, 현재 K줄은 SPK 또는 SP (SPK가 SP보다 우선, 아래와 같은) 이어야 합니다.
  • 상위 K줄은 SK이고, 현재 K줄은 BPK 또는 BP가어야 합니다.
  • 가장 높은 K줄은 BP이고, 현재 K줄은 BK 또는 SK가어야 합니다.
  • 상위 K줄은 SP이고 현재 K줄은 BK 또는 SK가어야 합니다
  • 상위 K줄은 BPK이고, 현재 K줄은 SPK 또는 SP가어야 합니다.
  • 상위 K줄은 SPK이고, 현재 K줄은 BPK 또는 BP가어야 합니다.

필터링이 없는 모델:

  • 만약 전 신호가 그룹 A에서 발산된 포지션 시그널이라면, 다음 신호는 그룹 A의 포지션 시그널 또는 평형 시그널이어야 한다.
  • 만약 전 신호가 그룹 A의 평준화 신호이고 그룹 A의 보유 신호가 0이라면, 다음 신호는 임의의 그룹의 오픈 신호가 될 수 있다.
  • 만약 그룹 A가 지분을 0보다 더 많이 가지고 있다면, 그것은 그룹 A의 오픈 시그널 또는 평형 시그널이어야 한다. 참고: 비집단식 평준화 조건은 비집단식 평준화 조건만 열 수 있습니다.

분할 명령의 사례 분석

다음에는 몇 가지 전략의 예로 코드를 작성할 때 이러한 명령어가 어떻게 구성되는지 살펴볼 것입니다.

필터링 모델

트레이딩 아이디어: 트렌드를 판단하는 기준으로 20주기 및 60주기 직선 금포크 모형포크를 사용합니다.

  • 20주기 평균선보다 60주기 평균선보다 더 높게 하라. 반대로 공허하게 하라.
  • 다중 트렌드 내에서 최고가치가 10개의 k 라인을 새로 높이고陽線이 되면, 트렌드가 다중이다. 평형할 때, 더 큰 스톱손실점으로 스톱손실 평형하거나 평형형 정교포 평형이 나타난다. 공백을 역행한다.
  • 과잉 트렌드 내에서, 만약 KDJ 지표가 금포이고 양선이라면, 파장이 많을 것이다. 평형일 때, 작은 스톱손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손손

코드:

MA20^^MA(C,20);
MA60^^MA(C,60);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
HH:=HV(H,10);
LL:=LV(L,10);
MA20>MA60&&H>HH&&C>O,BK('A');
MA20<MA60&&L<LL&&C<O,SK('A');
L<LV(L,5)||CROSSDOWN(MA20,MA60)||C<BKPRICE-5*MINPRICE,SP('A');
H>HV(H,5)||CROSSUP(MA20,MA60)||C>SKPRICE+5*MINPRICE,BP('A');//只平A组开仓
MA20>MA60&&CROSSUP(K,D)&&C>O,BK('B');
MA20<MA60&&CROSSDOWN(K,D)&&C<O,SK('B');
C>BKPRICE+5*MINPRICE||C<BKPRICE-2*MINPRICE||C<REF(L,BARSBK),SP('B');
C<SKPRICE-5*MINPRICE||C>SKPRICE+2*MINPRICE||C>REF(H,BARSSK),BP('B');//只平B组开仓
//不同的开仓条件开仓,用不同的平仓条件,有针对性的平仓。达到不同行情试用不同策略的目的。
AUTOFILTER;

필터링이 없는 모델

거래 아이디어: 5주기 및 10주기 직선 금포크 도포크를 첫 번째 거래 조건으로 설정합니다.

  • 첫 번째 오프닝과 평형이 없는 5주기 및 60주기 평형 금포크 추가 포지션. 첫 번째 빈 포지션과 평형이 없는 5주기 및 60주기 평형 죽은 포크 추가 포지션.
  • 5주기 60주기보다 큰 트렌드에서 최고가치 10주기 k선 신상고가, 다음 두 번째 더 많은 포지션. 5주기 60주기보다 작은 트렌드에서 최저가치 10주기 k선 신상하가, 다음 두 번째 공백 포지션.
  • 첫 번째 추가 포지션에 대해, 5개의 k 라인을 생성하기 위해 새로운 낮은 또는 작은 스톱 손실 포인트 평형 (平空逆) 을 설정한다.
  • 두 번째 추가 포지션에 대해서는 5주기 및 60주기 평선 정교 포크 평면; 평면공간 역.

코드:

MA5^^MA(C,5);
MA10^^MA(C,10);
MA20:=MA(C,20);
MA60^^MA(C,60);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
HH:=HV(H,10);
LL:=LV(L,10);
CROSSUP(MA5,MA10)&&BKVOL=0&&C>=O,BK('A',2);
CROSSDOWN(MA5,MA10)&&SKVOL=0&&C<=O,SK('A',2);
CROSSUP(MA5,MA60)&&ISLASTBK&&BKVOL=2,BK('A',1);
CROSSDOWN(MA5,MA60)&&ISLASTSK&&SKVOL=2,SK('A',1);
MA5>MA60&&H>HH&&ISLASTSP&&REF(GROUPBKVOL('A'),BARSSP+1)>0,BK('B',1);
MA5<MA60&&L<LL&&ISLASTBP&&REF(GROUPSKVOL('A'),BARSBP+1)>0,SK('B',1);
L<LV(L,5)||C<REF(L,BARSBK)&&(C<BKPRICE-2*MINPRICE),SP('A',GROUPBKVOL('A'));
H>HV(H,5)||C>REF(H,BARSSK)&&(C>SKPRICE+2*MINPRICE),BP('A',GROUPSKVOL('A'));
C>BKPRICE+10*MINPRICE||CROSSDOWN(MA5,MA60),SP('B',BKVOL);
C<SKPRICE-10*MINPRICE||CROSS(MA5,MA60),BP('B',SKVOL);

이 두 가지 모형의 구체적인 사례 분석은 My 언어가 그룹 명령어를 처리하는 방법을 읽을 수 있습니다. 각자가 자신의 전략 논리에 따라 다른 그룹 요구 사항을 작성할 수 있습니다.


더 많은