Stanley Kroll menyebut dalam bukunya
Strategi yang dikongsi oleh artikel ini adalah berdasarkan prinsip ini. Garis purata bergerak digunakan sebagai arah trend. Hubungan antara harga penutupan, harga tertinggi dan harga terendah digunakan sebagai isyarat untuk membuka kedudukan. Di bawah premis bahawa trend harga tidak berubah dengan ketara, secara proaktif mengambil keuntungan dalam kumpulan mengikut peratusan.
Terdapat pepatah lama dalam dunia perdagangan:
Secara ringkasnya, kedudukan penutupan tidak lebih daripada dua keadaan: mengambil keuntungan dan menghentikan kerugian. Sebagai contoh, jika anda bernasib baik, harga mula meningkat selepas membeli. Pada masa ini, anda mesti mempertimbangkan masalah mengambil keuntungan. Jika tidak, kita hanya boleh membuat wang pada
Dari sudut pandang statistik, kebanyakan kedudukan kerugian akan kembali ke harga kos di pasaran masa depan. Walau bagaimanapun, jika anda menghadapi kemungkinan kecil trend terbalik yang besar, anda mungkin kehilangan semua keuntungan sebelumnya atau bahkan keseluruhan dana. Oleh itu, untuk pelabur runcit kami, kami boleh membuat keuntungan besar; kami boleh membuat keuntungan kecil; kami boleh melakukan kerugian kecil, tetapi kami tidak boleh kehilangan wang yang besar.
Kadang-kadang apabila kita secara intuitif mengambil keuntungan, mungkin terdapat gelombang besar pergerakan harga pasaran yang kita hanya mendapat sejumlah kecil daripadanya. Walaupun ia bukan transaksi yang gagal, akan ada sejenis penyesalan dari mental, jadi strategi ini akan menggunakan kaedah mengambil keuntungan berbilang peringkat, iaitu apabila keuntungan terapung mencapai 5%, mod mengambil keuntungan aktif peringkat pertama diaktifkan. Setelah 100% dikeluarkan dari titik tertinggi keuntungan terapung, ambil keuntungan dan tutup kedudukan; apabila keuntungan terapung mencapai 10%, mod mengambil keuntungan aktif peringkat kedua diaktifkan. Setelah 50% ditarik balik dari titik tertinggi keuntungan terapung, ambil keuntungan dan tutup kedudukan; Apabila keuntungan terapung mencapai 20%, pengambilan keuntungan aktif tiga peringkat diaktifkan. Setelah 20% dikeluarkan dari titik tertinggi keuntungan terapung, mod terapung dan menutup kedudukan.
Tentukan rel atas
Tentukan rel bawah
Tentukan purata bergerak
Posisi panjang terbuka: harga penutupan lebih besar daripada rel atas, dan rel atas lebih besar daripada purata bergerak
Posisi pendek terbuka: harga penutupan adalah lebih rendah daripada rel bawah, dan rel bawah adalah lebih kecil daripada purata bergerak
Posisi panjang ditutup: Harga penutupan lebih rendah daripada trek bawah, atau harga penutupan lebih rendah daripada purata bergerak
Posisi pendek ditutup: Harga penutupan lebih besar daripada rel atas, atau harga penutupan lebih besar daripada purata bergerak
Tahap 1 kedudukan panjang mengambil keuntungan: harga tertinggi selepas pembukaan kedudukan adalah lebih besar daripada atau sama dengan harga pembukaan dikalikan dengan tahap pertama keuntungan permulaan, dan harga terendah adalah kurang daripada atau sama dengan harga tertinggi selepas pembukaan kedudukan dikurangkan keuntungan terapung dikalikan dengan tahap pertama mengambil keuntungan nilai pencetus
Tahap 2 kedudukan panjang mengambil keuntungan: harga tertinggi selepas membuka kedudukan adalah lebih besar daripada atau sama dengan harga pembukaan dikalikan dengan tahap kedua keuntungan permulaan, dan harga terendah adalah kurang daripada atau sama dengan harga tertinggi selepas membuka kedudukan dikurangkan keuntungan terapung dikalikan dengan nilai pemicu keuntungan tahap kedua
Tahap 3 kedudukan panjang mengambil keuntungan: harga tertinggi selepas membuka kedudukan adalah lebih besar daripada atau sama dengan harga pembukaan dikalikan dengan tahap ketiga keuntungan permulaan, dan harga terendah adalah kurang daripada atau sama dengan harga tertinggi selepas membuka kedudukan dikurangkan keuntungan terapung dikalikan dengan nilai pemicu keuntungan tahap ketiga
Tahap 1 kedudukan pendek mengambil keuntungan: harga terendah selepas membuka kedudukan adalah kurang daripada atau sama dengan harga pembukaan dikalikan dengan tahap awal keuntungan pertama, dan harga tertinggi adalah lebih besar daripada atau sama dengan harga terendah selepas membuka kedudukan ditambah dengan keuntungan terapung dikalikan dengan nilai pemicu mengambil keuntungan peringkat pertama.
Posisi pendek peringkat 2 mengambil keuntungan: harga terendah selepas membuka kedudukan adalah kurang daripada atau sama dengan harga pembukaan dikalikan dengan tahap keuntungan permulaan kedua, dan harga tertinggi adalah lebih besar daripada atau sama dengan harga terendah selepas membuka kedudukan ditambah keuntungan terapung dikalikan dengan nilai pemicu keuntungan peringkat kedua.
Tahap 3 kedudukan pendek mengambil keuntungan: harga terendah selepas membuka kedudukan adalah kurang daripada atau sama dengan harga pembukaan dikalikan dengan tahap ketiga keuntungan permulaan, dan harga tertinggi adalah lebih besar daripada atau sama dengan harga terendah selepas membuka kedudukan ditambah keuntungan terapung dikalikan dengan nilai pemicu keuntungan peringkat ketiga
Posisi panjang Stop Loss: Harga penutupan kurang daripada atau sama dengan harga pembukaan didarabkan dengan faktor stop loss
Posisi pendek Stop Loss: Harga penutupan kurang daripada atau sama dengan harga pembukaan didarabkan dengan faktor stop loss
Berdasarkan logik strategi di atas, kita boleh melaksanakan strategi ini di platform FMZ Quant.fmz.com> Login > Dashboard > Strategy Library > New Strategy > Klik pada menu drop-down di sudut kanan atas untuk memilih Bahasa Saya, mula menulis strategi, dan memberi perhatian kepada komen dalam kod di bawah.
Pertama, parameter yang perlu digunakan dalam strategi: panjang garis purata, julat stop loss, parameter mengambil keuntungan, dan lain-lain, semuanya ditakrifkan sebagai parameter luaran untuk memudahkan debugging dan pengoptimuman ujian.
/ / Define parameters
LENGTH := 100; // moving average parameter
STOP_LOSS := 3; // Stop Loss range
// Define the take profit parameter
STARTPER1 := 5; // Level 1 tracking take profit, start from profit reaches 5%
STOPPER1 := 100; // Level 1 tracking take profit, profit retracement 100% triggers it
STARTPER2 := 10; // Level 2 tracking take profit, start from profit reaches 10%
STOPPER2 := 50; // Level 2 tracking take profit, profit retracement 50% trigger it
STARTPER3 := 20; // Level 3 tracking take profit, start from profit reaches 20%
STOPPER3 := 20; // Level 3 tracking take profit, profit retracement 20% trigger
Seterusnya, tetapkan julat harga berdasarkan harga hari ini dan semalam, dan turun naik harga semalam. Melalui julat harga ini dan hubungan kedudukan relatif dengan purata bergerak, bukan sahaja isyarat membeli dan menjual kedudukan terbuka boleh dikesan dengan baik, tetapi juga mengurangkan bilangan kedudukan terbuka dalam tempoh kejutan dan besarnya pengeluaran juga.
/ / Define the upper and lower intervals
NN := BARSLAST(DATE <> REF(DATE, 1)) + 1; // current number of cycles
TODAY_OPEN := VALUEWHEN(NN = 1, O); // Opening price of the day
TODAY_HIGH := HHV(H, NN); // The highest price of the day
TODAY_LOW := LLV(L, NN); // lowest price of the day
YESTERDAY_HIGH := REF(TODAY_HIGH, NN); // Yesterday's highest price
YESTERDAY_LOW := REF(TODAY_LOW, NN); // yesterday's lowest price
BAND := YESTERDAY_HIGH - YESTERDAY_LOW; // Yesterday amplitude
UPPERLINE : TODAY_OPEN + BAND; // upper line
LOWERLINE : TODAY_OPEN - BAND; // lower line
MYMA:MA(CLOSE, LENGTH); // Moving average
Kemudian, ia adalah kod logik untuk membuka dan menutup kedudukan. Apabila harga penutupan lebih besar daripada rel atas dan rel atas lebih besar daripada purata bergerak, buka kedudukan panjang; apabila harga penutupan lebih rendah daripada rel bawah dan rel bawah lebih kecil daripada purata bergerak, buka kedudukan pendek; keadaan kedudukan penutupan adalah bertentangan dengan keadaan kedudukan pembukaan: apabila harga penutupan kurang daripada rel bawah, atau harga penutupan kurang daripada purata bergerak, tutup kedudukan panjang; apabila harga penutupan lebih besar daripada rel atas, atau harga penutupan lebih besar daripada purata bergerak, tutup kedudukan pendek.
// open the position
C > UPPERLINE AND UPPERLINE > MYMA, BK; // Open long position
C < LOWERLINE AND LOWERLINE < MYMA, SK; // Open short position
// close the position
C < LOWERLINE OR C < MYMA, SP; // Close long position
C > UPPERLINE OR C > MYMA, BP; // Close short position
Akhirnya, ia adalah bahagian stop-loss dan mengambil keuntungan yang kami sebutkan dalam artikel ini. Sama ada ia adalah kedudukan panjang atau pendek untuk mengambil keuntungan, ia dibahagikan kepada tiga peringkat. Setiap peringkat disesuaikan secara automatik mengikut turun naik harga pasaran semasa dan keuntungan. Dan pelarasan ini ditetapkan kepada parameter luaran, anda boleh membuat pelarasan halus mengikut keadaan pasaran yang berbeza dan status pelbagai.
Stop loss juga merupakan sebahagian daripada strategi yang perlu kita pertimbangkan, kerana mustahil untuk membuat wang dengan membuka mana-mana kedudukan. Kadang-kadang pasaran bertentangan dengan jangkaan kita, jadi stop loss adalah sangat diperlukan. Stop loss artikel ini adalah mudah dan
// long position take profit
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER1) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER1, SP; // level 1
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER2) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER2, SP; // level 2
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER3) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER3, SP; // level 3
// short position take profit
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER1) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER1, BP; // level 1
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER2) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER2, BP; // level 2
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER3) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER3, BP; // level 3
// stop loss
C <= BKPRICE * (1 - STOP_LOSS * 0.01), SP; // long position
C >= SKPRICE * (1 + STOP_LOSS * 0.01), BP; // short position
Di samping itu, kami juga menetapkan kaedah penghantaran pesanan, serta penapisan isyarat, untuk membuat pemprosesan lebih lengkap.
// Set the order commission method
SETSIGPRICETYPE(BK,NEW_ORDER);
SETSIGPRICETYPE(SK,NEW_ORDER);
SETSIGPRICETYPE(BP,NEW_ORDER);
SETSIGPRICETYPE(SP,NEW_ORDER);
// Set the signal filtering method
AUTOFILTER;
Kawasan ujian
Laporan prestasi
Kurva dana
Klik untuk menyalin sumber strategi penuh tanpa mengkonfigurasihttps://www.fmz.com/strategy/166753