This trading system is quantitatively designed by Baruu Kuantifikasi. kami adalah sebuah pasukan yang telah berkomitmen untuk meneliti strategi perdagangan kuantitatif untuk masa yang lama.
Tahun lepas, kami telah mencapai hasil yang sangat baik dalam Pertandingan Kuantitatif Tokeninsight.
Terima kasih kepada komuniti FMZ kerana menyediakan platform seperti ini. Untuk lebih menyokong pembinaan komuniti kuantitatif, konsep reka bentuk dan idea reka bentuk strategi ini kini diterbitkan secara terbuka di sini. Saya harap anda boleh belajar reka bentuk dan aplikasi perdagangan kuantitatif.
Inspirasi untuk sistem kadar taip kuantitatif adalah terutamanya dari fizik
Definisi kelajuan dalam fizik ialah: jarak yang bergerak dalam satu unit masa. Jika anda menganggap harga sebagai jarak, maka di pasaran kewangan, definisi kelajuan adalah saiz perubahan harga per unit masa.
Jika harga berubah banyak dalam satu unit masa, pasaran sedemikian biasanya dipanggil pasaran pantas; jika perubahan harga dalam satu unit masa kecil, pasaran sedemikian dipanggil pasaran perlahan. Oleh itu, kelajuan adalah undang-undang semula jadi yang mengintegrasikan masa dan harga. Pemahaman yang mendalam mengenai kelajuan dapat membantu kita memahami pasaran dengan lebih banyak.
Jika kadar meningkat, ini bermakna bahawa tenaga meningkat dan dapat secara berkesan meramalkan trend kenaikan pasaran.
Jika kadar jatuh, ia bermakna kegagalan tenaga dan risiko keadaan pasaran yang rata atau jatuh dapat dirasakan.
Setiap urus niaga menggunakan sebilangan lot tertentu untuk urus niaga, jadi ia dipanggil sistem perdagangan kadar kuantitatif.
Harga tertinggi (HHV): Harga tertinggi yang dicapai dalam tempoh tertentu. Harga terendah (LLV): Harga terendah yang dicapai dalam tempoh tertentu. Moving Average (MA): Garis yang menghubungkan harga penutupan purata tempoh tertentu. Kemiringan regresi (SLOPE): Kemiringan regresi linear dengan tempoh tertentu. (Itu yang kita panggil kadar)
Rumus kemiringan persamaan linear OLS adalah seperti berikut:
Rumus matematiknya sangat rumit, tetapi platform FMZ telah menulis formula tatabahasa (SLOPE) bahasa M untuk kita.
Kita boleh lihat bahawa algoritma adalah seperti berikut:
Prosesnya agak rumit, tetapi tidak semua orang perlu berfikir tentang ia. hanya memanggil formula secara langsung.
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
Melalui reka bentuk penunjuk, kita boleh melihat bahawa dalam carta utama, kita mempunyai titik tertinggi (garis kuning), titik terendah (garis hijau), purata mereka (garis merah), dan rata-rata pergerakan harga diluruskan dikira oleh garis merah (garis ungu tebal)
Kemudian kita boleh mengira cerun regresi ss dalam gambar yang dilampirkan, yang mewakili kadar naik dan turun purata bergerak.
Seperti yang dapat dilihat dari gambar di atas, anak panah hijau menunjukkan titik lenturan di cerun terendah, dan anak panah oren menunjukkan titik lenturan di cerun tertinggi.
Reaksi di sepanjang carta adalah pada garis k, dan kelemahan kenaikan dan kelemahan penurunan juga dapat dirasakan dengan jelas.
Jika anda membeli dan menjual pada titik perubahan, anda boleh mengendalikan perdagangan dengan berkesan pada peringkat awal, bukannya mengejar kenaikan atau kejatuhan pada titik tinggi atau rendah.
Kemiringan yang meningkat bermakna momentum pasaran meningkat, yang mungkin berhenti jatuh atau mula meningkat. Penurunan cerun yang berterusan bermakna momentum pasaran lemah, dan mungkin berhenti naik atau mula jatuh.
Reka bentuk dan ungkapan menggunakan bahasa M adalah seperti berikut:
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
ss<REF(ss,1),SPK;//When the slope becomes smaller, it indicates that the market momentum is weakened, close long positions and open short positions.
ss>REF(ss,1),BPK;//When the slope becomes larger, it indicates that the market momentum is enhanced, close short positions and open long positions.
AUTOFILTER;
Dengan cara ini, kami telah menyelesaikan reka bentuk algoritma ini, dan kemudian kami akan menggunakan sistem untuk menguji keadaan selama satu tahun.
Subjeknya adalah kontrak suku tahunan okex btc;
Tempoh backtest adalah dari 1 Januari 2019 hingga kini, dan tempoh masa adalah 1 jam;
3 btc untuk akaun awal, yuran pengendalian 0.05%;
Tetapkan bilangan tetap 200 lot setiap transaksi.
Ia dapat dilihat dari backtest bahawa pendapatan ini agak lancar dan stabil.
Dalam backtest ini, 1261 urus niaga telah dibuat sepanjang tahun; Pendapatan yang dianggarkan sebanyak 4.68 mata wang kripto; Pendapatan tahunan adalah kira-kira 140%; Pendapatan maksimum adalah 14%. Nisbah Sharpe adalah 0.117.
Klik untuk pergi ke strategi salinhttps://www.fmz.com/strategy/183416
Perkongsian di atas adalah beberapa idea dan kandungan reka bentuk saya, berikut adalah keseluruhan kod bahasa M, Untuk rujukan, kajian dan penyelidikan anda. Jika anda perlu mencetak semula, sila nyatakan sumber. Terima kasih.
len:=35;//Design cycles
hh^^HHV(H,len);//Take the highest price in a certain period
ll^^LLV(L,len);//Take the lowest price in a certain period
hl2^^(hh+ll)/2;//Average of highest price and lowest price
avg^^MA(hl2,5);//Calculate the moving average line of the average
ss:SLOPE(avg,len);//Calculate the regression slope of the moving average line
ss<REF(ss,1),SPK;//When the slope becomes smaller, it indicates that the market momentum is weakened, close long positions and open short positions.
ss>REF(ss,1),BPK;//When the slope becomes larger, it indicates that the market momentum is enhanced, close short positions and open long positions.
AUTOFILTER;