Keperluan pembangun strategi
Apakah saya boleh menetapkan perbezaan harga hentian yang berbeza mengikut keadaan pembukaan yang berbeza?
Sebagai contoh, model tradisional menulis syarat kedudukan kosong tanpa membezakan antara syarat pembukaan yang berbeza.
Kode berikut adalah strategi yang mudah untuk membuka syarat-syarat tanpa membezakan:
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;
Ia berbeza dengan menggunakan arahan pengelompokan.
Arahan pengelompokan boleh dibahagikan kepada n kumpulan untuk syarat pembukaan, kedudukan terbuka bersyarat untuk satu kumpulan hanya dapat diselesaikan oleh syarat pembukaan yang sesuai dengan satu kumpulan, dan syarat pembukaan yang sesuai dengan kumpulan lain tidak akan memberi isyarat, dan tidak akan diamanahkan.
Contohnya:
Kumpulan pertama melakukan pelbagai syarat.
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;
Kumpulan kedua melakukan pelbagai syarat.
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 untuk membezakan antara kumpulan syarat yang berbeza dalam model yang sama? Mari kita amalkan mereka.
Pertama, model terbahagi kepada model penapis dan model tidak penapis:
Model penapisan: syarat pembukaan yang berbeza ingin menetapkan kedudukan dengan syarat kedudukan yang berbeza, boleh digunakan untuk mengelompokkan arahan.
Model yang tidak disaring: Strategi masuk pertama berbeza dengan strategi kenaikan, anda ingin melakukan penyelesaian dengan strategi hentikan kerugian yang berbeza, anda boleh menggunakan pengelompokan arahan.
Model penapis
//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;//过滤函数
Nota: Kumpulan dalam model penapisan perlu dimasukkan ke dalam kumpulan selepas arahan perdagangan dan dibungkus dengan tanda petik tunggal. Contohnya BK ((‘A’)
Model tanpa penapis
//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'));
Nota: Kumpulan model yang tidak disaring perlu ditambah kumpulan dan nombor tangan selepas arahan perdagangan, dan kumpulan perlu dibungkus dengan tanda petik tunggal. Contohnya BK ((‘A’,2)
Model penapis: penapis kumpulan dan penapis isyarat
Penapis kumpulan bermaksud: jika isyarat K baris terdahulu adalah isyarat bukaan saham yang dikeluarkan oleh kumpulan A (((BK SK BPK SPK) isyarat K baris semasa hanya boleh menjadi isyarat bukaan saham kumpulan A. Jika isyarat K baris terdahulu adalah isyarat bukaan saham yang dikeluarkan oleh kumpulan A (((BP SP) isyarat K baris semasa boleh menjadi isyarat bukaan saham kumpulan mana-mana . (((ambil isyarat bukaan saham pertama mengikut urutan isyarat muncul)
Syarat kedudukan kosong tanpa pengelompokan hanya boleh syarat kedudukan terbuka tanpa pengelompokan
Penapisan isyarat bermaksud: penapisan isyarat terbuka
Urutan keutamaan:
Model tanpa penapis:
Nota: Syarat kedudukan kosong tanpa pengelompokan hanya boleh syarat kedudukan terbuka tanpa pengelompokan
Seterusnya, kita akan melihat bagaimana arahan dikelompokkan semasa kita menulis kod, dengan beberapa contoh strategi.
Model penapis
Idea perdagangan: dengan 20 kitaran dan 60 kitaran rata-rata garpu mati garpu sebagai kriteria untuk menilai trend.
Kod:
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 penapis
Idea perdagangan: dengan 5 kitaran dan 10 kitaran rata-rata garpu mati garpu sebagai syarat untuk membuka kedudukan pertama.
Kod:
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 kes-kes khusus untuk kedua-dua jenis model ini, yang mana pembaca dapat melihat bagaimana bahasa saya menangani arahan pengelompokan, kita boleh membuat keperluan pengelompokan yang berbeza mengikut logik strategi kita sendiri, sehingga logik strategi yang ingin dinyatakan dapat ditunjukkan dalam kod dengan cara yang paling jelas dan paling sedikit kesilapan.