Kebutuhan Pengembang Strategi
Untuk pasar yang berbeda, indikator yang berbeda diperlukan. Apakah saya dapat mengatur perbedaan harga stop loss yang berbeda sesuai dengan kondisi awal yang berbeda?
Misalnya, model tradisional menulis kondisi posisi tidak membedakan antara kondisi posisi yang berbeda.
Kode di bawah ini adalah strategi sederhana untuk tidak membedakan kondisi penyimpanan tradisional:
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;
Dan ini berbeda dengan menggunakan instruksi pengelompokan.
Instruksi pengelompokan dapat membagi n kelompok untuk kondisi penyebaran, posisi penyebaran kondisi suatu kelompok hanya dapat menyepakati kondisi penyebaran kelompok tertentu, kondisi penyebaran kelompok lain yang terpenuhi tidak akan ditandai, atau tidak akan ditugaskan.
Misalnya:
Kelompok pertama melakukan banyak hal
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;
Kelompok kedua melakukan banyak hal
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;
Bagaimana cara membedakan kondisi dari kelompok yang berbeda dalam model yang sama? Mari kita lakukan.
Pertama, model dibagi menjadi model filter dan model non-filter:
Model penyaringan: Kondisi yang berbeda untuk membuka posisi ingin diseimbangkan dengan kondisi yang berbeda untuk menyeimbangkan posisi, yang dapat dilakukan dengan menggunakan instruksi pengelompokan.
Model non-filter: Strategi masuk pertama berbeda dari strategi kenaikan, ingin melakukan perimbangan dengan strategi perimbangan stop loss yang berbeda, yang dapat dilakukan dengan menggunakan pengelompokan instruksi.
Model Filter
//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;//过滤函数
Catatan: Pengelompokan model filter membutuhkan pengelompokan setelah instruksi transaksi dan diikat dengan tanda kutip tunggal seperti BK (
Model tanpa filter
//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'));
Catatan: Pengelompokan model non-filter membutuhkan pengelompokan dan jumlah tangan setelah instruksi transaksi, dan pengelompokan harus diikat dengan tanda kutip tunggal.
Seperti BK ((
Model penyaringan: pertama penyaringan kelompok dan kemudian penyaringan sinyal
Filter kelompok adalah: jika sinyal K sebelumnya adalah sinyal buka dari kelompok A (BK SK BPK SPK) maka sinyal K saat ini hanya bisa menjadi sinyal buka dari kelompok A. Jika sinyal K sebelumnya adalah sinyal buka dari kelompok A (BP SP) maka sinyal K saat ini bisa menjadi sinyal buka dari kelompok manapun (BK SK BPK SPK).
Kondisi posisi yang tidak dikelompokkan hanya dapat terjadi pada kondisi posisi yang tidak dikelompokkan
Filter sinyal adalah: Filter sinyal terbuka
Prioritasnya adalah:
Model tanpa filter:
Di sini, kita akan melihat beberapa contoh strategi untuk melihat bagaimana instruksi-instruksi ini dikelompokkan ketika kita menulis kode.
Model Filter
Ide trading: Menggunakan 20 siklus dan 60 siklus sebagai kriteria untuk menentukan tren.
Kode:
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;
Model tanpa filter
Ide perdagangan: dengan 5 siklus dan 10 siklus sebagai kondisi pertama untuk membuka posisi.
Kode:
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);
Di atas adalah analisis kasus spesifik dari kedua model ini, dari mana pembaca dapat melihat bagaimana bahasa My menangani instruksi pengelompokan, setiap orang dapat membuat persyaratan pengelompokan yang berbeda sesuai dengan logika strategi mereka sendiri, sehingga mereka dapat mencoba untuk mengungkapkan logika strategi yang ingin mereka ungkapkan dalam kode dengan cara yang paling jelas dan paling sedikit kesalahan.