Mengapa disebut termostat? Kami menamai sistem ini sesuai dengan kemampuannya untuk beradaptasi dan berdagang dalam volatilitas pasar dan pola tren. Sistem ini berasal dari pengamatan kami tentang keberhasilan sistem tertentu di area pasar tertentu. Sistem ini dapat membuat strategi dengan sifat ganda untuk memanfaatkan sepenuhnya kedua pola pasar.
Pertama, kita membuat fungsi untuk membantu menentukan pola pasar. Menurut output dari fungsi ini, termostat beralih dari mode follow ke mode swing jangka pendek.
Mode pelacakan tren mirip dengan mekanisme pelacakan tren di Bollinger band. Sistem ayunan jangka pendek adalah terobosan terbuka termasuk pengenalan pola. Fungsi ini membandingkan jarak berkeliaran pasar dengan jarak pasar yang sebenarnya:
Abs (harga penutupan - harga penutupan[29])/(harga tertinggi(30) - harga terendah (harga terendah, 30 hari) * 100
Fungsi ini menghasilkan nilai antara 0 dan 100. Semakin tinggi nilainya, semakin sedikit pasar saat ini akan penuh sesak. Jika nilai yang dikembalikan oleh fungsi kurang dari 20, sistem memasuki mode swing jangka pendek.
Pada dasarnya, sebagian besar pasar menunjukkan pergerakan ayunan, dan sistem mencoba menangkap fluktuasi dan mendapatkan keuntungan kecil darinya. termostat mencoba mencapai prestasi ini dengan membeli / menjual impuls pasar kecil. Jika fluktuasi cukup besar, sistem akan beralih mode.
Melalui analisis mendalam fluktuasi jangka pendek, kita menemukan bahwa kadang-kadang membeli lebih baik daripada menjual, dan sebaliknya. Pada saat ini, itu dapat ditentukan dengan mode visual sederhana. Jika harga penutupan hari ini lebih tinggi dari titik tinggi, titik rendah dan harga penutupan kemarin (juga dikenal sebagai titik kunci hari), kita berpikir bahwa aksi pasar besok mungkin bearish. Namun, jika harga penutupan hari ini lebih rendah dari titik tinggi, titik rendah dan harga penutupan rata-rata kemarin, maka pasar hari ini mungkin bullish. Kami mengklasifikasikan waktu ini sebagai harga yang lebih mudah dibeli dan dijual.
Pada platform FMZ Quant, strategi termostat adalah strategi yang sangat populer. Pengguna dapat menambahkan beberapa logika perdagangan tambahan sesuai dengan kebutuhan mereka sendiri untuk membuat strategi berkinerja lebih baik. Berikut adalah kerangka kerja khas strategi termostat pada platform FMZ Quant:
Bagan utama: Rumus lintasan atas: TOP^^MAC+N_TMPTMP;// lintasan atas saluran Bollinger Rumus downtrack: BOTTOM^^MAC-N_TMPTMP;// Bollinger channel downtrack
Subchart: Rumus CMI: CMI:ABS(C-REF(C,N_CMI-1))/(HHV(H,N_CMI)-LLV(L,N_CMI))*100;//Semakin besar nilai 0-100, semakin kuat tren. CMI < 20 adalah mode volatilitas, CMI > 20 adalah tren.
Kode (MyLanguage):
MAC:=MA(CLOSE,N);
TMP:=STD(CLOSE,N);
TOP^^MAC+N_TMP*TMP; // Bollinger channel upper track
BOTTOM^^MAC-N_TMP*TMP; // Bollinger channel down track
BBOLL:=C>MAC;
SBOLL:=C<MAC;
N_CMI:=30;
CMI:ABS(C-REF(C,N_CMI-1))/(HHV(H,N_CMI)-LLV(L,N_CMI))*100; // The greater the value of 0-100 is, the stronger the trend will be. CMI < 20 is volatility mode, CMI >20 is the trend.
N_KD:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N_KD))/(HHV(HIGH,N_KD)-LLV(LOW,N_KD))*100; // The difference between the closing price and the lowest value of N period is made, the difference between the highest value of N period and the lowest value of N period is made, and the ratio between the two differences is made.
K:=SMA(RSV,M1,1); // Moving average of RSV
D:=SMA(K,M2,1); // Moving average of K
MIND:=30;
BKD:=K>D AND D<MIND;
SKD:=K<D AND D>100-MIND;
// Oscillation mode
BUYPK1:=CMI < 20 AND BKD; // Oscillating long position, buy close
SELLPK1:=CMI < 20 AND SKD; // Oscillating short position, sell close
// Handling of original oscillating positions in trend mode
SELLY1:=REF(CMI,BARSBK) < 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND K<D; // Oscillation long position stop-profit
BUYY1:=REF(CMI,BARSSK) < 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND K>D; // Oscillation short position stop-profit
// Trend mode
BUYPK2:=CMI >= 20 AND C > TOP; // Trend long position, buy close
SELLPK2:=CMI >= 20 AND C < BOTTOM; // Trend short position, sell close
// Handling of original oscillating positions in trend mode
SELLY2:=REF(CMI,BARSBK) >= 20 AND C>BKPRICE*(1+0.01*STOPLOSS*3) AND SBOLL;// Trend long position stop-profit
BUYY2:=REF(CMI,BARSSK) >= 20 AND C<SKPRICE*(1-0.01*STOPLOSS*3) AND BBOLL;// Trend short position stop-profit
SELLS2:=REF(CMI,BARSBK) >= 20 AND C<BKPRICE*(1-0.01*STOPLOSS) AND SBOLL;// Trend long position stop-loss
BUYS2:=REF(CMI,BARSSK) >= 20 AND C>SKPRICE*(1+0.01*STOPLOSS) AND BBOLL;// Trend short position stop-loss
IF BARPOS>N THEN BEGIN
BUYPK1,BPK;
SELLPK1,SPK;
BUYPK2,BPK;
SELLPK2,SPK;
END
BUYY1,BP(SKVOL);
BUYY2,BP(SKVOL);
BUYS2,BP(SKVOL);
SELLY1,SP(BKVOL);
SELLY2,SP(BKVOL);
SELLS2,SP(BKVOL);
Hasil dari backtest strategi adalah sebagai berikut:
Untuk informasi lebih lanjut, silakan lihat:https://www.fmz.com/strategy/129086.