Nhu cầu của các nhà phát triển chiến lược
Các thị trường khác nhau sẽ cần các chỉ số khác nhau để đánh giá. Tôi có thể đặt giá dừng lỗ khác nhau theo các điều kiện mở đầu khác nhau không?
Ví dụ, mô hình truyền thống viết các điều kiện giao dịch không phân biệt các điều kiện mở khác nhau.
Mã sau đây là một chiến lược đơn giản để không phân biệt các điều kiện đặt hàng truyền thống:
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;
Và điều này là rất khác với các chỉ dẫn phân nhóm.
Chỉ thị phân nhóm có thể phân chia các điều kiện mở thành n nhóm, các vị trí mở theo điều kiện của một nhóm chỉ có thể mở theo điều kiện mở của một nhóm tương ứng, các điều kiện mở của các nhóm khác sẽ không được báo hiệu hoặc ủy quyền.
Ví dụ:
Nhóm đầu tiên là nhiều điều kiện
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;
Nhóm thứ hai làm nhiều điều kiện
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;
Làm thế nào để phân biệt các điều kiện khác nhau trong cùng một mô hình? Hãy thực hiện chúng.
Đầu tiên, mô hình được chia thành mô hình lọc và mô hình không lọc:
Mô hình lọc: các điều kiện mở đầu khác nhau muốn được cân bằng với các điều kiện cân bằng khác nhau, có thể được thực hiện bằng cách sử dụng chỉ thị phân nhóm.
Mô hình không lọc: Chiến lược đầu tiên vào khác với chiến lược tăng giá, bạn có thể thực hiện bằng cách sử dụng lệnh phân nhóm.
Mô hình lọc
//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;//过滤函数
Lưu ý: Phân nhóm của mô hình lọc là những nhóm cần được thêm vào sau lệnh giao dịch và được đóng gói bằng dấu phẩy đơn; ví dụ như BK (
Mô hình không lọc
//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'));
Lưu ý: Phân nhóm mô hình không lọc là những nhóm cần thêm nhóm và số tay sau lệnh giao dịch và nhóm cần được gộp lại bằng dấu chấm đơn.
Ví dụ như BK ((
Mô hình lọc: lọc nhóm và lọc tín hiệu
Bộ lọc nhóm có nghĩa là: nếu tín hiệu K đầu tiên là tín hiệu mở của nhóm A (BK SK BPK SPK) thì tín hiệu mở của nhóm A là tín hiệu mở của nhóm A. Nếu tín hiệu K đầu tiên là tín hiệu mở của nhóm A (BP SP), thì tín hiệu mở đầu của nhóm A là tín hiệu mở của nhóm A (BK SK BPK SPK).
Điều kiện giao dịch không phân nhóm chỉ có thể mở giao dịch không phân nhóm
Bộ lọc tín hiệu: bộ lọc tín hiệu mở
Các ưu tiên sau đây:
Mô hình không lọc:
Sau đó, chúng ta sẽ sử dụng một vài chiến lược để xem các chỉ dẫn được sắp xếp như thế nào khi viết mã.
Mô hình lọc
Ý tưởng giao dịch: sử dụng 20 chu kỳ và 60 chu kỳ như một tiêu chuẩn để xác định xu hướng.
Mã là:
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;
Mô hình không lọc
Ý tưởng giao dịch: với 5 chu kỳ và 10 chu kỳ đường thẳng vàng chui như là điều kiện đầu tiên để mở giao dịch.
Mã là:
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);
Dưới đây là các phân tích trường hợp cụ thể của hai loại mô hình này, người đọc có thể thấy cách ngôn ngữ My xử lý các chỉ thị phân nhóm, mọi người có thể xây dựng các yêu cầu phân nhóm khác nhau theo logic chiến lược của riêng họ, để cố gắng thể hiện logic chiến lược mà họ muốn thể hiện trong mã theo cách rõ ràng nhất và ít lỗi nhất.