Keperluan pemaju strategi
Untuk pasaran yang berlainan, pertimbangan yang berbeza diperlukan. Bolehkah saya menetapkan harga stop loss yang berbeza mengikut keadaan awal yang berbeza?
Sebagai contoh, model tradisional menulis syarat-syarat kedudukan tidak membezakan antara syarat-syarat kedudukan yang berbeza.
Kod berikut adalah satu strategi mudah untuk tidak membezakan syarat 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;
Perintah pemasangan berbeza.
Arahan pemasangan boleh membahagikan n kumpulan untuk keadaan rata, kedudukan terbuka bersyarat bagi satu kumpulan hanya dapat menyamakan keadaan rata yang sepadan dengan kumpulan tertentu, dan syarat rata yang lain tidak akan ditandakan atau 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 keadaan yang berbeza dalam model yang sama? Mari kita laksanakan mereka.
Pertama, model ini dibahagikan kepada model penapisan dan model tidak penapisan:
Model penapisan: Syarat bukaan yang berbeza ingin diselaraskan dengan syarat kedudukan yang berbeza, yang boleh dilaksanakan dengan menggunakan arahan pengelompokan.
Model tanpa penapisan: Strategi masuk pertama berbeza dengan strategi kenaikan harga, yang boleh dilaksanakan dengan menggunakan pembiakan 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: Pengelompokan model penapisan adalah yang memerlukan kumpulan yang disertakan selepas arahan dagangan dan dibungkus dengan tanda kutip tunggal seperti BK (
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: Pengelompokan model tanpa penapisan memerlukan pengelompokan dan nombor tangan yang disertakan selepas arahan dagangan, dan pengelompokan perlu disertakan dengan tanda kutip tunggal.
Contohnya BK ((
Model penapis: penapis kumpulan dan penapis isyarat
Penapisan kumpulan bermaksud: jika isyarat garis K sebelum ini adalah isyarat perdagangan yang dikeluarkan oleh kumpulan A (BK SK BPK SPK) baris K semasa hanya boleh menjadi isyarat perdagangan yang dikeluarkan oleh kumpulan A. Jika isyarat garis K sebelum ini adalah isyarat perdagangan yang dikeluarkan oleh kumpulan A (BP SP) baris K semasa boleh menjadi isyarat perdagangan yang dikeluarkan oleh kumpulan manapun (BK SK BPK SPK).
Keadaan kedudukan yang tidak dikelompokkan hanya boleh menjadi keadaan kedudukan yang tidak dikelompokkan
Penapisan isyarat bermaksud: penapisan isyarat terbuka
Peringkat keutamaan adalah:
Model tanpa penapis:
Berikut adalah beberapa contoh strategi untuk melihat bagaimana arahan ini dikumpulkan semasa menulis kod.
Model penapis
Idea dagangan: menggunakan 20 kitaran dan 60 kitaran sebagai kriteria untuk menentukan trend.
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 penapis
Idea dagangan: sebagai syarat untuk membuka dagangan pertama dengan 5 kitaran dan 10 kitaran.
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 kes khusus untuk kedua-dua jenis model ini, pembaca dapat melihat bagaimana bahasa My menangani arahan pengumpulan, setiap orang boleh membuat keperluan pengumpulan yang berbeza mengikut logik strategi mereka sendiri, sehingga mereka dapat berusaha untuk menyatakan logik strategi yang ingin dinyatakan dalam kod dengan cara yang paling jelas dan paling sedikit kesilapan.