avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Dibuat di: 2019-06-26 10:27:41, diperbarui pada: 2023-10-30 20:30:50
comments   5
hits   6922

[TOC]

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Kata pengantar

Mengapa mempelajari kursus ini? Apa yang Anda peroleh dari mempelajari kursus ini? Pertama-tama, kursus ini berbasis pada bahasa pemrograman JavaScript dan Python. Bahasa hanyalah sebuah teknologi, dan pada akhirnya kita masih harus menerapkan teknologi ini ke dalam sebuah industri. Perdagangan kuantitatif adalah industri yang sedang berkembang pesat saat ini dan membutuhkan banyak tenaga berbakat.

Melalui studi sistematis kursus ini, Anda dapat memiliki pemahaman yang lebih dalam tentang bidang perdagangan kuantitatif. Jika Anda seorang mahasiswa yang sedang mempersiapkan diri untuk memasuki bidang perdagangan kuantitatif, ini juga akan membantu Anda. Jika Anda seorang investor saham atau penggemar investasi berjangka, maka Perdagangan kuantitatif dapat sepenuhnya membantu perdagangan subjektif Anda. Dengan mengembangkan strategi perdagangan, Anda dapat memperoleh laba di pasar keuangan dan memperluas saluran serta platform investasi dan manajemen keuangan Anda.

Sebelumnya, izinkan saya bercerita tentang pengalaman trading pribadi saya. Saya bukan mahasiswa jurusan keuangan, tetapi jurusan statistik. Ia mulai terlibat dalam perdagangan saham subjektif saat masih menjadi mahasiswa. Kemudian, secara kebetulan, ia menjadi praktisi perdagangan kuantitatif dari sebuah dana ekuitas swasta domestik, yang terutama bergerak dalam penelitian dan pengembangan strategi.

Saya telah berkecimpung di dunia perdagangan selama lebih dari sepuluh tahun dan telah mengembangkan berbagai jenis strategi. Filosofi investasi saya adalah: pengendalian risiko di atas segalanya, fokus pada pengembalian absolut. Judul kursus kami adalah: Dari perdagangan kuantitatif hingga manajemen aset – pengembangan strategi CTA untuk pengembalian absolut.

1. Logika menghasilkan uang dengan strategi CTA berjangka

1.1 Memahami CTA Berjangka

Beberapa orang mungkin bertanya apa itu CTA? Apa sebenarnya CTA itu? CTA disebut penasihat perdagangan komoditas di luar negeri dan biasanya disebut manajer investasi di dalam negeri. CTA tradisional mengumpulkan dana dari sejumlah besar investor, lalu mempercayakannya kepada lembaga investasi profesional, dan akhirnya berinvestasi dalam indeks saham berjangka, komoditi berjangka, dan obligasi pemerintah berjangka melalui penasihat perdagangan (yaitu, CTA).

Namun pada kenyataannya, seiring pasar berjangka global terus tumbuh dan berkembang, konsep CTA juga terus berkembang, dan cakupannya jauh melampaui berjangka tradisional. Tidak hanya dapat berinvestasi di pasar berjangka, tetapi juga berinvestasi di pasar suku bunga, pasar saham, pasar valuta asing, pasar opsi, dll. Selama produk ini memiliki sejumlah data historis, strategi CTA yang sesuai dapat dikembangkan berdasarkan data historis ini.

Sebelum tahun 1980-an, teknologi perdagangan elektronik belum terlalu matang. Saat itu, sebagian besar pedagang menilai tren masa depan komoditas berjangka dengan menggambar indikator teknis secara manual seperti indikator Williams, KDJ, RSI, MACD, CCI, dll. Kemudian, beberapa pedagang menyiapkan dana CTA khusus untuk membantu klien mengelola aset. Baru pada saat perdagangan elektronik dipopulerkan pada tahun 1980-an, dana CTA dalam arti sebenarnya mulai muncul.

Perubahan Skala Pengelolaan Dana CTA Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut Satuan: Miliaran dolar AS

Jika kita melihat grafik di atas, terutama dengan meningkatnya perdagangan kuantitatif, ukuran dana CTA global telah meningkat dari US\(130,6 miliar pada tahun 2005 menjadi lebih dari US\)300 miliar pada tahun 2015. Selain itu, strategi CTA juga telah menjadi salah satu strategi investasi umum para hedge fund global.

Kinerja dana CTA juga meningkat seiring dengan skalanya. Mari kita lihat Indeks Barlake CTA pada gambar di bawah ini. Indeks Barlake CTA merupakan tolok ukur industri yang representatif bagi penasihat perdagangan komoditas global. Dari akhir tahun 1979 hingga akhir tahun 2016, pengembalian kumulatif Indeks Dana Barlake CTA mencapai 28,95 kali, dengan pengembalian tahunan sebesar 9,59%, rasio Sharpe sebesar 0,37, dan penarikan maksimum sebesar 15,66%.

Karena dalam portofolio alokasi aset, strategi CTA biasanya mempertahankan korelasi yang sangat rendah dengan strategi lain. Seperti yang ditunjukkan dalam lingkaran merah pada gambar di bawah ini, selama pasar saham global yang sedang lesu dari tahun 2000 hingga 2002 dan krisis hipotek subprime global pada tahun 2008, Indeks Barlake CTA Fund tidak hanya tidak turun tetapi juga mencapai pengembalian positif. Ketika krisis terjadi di pasar saham dan obligasi, CTA dapat memberikan pendapatan yang kuat. Selain itu, kita juga dapat melihat bahwa tingkat keuntungan Indeks Barclays Commodity CTA sejak tahun 1980 selalu lebih tinggi daripada S&P 500, dan penurunannya juga jauh lebih rendah daripada S&P 500.

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Perkembangan CTA di negara saya baru dalam satu dekade terakhir, namun momentumnya sangat kuat. Hal ini sebagian besar disebabkan oleh lingkungan perdagangan berjangka komoditas domestik yang relatif terbuka, ambang batas modal perdagangan yang rendah, sistem margin yang memungkinkan dua posisi beli dan dua posisi jual. - perdagangan satu arah, dan biaya transaksi yang rendah. , arsitektur teknis bursa lebih maju daripada saham dan lebih mudah diperdagangkan dalam sistem, dll.

Sejak tahun 2010, dana CTA sebagian besar berbentuk dana ekuitas swasta. Seiring dengan kebijakan domestik yang secara bertahap membuka ruang lingkup investasi rekening khusus dana, dana CTA mulai hadir dalam bentuk rekening khusus dana. Metode operasinya yang lebih transparan dan terbuka juga telah menjadi alat yang diperlukan untuk alokasi aset bagi lebih banyak investor.

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Seperti terlihat pada gambar di atas, baik dari segi kesulitan memulai, ambang modal, metode pelaksanaan strategi perdagangan, dan docking API, strategi CTA juga lebih cocok untuk pedagang individu dibandingkan strategi perdagangan lainnya. Kontrak berjangka domestik sangat kecil. Misalnya, satu lot jagung atau bungkil kedelai dapat diperdagangkan dengan harga beberapa ribu yuan, hampir tanpa ambang batas modal. Selain itu, karena beberapa strategi CTA berasal dari analisis teknis tradisional, relatif mudah dibandingkan ke strategi lainnya. .

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Proses perancangan strategi CTA juga relatif sederhana. Pertama, data historis diproses terlebih dahulu dan kemudian dimasukkan ke dalam model kuantitatif. Model kuantitatif mencakup strategi perdagangan yang dibentuk oleh pemodelan matematika, desain pemrograman, dan alat lainnya, dan menghasilkan sinyal perdagangan dengan menghitung dan menganalisis data ini. Tentu saja, dalam pengembangan sebenarnya, hal ini tidak sesederhana yang ditunjukkan pada gambar di atas. Ini hanya untuk memberikan gambaran umum kepada semua orang.

1.2 Jenis Strategi CTA Berjangka

Dari perspektif strategi perdagangan, strategi CTA juga beragam: bisa berupa strategi tren atau strategi arbitrase; bisa berupa strategi jangka menengah dan panjang dalam siklus besar atau strategi jangka pendek dalam sehari; logika strategi dapat didasarkan pada analisis teknis atau fundamental. Analisis permukaan; bisa berupa perdagangan subjektif atau perdagangan sistematis.

Terdapat berbagai metode klasifikasi untuk strategi CTA. Berdasarkan metode perdagangan, strategi ini dapat dibagi menjadi: perdagangan subjektif dan perdagangan sistematis. Pengembangan strategi CTA di luar negeri relatif maju, dan strategi CTA perdagangan sistematis telah mencapai hampir 100%. Menurut metode analisisnya, dapat dibagi menjadi: analisis fundamental dan analisis teknis. Menurut sumber pendapatannya, dapat dibagi menjadi: perdagangan tren dan perdagangan ayunan.

Secara umum, di seluruh pasar perdagangan, strategi tren mencakup sekitar 70% strategi CTA, strategi pembalikan rata-rata mencakup sekitar 25%, dan strategi kontra-tren atau pembalikan tren mencakup sekitar 5%. Di antara semuanya, strategi tren, yang mencakup proporsi terbesar, dapat dibagi menjadi: perdagangan frekuensi tinggi, perdagangan intraday, perdagangan jangka menengah-pendek, dan perdagangan jangka menengah-panjang sesuai dengan periode kepemilikan.

Strategi pembuatan pasar frekuensi tinggi Saat ini ada dua strategi perdagangan frekuensi tinggi yang umum di pasaran, satu adalah strategi pembuatan pasar frekuensi tinggi, dan yang lainnya adalah strategi arbitrase frekuensi tinggi. Strategi pembuatan pasar adalah menyediakan likuiditas di pasar perdagangan. Artinya, di pasar perdagangan dengan pembuat pasar, jika seseorang ingin membeli atau menjual, pembuat pasar harus memastikan bahwa pesanannya dapat dieksekusi. Jika likuiditas di pasar tidak mencukupi dan pesanan tidak dapat dieksekusi, pembuat pasar harus membeli dan menjual rekanan orang lain.

Strategi arbitrase frekuensi tinggi Arbitrase frekuensi tinggi adalah perdagangan dua saham atau ETF yang sangat berkorelasi dan kombinasi ETF. Berdasarkan metode perhitungan ETF, metode yang sama dapat digunakan untuk menghitung harga yang diharapkan dari suatu ETF. Harga indeks ETF dapat dikurangi dari harga ETF yang diharapkan untuk memperoleh selisih harga. Biasanya, selisih harga ini akan beroperasi dalam saluran harga. Jika selisih harga menembus saluran atas dan bawah, Anda dapat memperdagangkan selisih harga ini dan menunggu agar selisih harganya dapat dikembalikan untuk memperoleh laba.

Strategi intraday Jika kita mengikuti makna harfiahnya, selama posisi tersebut tidak ditahan semalaman, maka itu dapat disebut strategi perdagangan harian. Karena periode holding pada perdagangan intraday relatif pendek, biasanya setelah memasuki pasar, seseorang tidak dapat langsung mendapat keuntungan dan akan segera keluar pasar. Oleh karena itu, metode perdagangan ini memiliki risiko pasar yang lebih rendah. Namun, karena pasar berubah dengan cepat dalam waktu singkat, strategi intraday biasanya memiliki persyaratan lebih tinggi bagi para pedagang.

Strategi jangka menengah dan panjang Secara teori, semakin lama periode kepemilikan, semakin besar kapasitas strategi dan semakin rendah rasio risiko-imbal hasil. Khususnya dalam transaksi institusional, karena kapasitas strategi jangka pendek terbatas dan dana besar tidak dapat masuk dan keluar pasar dalam waktu singkat, maka akan dialokasikan lebih banyak strategi jangka menengah dan panjang. Biasanya masa penahanan berlangsung beberapa hari, bulan, atau bahkan lebih lama.

Data Strategi CTA Secara umum, strategi CTA menggunakan data menit, jam, dan harian sebagai objek penelitian, termasuk harga pembukaan, harga tertinggi, harga terendah, harga penutupan, volume perdagangan, dll. Hanya sejumlah kecil strategi CTA yang menggunakan data tick. Misalnya, data mendalam seperti harga beli, harga jual, volume pembelian, volume penjualan, dll. dalam data L2.

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Ketika membahas ide dasar strategi CTA, hal pertama yang kita pikirkan adalah indikator teknis tradisional, karena ada lebih banyak materi referensi publik dalam hal ini, logikanya biasanya lebih sederhana, dan sebagian besar didasarkan pada prinsip statistik. Misalnya, berbagai indikator teknis yang sudah dikenal semua orang: MA, SMA, EMA, MACD, KDJ, RSI, BOLL, W&R, DMI, ATR, SAR, BIAS, OBV, dan seterusnya.

Ada juga beberapa model perdagangan klasik di pasaran yang dapat digunakan sebagai referensi dan ditingkatkan, termasuk: kombinasi multi-moving average, DualThrust, R-Breaker, Metode Perdagangan Turtle, Metode Perdagangan Grid, dll.

Semua hal di atas adalah strategi perdagangan yang didasarkan pada analisis teknis tradisional. Prosesnya adalah mengekstrak faktor atau kondisi jual beli dengan keuntungan probabilistik berdasarkan data historis dan konsep perdagangan yang benar, dan berasumsi bahwa pasar akan tetap memiliki pola ini di masa mendatang. Terakhir, gunakan kode Terapkan strategi perdagangan dan otomatisasi sepenuhnya perdagangan Anda. Membuka posisi, mengambil untung, menghentikan kerugian, menambah posisi, mengurangi posisi, dan sebagainya, umumnya tidak memerlukan campur tangan manusia. Sebenarnya, ini adalah strategi membeli saat mahal dan menjual saat murah dengan memanfaatkan koefisien autokorelasi positif dari deret waktu harga.

Keuntungan terbesar dari strategi CTA adalah dapat memperoleh pengembalian absolut terlepas dari apakah pasar saat ini sedang naik atau turun, terutama ketika pasar berubah dengan cepat antara pasar bull dan bear, atau ketika tren pasar jelas-jelas mulus. Keuntungan dari Strategi ini sangat besar. Singkatnya, ada tren. Ada keuntungan. Akan tetapi, jika pasar sedang bergejolak atau trennya tidak jelas, strategi ini dapat mengakibatkan pembelian pada harga tinggi dan penjualan pada harga rendah, sambil terus bergerak maju mundur untuk menghentikan kerugian.

1.3 Prinsip Keuntungan Strategi CTA Berjangka

Alasan mengapa strategi CTA berjangka dapat menghasilkan uang terutama disebabkan oleh alasan-alasan berikut:

  1. Pergerakan harga bersifat refleksif dan selalu berlanjut dalam bentuk tren. Ketika investor mengamati harga naik, mereka membeli, yang menyebabkan harga naik lebih lanjut. Hal yang sama berlaku untuk penurunan harga. Karena investor berperilaku lebih tidak rasional, terkadang kita melihat harga naik ke tingkat abnormal saat naik, dan turun ke tingkat abnormal saat turun.
  2. Setiap investor memiliki toleransi asimetris terhadap rasio laba rugi, dan memiliki toleransi risiko yang berbeda-beda. Bagi sebagian besar investor ritel, mereka lebih suka memilih metode perdagangan mengikuti tren yang lebih konservatif, dan pasar lebih cenderung bergerak mengikuti tren.
  3. Pembentukan harga ditentukan oleh transaksi, dan transaksi digerakkan oleh manusia. Namun, sifat manusia sulit diubah, itulah sebabnya pola tetap muncul berulang kali. Strategi ini efektif jika diuji ulang pada data historis. Ini menunjukkan bahwa strategi ini mungkin efektif. di masa mendatang.

Karakteristik lain dari trading mengikuti tren adalah Anda kehilangan sejumlah kecil uang ketika tidak ada pasar, dan menghasilkan banyak uang ketika pasar datang. Namun, setiap orang yang telah melakukan trading tahu bahwa pasar berada dalam kondisi yang tidak stabil. dari waktu ke waktu, dan hanya dalam waktu yang singkat hal itu menjadi tren. Kutipan. Oleh karena itu, strategi mengikuti tren memiliki persentase kemenangan yang lebih rendah saat berdagang, tetapi secara keseluruhan keuntungan dan kerugian dari setiap transaksi relatif besar.

Karena strategi mengikuti tren memiliki hasil yang tidak stabil, banyak lembaga investasi akan membangun portofolio investasi menggunakan berbagai variasi dan berbagai strategi, yang juga akan mencakup sejumlah strategi pembalikan. Strategi pembalikan adalah bahwa deret waktu harga memiliki koefisien autokorelasi negatif, yang berarti menjual tinggi dan membeli rendah.

Korelasi antara CTA dan aset tradisional Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Jika kita perhatikan grafik di atas, secara teori, ketika menghadapi berbagai perubahan harga pasar pada saat yang bersamaan, beberapa strategi dengan gaya yang berbeda atau korelasi yang rendah akan menghasilkan sinyal perdagangan yang terkadang sama dan terkadang berbeda. Karena beberapa kurva imbal hasil saling tumpang tindih, keseluruhan imbal hasil saling melengkapi, dan kurva imbal hasil menjadi lebih datar, sehingga mengurangi volatilitas imbal hasil.

Dari sudut pandang di atas, dapat disimpulkan bahwa daripada mengembangkan strategi tingkat master, lebih baik mengembangkan beberapa sub-strategi yang biasa-biasa saja. Jadi, bagaimana cara mengendalikan strategi-strategi ini? Di sini kita dapat merujuk pada algoritma random forest dalam machine learning. Random forest bukanlah algoritma yang berdiri sendiri, melainkan kerangka kerja pengambilan keputusan yang mencakup beberapa pohon keputusan. Ini setara dengan strategi induk di atas sub-strategi pohon keputusan. Mengatur dan mengendalikan kelompok kebijakan anak melalui kebijakan induk.

Selanjutnya, kita perlu merancang strategi induk. Kita dapat mengevaluasi likuiditas, profitabilitas, dan stabilitas berbagai komoditas di seluruh pasar berjangka komoditas, menyaring portofolio berjangka komoditas dengan volatilitas rendah, dan kemudian melakukan netralitas industri. Melalui pemilihan yang beragam dari industri, volatilitas keseluruhan dapat dikurangi lebih lanjut. Terakhir, portofolio multivariasi komoditas berjangka yang sebenarnya dibangun melalui pencocokan nilai pasar untuk perdagangan.

Setiap produk juga dapat dikonfigurasikan dengan beberapa strategi parameter. Anda dapat memilih kombinasi parameter yang memiliki kinerja backtest yang baik. Ketika tren pasar terlihat jelas, beberapa strategi parameter biasanya bekerja secara konsisten, yang setara dengan menambahkan posisi. Ketika pasar dalam pasar yang bergejolak, beberapa strategi parameter dapat digunakan untuk meningkatkan kinerja. Strategi sering kali berperilaku tidak konsisten, sehingga masing-masing mengambil posisi beli atau jual untuk melindungi risiko, yang setara dengan mengurangi posisi. Hal ini selanjutnya dapat mengurangi tingkat pengembalian maksimum portofolio sambil menjaga tingkat pengembalian keseluruhan tidak berubah.

2. Kasus Strategi CTA Berjangka Klasik

Newton pernah berkata: Jika saya dapat melihat lebih jauh daripada orang lain, itu karena saya berdiri di atas bahu para raksasa.

Strategi CTA yang tersedia secara umum di pasar meliputi strategi rata-rata bergerak, strategi Bollinger Band, Metode Perdagangan Turtle, strategi momentum, strategi arbitrase, dll. Semua strategi perdagangan kuantitatif memiliki satu karakteristik, yaitu strategi tersebut akan mati di hadapan publik. Begitu strategi tersebut dipublikasikan, strategi tersebut secara bertahap akan menjadi tidak efektif. Tetapi hal itu tidak mempengaruhi pembelajaran kita tentang strategi-strategi tersebut dan mengambil intisarinya, sehingga kita dapat melihat masalah dari sudut pandang berdiri di atas bahu para raksasa.

2.1 Analisis fundamental berjangka (persediaan, basis, harga)

Analisis fundamental tidak perlu mengkhawatirkan tren harga jangka pendek. Analisis ini meyakini bahwa nilai pada akhirnya akan tercermin dalam harga. Analisis ini lebih tentang menganalisis faktor-faktor di balik harga dan menilai seberapa besar nilai varietas ini. Pada umumnya, metode analisis yang dipakai adalah top-down: dari faktor makro, faktor varietas, dan faktor lainnya.

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Jika kita perhatikan gambar di atas, ada banyak faktor yang memengaruhi harga komoditas, jumlahnya mencapai puluhan item. Jika dipecah lebih lanjut, jumlahnya masih puluhan lagi, dan data ini terus berubah. Merupakan hal yang di luar kemampuan investor ritel individu untuk memperoleh data dalam jumlah besar, apalagi melakukan analisis objektif.

Faktanya, analisis fundamental komoditas berjangka tidak berarti menganalisis semua faktor. Kita hanya perlu memahami elemen inti analisis fundamental untuk menemukan pola dari informasi yang kompleks.

Faktor Makro Data ekonomi makro bersifat kompleks dan dapat berubah-ubah. Setiap hari dan setiap saat, banyak data ekonomi yang dirilis oleh politisi, bank sentral, dan bank investasi di berbagai negara, baik resmi maupun tidak resmi. Selain krisis politik dan ekonomi, analisis makro merupakan bahan pembicaraan yang baik tetapi kurang praktis. Peter Lynch, pakar manajemen dana ternama asal Amerika, pernah mengutarakan pendapatnya: “Saya menghabiskan tidak lebih dari lima belas menit setiap tahun untuk menganalisis tren ekonomi.”

Faktor Variasi Dalam analisis fundamental, analisis produk terutama menganalisis premi dan diskon, hubungan penawaran dan permintaan, inventaris komoditas, laba industri, dll. Dapat dikatakan bahwa menguasai analisis faktor produk berjangka komoditas pada dasarnya dapat menentukan sebagian besar tren pasar.

Teman-teman yang pernah melakukan perdagangan berjangka tahu bahwa komoditas berjangka dalam negeri secara sederhana dapat dibagi menjadi: produk industri dan produk pertanian. Metode analisis untuk produk industri dan produk pertanian berbeda. Kami akan menjelaskan dari dua aspek penawaran dan permintaan. Untuk produk industri, pasokan relatif stabil. Kecuali jika ada terobosan teknologi besar, tidak mungkin kapasitas produksi akan peningkatan dalam jangka pendek. Terjadi perubahan besar dari waktu ke waktu, sehingga faktor yang memengaruhi harga produk industri terutama adalah permintaan. Permintaan produk pertanian relatif stabil. Dalam jangka panjang, permintaan produk pertanian mengalami perubahan, namun dalam jangka pendek, permintaan produk pertanian cenderung stabil. Oleh karena itu, faktor yang mempengaruhi harga produk pertanian terutama pasokan.

Oleh karena itu, menurut hukum ekonomi, hubungan penawaran dan permintaanlah yang pada akhirnya menentukan harga suatu komoditas. Secara teori, selama kita dapat memperoleh data penawaran dan permintaan, kita dapat menilai harga komoditas di masa mendatang. Untuk produk industri, data pasokan relatif mudah diperoleh, tetapi data permintaan sulit diperoleh. Untuk produk pertanian, data permintaan relatif mudah diperoleh, tetapi data pasokan sulit diperoleh.

Bahkan, kita dapat melangkah lebih jauh dan melakukan pengurangan. Hasil timbal balik dari penawaran dan permintaan di pasar ekonomi adalah persediaan. Kita dapat menggunakan data persediaan untuk menilai kekuatan hubungan antara penawaran dan permintaan pasar. Apabila persediaan suatu komoditi sangat banyak, berarti kekuatan penawaran pasar lebih besar daripada permintaan, dan harga komoditi tersebut akan turun apabila kondisi eksternal tetap tidak berubah. Apabila persediaan suatu komoditi sangat rendah, berarti kekuatan permintaan pasar lebih besar daripada penawaran, dan harga komoditi tersebut akan segera naik apabila kondisi eksternal tetap tidak berubah.

Selain menganalisis persediaan komoditas, perlu juga menganalisis perbedaan harga antara pasar spot dan pasar berjangka, yang disebut basis. Jika harga berjangka lebih besar daripada harga spot, kita menyebutnya premium; jika harga berjangka lebih kecil daripada harga spot, kita menyebutnya diskonto. Menurut sistem pengiriman berjangka, pada tanggal pengiriman berjangka, harga berjangka harus sama dengan harga spot.

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Terlepas dari apakah itu premium atau diskon, karena kendala sistem pengiriman berjangka, secara teori harga berjangka pada tanggal pengiriman harus sama dengan harga spot. Saat tanggal pengiriman mendekat, harga spot dan harga berjangka akan cenderung konsisten, salah satunya adalah pengembalian berjangka terhadap spot, yang lainnya adalah pengembalian spot terhadap berjangka.

Berdasarkan prinsip-prinsip di atas, kita dapat menggunakan inventaris dan basis untuk secara bersamaan menentukan harga berjangka di masa mendatang. Jika persediaan suatu komoditas rendah, dan harga berjangka jauh lebih rendah daripada harga spot, maka kita dapat menyimpulkan bahwa permintaan di pasar spot lebih besar daripada penawaran, dan kemungkinan kenaikan harga spot di masa mendatang tinggi. Saat tanggal pengiriman mendekat, harga berjangka akan naik untuk menyamai harga spot, dan kemungkinan kenaikan harga berjangka di masa mendatang lebih besar.

Akhirnya, kami telah menentukan arah harga masa depan yang paling mungkin melalui inventaris dan basis, tetapi tidak ada titik beli dan jual yang lebih tepat, sehingga analisis teknis diperlukan untuk memberikan sinyal masuk dan keluar yang jelas. Seluruh kerangka analisis fundamental adalah: inventaris rendah + diskon besar + sinyal bullish analisis teknis = panjang; inventaris tinggi + premium besar + sinyal bearish analisis teknis = pendek.

2.2 Aturan Perdagangan Kura-kura

Bila berbicara tentang strategi perdagangan, kita harus membicarakan tentang Aturan Perdagangan Turtle yang representatif. Turtle Trading Rules berasal dari salah satu eksperimen paling terkenal dalam sejarah perdagangan, ketika spekulator komoditi Richard Dennis ingin mengetahui apakah pedagang hebat dilahirkan atau dibuat. Untuk tujuan ini, pada tahun 1983 ia merekrut 13 orang dan mengajarkan mereka konsep dasar perdagangan berjangka, serta metode dan prinsip perdagangannya sendiri. Para siswa ini disebut “penyu laut”.

Selama empat tahun berikutnya, Turtles memperoleh laba gabungan tahunan rata-rata sebesar 80%. Dennis juga menunjukkan bahwa dengan menggunakan sistem dan aturan yang sederhana, orang-orang dengan sedikit atau tanpa pengalaman perdagangan dapat menjadi pedagang yang hebat. Namun, beberapa Turtle menjual Aturan Perdagangan Turtle di situs web untuk mendapatkan keuntungan. Untuk menghentikan perilaku ini, dua Turtle asli, Curtis Faith dan Arthur Maddock, memutuskan untuk membuat Aturan Perdagangan Turtle tersedia untuk umum secara gratis di sebuah situs web.

Setelah kebenaran terungkap, orang-orang menemukan bahwa Turtle Trading Rules mengadopsi Donchian Channel yang dioptimalkan dan menggunakan indikator ATR untuk manajemen posisi. Setelah puluhan tahun pengujian historis, ini telah menjadi metode perdagangan yang dapat digunakan oleh investor ritel biasa untuk menghasilkan uang dengan mudah, dan masih efektif untuk produk tertentu.

Prinsip Inti Penyu

  • Dapatkan keunggulan: Temukan strategi perdagangan yang memiliki nilai yang diharapkan positif karena akan menghasilkan keuntungan positif dalam jangka panjang.
  • Kelola risiko: Kendalikan risiko dan pertahankan pendirian Anda, jika tidak, Anda mungkin tidak akan mampu melihat hari ketika Anda menciptakan hasil.
  • Komitmen yang teguh: Hanya dengan menerapkan strategi Anda dengan teguh, Anda dapat benar-benar mencapai hasil yang sistematis.
  • Kesederhanaan dan kejelasan: Dalam jangka panjang, sistem yang sederhana lebih layak daripada sistem yang rumit.

Jadi selanjutnya, mari kita lihat apa sebenarnya isi Turtle Trading Rules? 1. Pasar - apa yang akan dibeli dan dijual, pada dasarnya, di pasar mana untuk berdagang. Turtles adalah pedagang berjangka, dan mereka hanya memilih pasar dengan volume perdagangan besar dan likuiditas tinggi, karena memilih pasar dengan volume perdagangan rendah akan meningkatkan risiko kerugian. uang. Selisih tambahan saat keluar dari pasar juga akan menyebabkan Anda kehilangan banyak peluang tren. 2. Ukuran posisi - Berapa banyak yang akan dibeli atau dijual merupakan bagian yang sangat penting dari keseluruhan strategi, tetapi kebanyakan orang biasanya mengabaikan atau memperlakukannya dengan tidak benar. Aturan Perdagangan Turtle menggunakan ATR, atau indikator Average True Range, untuk menghitung posisi pembukaan, menambahkan sinyal, dan sinyal stop-loss. Ini adalah desain yang sangat pintar, yang dimaksudkan untuk menyesuaikan ukuran posisi sesuai dengan volatilitas absolut pasar. Ketika volatilitas pasar kuat, ukuran posisi dikurangi, dan ketika volatilitas pasar lemah, ukuran posisi ditingkatkan. . Pertama-tama mendefinisikan suatu unit, rumus unit tersebut adalah: (total aset*1%)/ATR. Posisi awal adalah 1 unit. Bahkan jika penurunan produk pada hari itu mencapai level ATR, kerugian pada hari itu dapat dikendalikan dalam 1% dari total aset. Jika harga naik 0,5 unit, posisi panjang akan ditingkatkan 1 unit, hingga maksimum 4 unit. 3. Memasuki pasar - Masuknya Turtle ke pasar memanfaatkan Donchian Channel. Ketika harga naik di atas harga tertinggi dari 20 atau 55 garis K sebelumnya, ia memasuki pasar untuk melakukan long. Ketika harga turun di bawah harga terendah dari 20 atau 55 K-line sebelumnya, ia memasuki pasar untuk melakukan posisi long. , cukup masuk pasar dan short. Masuki pasar saat sinyal muncul, tanpa menunggu penutupan atau garis K berikutnya. 4. Stop loss - Dalam jangka panjang, transaksi tanpa stop loss tidak akan berhasil, tetapi sebagian besar trader bertahan pada posisi yang merugi dengan harapan pasar akan berbalik arah. Turtles memiliki aturan ketat tentang kapan harus keluar dari posisi yang merugi. Jika posisi long ditahan dan harga turun 2 unit, posisi long akan ditutup dengan stop loss. Jika Anda memegang posisi short dan harga naik 2 unit, posisi short akan ditutup dengan stop loss. 5. Take profit - Take profit Turtle berarti kehilangan banyak keuntungan mengambang, yang juga merupakan bagian yang sulit diterima oleh banyak trader. Jika Anda saat ini memegang posisi long dan harga turun di bawah jalur bawah Donchian Channel 10 hari, tutup semua posisi long; jika Anda saat ini memegang posisi short dan harga naik di atas jalur atas Donchian Channel 10 hari, tutup semua posisi long. Saluran Donchian, tutup semua posisi pendek.

Dari sini kita dapat melihat bahwa meskipun Turtle Trading Rules terlihat sederhana, pada kenyataannya, Turtle Trading Rules telah membentuk prototipe sistem perdagangan yang sebenarnya. Turtle Trading Rules mencakup semua aspek sistem perdagangan yang lengkap dan tidak memberikan ruang bagi para pedagang. Ada ruang untuk imajinasi subjektif. dan pengambilan keputusan, yang memungkinkan untuk menonjolkan keuntungan dari operasi sistem yang terprogram. Termasuk: aturan masuk dan keluar, pengelolaan dana dan pengendalian risiko, dll.

Keuntungan terbesar dari Metode Turtle Trading adalah membantu kita membangun metode trading yang efektif. Ini adalah strategi yang menggabungkan pembukaan batch, stop-profit dan stop-loss yang dinamis, dan mengikuti tren pasar, terutama penggunaan nilai ATR dan posisi. manajemen. Konsep ini layak dipelajari. Tentu saja, strategi mengikuti tren juga memiliki masalah umum, yakni pengambilan keuntungan yang belum terealisasi. Keuntungan mengambang yang diperoleh dari mengejar kenaikan kemungkinan besar akan hilang karena penurunan tajam berikutnya. Sangat kuat dalam tren besar, tetapi berkinerja buruk dalam pasar yang bergejolak.

3. Pengembangan praktis strategi CTA masa depan

3.1 Pengembangan strategi tren CTA berdasarkan bahasa Mai

Pada akhir abad lalu, sebuah metode perdagangan ajaib mulai menjadi populer di bidang investasi keuangan di Amerika Serikat. Setelah ribuan orang mempraktikkannya, orang-orang menemukan bahwa metode ini efektif dan memiliki nilai praktis yang besar. Pada saat yang sama , hal ini diakui oleh banyak pakar investasi. Hal ini diakui oleh para pedagang profesional dan masih dapat diterapkan dengan sempurna pada hampir semua bidang investasi keuangan, baik itu valuta asing, emas, saham, berjangka, minyak mentah, atau indeks dan obligasi. Hal ini metode operasi kekacauan.

Kata chaos pada awalnya merujuk pada deskripsi keadaan alam semesta yang kacau. Idenya adalah bahwa hasilnya tidak dapat dihindari, tetapi tidak dapat dihitung karena pengetahuan yang ada, karena perhitungan itu sendiri juga mengubah hasilnya, dan maksimum atau minimum hasil mungkin tampak di akhir, tetapi tidak ada yang tak terelakkan. hasil. Hal ini sangat mirip dengan perdagangan pasar, di mana para peserta mengubah pasar saat mereka menganalisis pasar dan membeli serta menjual perdagangan. Pasar selalu berubah-ubah. Ketika peserta mempelajari bentuk pasar baru, pasar juga mengetahui bahwa bentuk pasar tersebut dikenali oleh peserta, dan kemudian terjadi mutasi. Dan itu pasti akan cenderung bermutasi ke arah yang tidak diketahui oleh para peserta. Ia memiliki cukup kebijaksanaan untuk mencegah para peserta menangkap pola-polanya yang berubah. Dengan kata lain, pasar tidak stabil, dan pemahaman tentang masa lalu pasar tidak dapat mewakili masa depan.

Metode operasi kekacauan adalah seperangkat lengkap ide investasi, strategi perdagangan, serta sinyal masuk dan keluar yang diciptakan oleh Bill Williams. Saat ini, banyak investor internasional menggunakan metode operasi chaos untuk berpartisipasi dalam transaksi pasar. Karena perkembangan pasar keuangan negara saya yang lambat dan fakta bahwa teori chaos merupakan ide yang relatif baru, hanya sedikit orang di Tiongkok yang mempelajari metode operasi chaos. Karena Metode Operasi Chaos adalah strategi perdagangan yang sangat universal yang dapat diterapkan ke hampir semua bidang investasi keuangan, termasuk saham, obligasi, futures, valuta asing, dan mata uang digital, kursus ini menggunakan versi sederhana dari Strategi Chaos sebagai titik awal. Meningkatkan minat dan keuntungan investasi setiap orang.

Seperti namanya, dasar teori metode operasi chaos adalah teori chaos, yang dikemukakan oleh ahli meteorologi Edward Lorenz dan merupakan salah satu penemuan ilmiah terbesar di akhir abad ke-20. Dialah yang mengusulkan “efek kupu-kupu” yang terkenal. Bill Williams secara kreatif menerapkan teori kekacauan pada bidang investasi keuangan, dan menggabungkannya dengan geometri fraktal, dinamika nonlinier, dan disiplin ilmu lainnya untuk menciptakan serangkaian indikator analisis teknis yang sangat efektif.

Seluruh metode operasi kekacauan terdiri dari lima dimensi (indikator teknis):

  • Buaya

  • Fraktal

  • Momentum

  • Percepatan

  • Garis Keseimbangan

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Mari kita lihat gambar di atas. Alligator Line adalah sekumpulan garis keseimbangan yang menggunakan geometri fraktal dan dinamika nonlinier. Esensinya adalah moving average tertimbang eksponensial yang diperluas, yang merupakan jenis moving average, tetapi metode perhitungannya sedikit lebih rumit. daripada rata-rata bergerak biasa. Beberapa. Selanjutnya, mari kita lihat cara mendefinisikan garis Alligator dalam bahasa Mai:

// 参数
N1:=11;
N2:=21;

// 定义价格中线
N3:=N1+N2;
N4:=N2+N3;
HL:=(H+L)/2;

// 鳄鱼线
Y^^SMA(REF(HL,N3),N4,1);
R:=SMA(REF(HL,N2),N3,1);
G:=SMA(REF(HL,N1),N2,1);

Pertama, kita tentukan dua parameter eksternal N1 dan N2, lalu hitung rata-rata HL harga tertinggi dan harga terendah berdasarkan parameter eksternal tersebut. Kemudian, kita hitung rata-rata HL dengan parameter yang berbeda-beda. Untuk ciuman bibir, itu adalah siklus kecil garis tengah. Untuk merata-ratakannya lagi, gigi adalah rata-rata periode sedang garis tengah, dan rahang adalah rata-rata periode besar garis tengah. Dalam strategi ini, kami menggunakan rahang.

Konsep fraktal didefinisikan dengan sangat jelas dalam Metode Operasi Chaos. Kita dapat menggunakan analogi: buka telapak tangan Anda dengan jari-jari menghadap ke atas. Jari tengah adalah fraktal atas, jari kelingking dan jari manis di sebelah kiri, dan jari telunjuk jari tengah dan ibu jari di sebelah kanan mewakili area yang tidak cedera. Garis K tinggi baru. Fraktal dasar tersusun dari 5 garis K ini. Kemudian Anda dapat mendefinisikan fraktal menggunakan kode berikut:

// 分形
TOP_N:=BARSLAST(REF(H,2)=HHV(H,5))+2;
BOTTOM_N:=BARSLAST(REF(L,2)=LLV(L,5))+2;

TOP:=REF(H,TOP_N);
BOTTOM:=REF(L,BOTTOM_N);

MAX_YRG^^MAX(MAX(Y,R),G); 
MIN_YRG^^MIN(MIN(Y,R),G); 

TOP_FRACTAL^^VALUEWHEN(H>=MAX_YRG,TOP);
BOTTOM_FRACTAL^^VALUEWHEN(L<=MIN_YRG,BOTTOM);

Setelah menghitung garis Alligator dan fraktal, kita dapat menulis strategi operasi kekacauan sederhana berdasarkan kedua kondisi ini, menggunakan serangkaian rata-rata pergerakan berbobot eksponensial sebagai harga patokan untuk menghitung garis Alligator dan indikator fraktal. Tentu saja, strategi operasi kekacauan aslinya lebih rumit. Kodenya adalah sebagai berikut:

// 如果当前无多单,并且收盘价升破上分形,并且上分形在鳄鱼线上方时,多头开仓
BKVOL=0 AND C>=TOP_FRACTAL AND TOP_FRACTAL>MAX_YRG,BPK(1);
// 如果当前无空单,并且收盘价跌破下分形,并且下分形在鳄鱼线下方时,空头开仓
SKVOL=0 AND C<=BOTTOM_FRACTAL AND BOTTOM_FRACTAL<MIN_YRG,SPK(1);

// 如果收盘价跌破鳄鱼的下巴时,多头平仓
C<Y,SP(BKVOL);
// 如果收盘价升破鳄鱼的下巴时,空头平仓
C>Y,BP(SKVOL);

Agar mudah dipahami, saya telah menyertakan komentar terperinci dalam kode. Kita dapat dengan mudah mencantumkan logika perdagangan strategi ini sebagai berikut:

  • Buka posisi panjang: Jika tidak ada order panjang saat ini, dan harga penutupan menembus fraktal atas, dan fraktal atas berada di atas garis Alligator.
  • Buka posisi short: jika saat ini tidak ada order short, dan harga penutupan turun di bawah fraktal bawah, dan fraktal bawah berada di bawah garis Alligator.
  • Keluar dari posisi panjang: Jika harga penutupan turun di bawah rahang Alligator.
  • Keluar dari posisi short: Jika harga penutupan menembus Alligator’s Jaw.

Selanjutnya, mari kita lihat hasil backtest dari strategi operasi kekacauan sederhana ini. Untuk membuat pengujian ulang lebih mendekati lingkungan perdagangan riil, biaya transaksi ditetapkan dua kali lipat dari biaya bursa, dan slippage 2 lompatan ditambahkan untuk membuka dan menutup posisi. Tipe data untuk pengujian ulang adalah indeks rebar, tipe perdagangan adalah rebar utama kontinu, dan posisi pembukaan ditetapkan pada 1 lot. Di bawah ini adalah laporan kinerja uji ulang awal pada level 1 jam.

Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut Dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut

Dilihat dari kurva modal dan data kinerja uji ulang, strategi tersebut berkinerja baik dan kurva modal keseluruhan terus meningkat. Namun, karakteristik pasar tulangan telah berubah sejak akhir tahun 2016, dari tren unilateral dengan volatilitas tinggi sebelumnya menjadi berbagai fluktuasi. Dilihat dari kurva modal, laba jelas melemah sejak 2017.

Singkatnya, inti dari metode operasi chaos adalah menemukan titik balik. Anda tidak perlu khawatir tentang bagaimana pasar berjalan, atau apakah itu terobosan yang benar atau salah. Jika Anda menembus fraktal, Anda dapat masuk pasar secara langsung. Jangan pernah mencoba memprediksi pasar, tetapi jadilah pengamat dan pengikut.

3.2 Pengembangan strategi arbitrase CTA berdasarkan bahasa JavaScript

Dalam bukunya “The Alchemy of Finance” yang ditulis pada tahun 1987, Soros pernah mengemukakan proposisi penting: Saya percaya bahwa harga pasar selalu salah dalam artian bahwa harga tersebut bias terhadap masa depan. Ia berpendapat bahwa hipotesis efisiensi pasar hanyalah asumsi teoritis. Faktanya, pelaku pasar tidak selalu rasional, dan pada setiap titik waktu, tidak mungkin bagi para pelaku untuk memperoleh dan menafsirkan semua informasi secara objektif. Selain itu, meskipun informasi yang sama Informasi, tanggapan setiap orang berbeda-beda. Dengan kata lain, harga itu sendiri sudah mencakup ekspektasi keliru dari para pelaku pasar, sehingga harga pasar pada hakikatnya selalu salah. Ini mungkin menjadi sumber keuntungan bagi para pelaku arbitrase.

Berdasarkan prinsip-prinsip di atas, kita tahu bahwa dalam pasar berjangka yang tidak efisien, dampak pasar terhadap kontrak pengiriman di berbagai periode tidak selalu sinkron, dan harganya tidak sepenuhnya efektif. Kemudian, berdasarkan harga kontrak pengiriman subjek perdagangan yang sama dalam periode yang berbeda, jika ada perbedaan harga yang besar antara kedua harga tersebut, Anda dapat membeli dan menjual kontrak berjangka dari periode yang berbeda pada saat yang sama untuk melakukan arbitrase lintas periode.

Seperti komoditas berjangka, mata uang digital juga memiliki kombinasi kontrak arbitrase lintas periode yang terkait dengannya. Misalnya, di bursa OkEX, ada: ETC Mingguan, ETC Dua Mingguan, dan ETC Triwulanan. Misalnya, anggaplah perbedaan harga antara ETC mingguan dan ETC triwulanan tetap sekitar 5 untuk waktu yang lama. Jika selisihnya mencapai 7 pada suatu hari, kami perkirakan selisihnya akan kembali ke 5 pada suatu titik di masa mendatang. Selanjutnya Anda dapat menjual ETC setiap minggu dan membeli ETC setiap tiga bulan untuk memperpendek spread. sebaliknya.

Meskipun perbedaan harga ini ada, arbitrase manual sering kali melibatkan banyak ketidakpastian karena operasi manual yang memakan waktu, akurasi yang buruk, dan dampak perubahan harga. Pesona arbitrase kuantitatif terletak pada penangkapan peluang arbitrase melalui model kuantitatif dan perumusan strategi perdagangan arbitrase, serta penempatan perintah perdagangan secara otomatis ke bursa melalui algoritma terprogram, sehingga dapat menangkap peluang dengan cepat dan akurat serta memperoleh laba secara efisien dan stabil.

Kursus ini akan mengajarkan Anda cara menggunakan Platform Perdagangan Kuantitatif Inventor dan kontrak berjangka ETC di bursa OkEX dalam perdagangan mata uang digital, dan menggunakan strategi arbitrase sederhana untuk menunjukkan cara menangkap peluang arbitrase instan dan memanfaatkan setiap peluang untuk melihat Dapatkan keuntungan sambil melindungi dari kemungkinan risiko.

Membuat Strategi Arbitrase Lintas Periode Mata Uang Kripto Kesulitan: Normal Lingkungan Strategis

  • Subjek transaksi: Ethereum Classic (ETC)
  • Data perbedaan harga: ETC mingguan - ETC triwulanan (pengujian kointegrasi dihilangkan)
  • Siklus perdagangan: 5 menit
  • Pencocokan posisi: 1:1
  • Jenis transaksi: Produk yang sama lintas periode

Logika Strategi

  • Kondisi pembukaan spread panjang: Jika akun berjalan tidak memiliki posisi dan spread lebih kecil dari jalur boll bawah, ambil posisi panjang pada spread. Yaitu: beli ETC selama seminggu dan jual ETC selama seperempat tahun.
  • Ketentuan untuk membuka posisi short spread: Jika rekening giro tidak memiliki posisi dan spread lebih besar dari boll upper track, short spread. Yaitu: jual ETC selama seminggu dan beli ETC selama seperempat tahun.
  • Ketentuan untuk menutup spread panjang: Jika akun berjalan memiliki posisi panjang mingguan di ETC dan posisi pendek triwulanan di ETC, dan spread lebih besar dari jalur tengah boll, spread panjang akan ditutup. Yaitu: jual ETC selama seminggu dan beli ETC selama seperempat tahun.
  • Ketentuan untuk menutup spread short: Jika akun berjalan memiliki posisi short untuk ETC minggu ini dan posisi long untuk ETC pada kuartal ini, dan spread kurang dari jalur tengah boll, spread short akan ditutup. Yaitu: beli ETC selama seminggu dan jual ETC selama seperempat tahun.

Di atas adalah deskripsi sederhana tentang logika strategi arbitrase lintas periode mata uang digital. Jadi, bagaimana Anda menerapkan ide-ide Anda dalam program tersebut? Kami mencoba membangun kerangka kerja pada Platform Perdagangan Kuantitatif Inventor terlebih dahulu.

function Data() {}  // 基础数据函数
Data.prototype.mp = function () {}  // 持仓函数
Data.prototype.boll = function () {}  // 指标函数
Data.prototype.trade = function () {}  // 下单函数
Data.prototype.cancelOrders = function () {}  // 撤单函数
Data.prototype.isEven = function () {}  // 处理单只合约函数
Data.prototype.drawingChart = function () {}  // 画图函数

function onTick() {
    var data = new Data(tradeTypeA, tradeTypeB);  // 创建一个基础数据对象
    var accountStocks = data.accountData.Stocks;  // 账户余额
    var boll = data.boll(dataLength, timeCycle);  // 计算boll技术指标
    data.trade();  // 计算交易条件下单
    data.cancelOrders();  // 撤单
    data.drawingChart(boll);  // 画图
    data.isEven();  // 处理持有单个合约
}

//入口函数
function main() {
    while (true) {  // 进入轮询模式
        onTick();  // 执行onTick函数
        Sleep(500);  // 休眠0.5秒
    }
}

Bayangkan seperti apa proses transaksi kita dalam perdagangan pengawas? Tidak ada perbedaan mendasar dalam sistem perdagangan, tidak lebih dari: memperoleh data, menghitung data, menempatkan pesanan, dan memproses setelah menempatkan pesanan. Hal yang sama juga berlaku pada program. Pertama, program akan menjalankan fungsi utama pada baris 20. Ini adalah sebuah konvensi. Ketika program menyelesaikan praproses strategi perdagangan (jika ada), program akan memasuki mode loop tak terbatas, yaitu, mode Polling bulat. Dalam mode polling, fungsi onTick akan dijalankan berulang kali.

Kemudian pada fungsi onTick, kita memiliki proses perdagangan dalam perdagangan subjektif: pertama dapatkan data harga dasar, lalu dapatkan saldo akun, lalu hitung indikatornya, lalu mulailah menghitung kondisi perdagangan dan lakukan pemesanan, dan terakhir pemrosesan setelah menempatkan pesanan. pesanan, termasuk: Membatalkan pesanan, menggambar gambar, dan memproses kontrak tunggal.

Dengan membandingkan ide-ide strategis dan proses perdagangan, Anda dapat dengan mudah membangun kerangka strategi. Seluruh strategi dapat disederhanakan menjadi tiga langkah:

  • Pemrosesan pra-transaksi.
  • Mendapatkan dan menghitung data.
  • Tempatkan pesanan dan tangani tindak lanjutnya.

Setelah kerangka strategi perdagangan dibangun, Anda perlu mengisi kode detail yang diperlukan dalam kerangka strategi berdasarkan proses perdagangan aktual dan detail transaksi.

1. Pemrosesan pra-transaksi

1. Mendeklarasikan variabel global yang diperlukan

  • Nyatakan objek bagan untuk mengonfigurasi bagan var chart = {}
  • Panggil fungsi Bagan untuk menginisialisasi bagan var ObjChart = Chart ( chart )
  • Nyatakan array kosong untuk menyimpan urutan perbedaan harga var bars = []
  • Nyatakan variabel untuk merekam stempel waktu data historis var oldTime = 0

2. Konfigurasikan parameter eksternal strategi

var tradeTypeA = "this_week"; // 套利A合约
var tradeTypeB = "quarter"; // 套利B合约
var dataLength = 10; //指标周期长度
var timeCycle = 1; // K线周期
var name = "ETC"; // 币种
var unit = 1; // 下单量

3. Definisikan fungsi pemrosesan data

  • Fungsi data dasar: Data ( ) Buat konstruktor Data dan tentukan properti internalnya. Meliputi: data akun, data posisi, stempel waktu data K-line, harga bid/ask kontrak arbitrase A/B, dan spread arbitrase forward/reverse.
function Data(tradeTypeA, tradeTypeB) { // 传入套利A合约和套利B合约
    this.accountData = _C(exchange.GetAccount); // 获取账户信息
    this.positionData = _C(exchange.GetPosition); // 获取持仓信息
    var recordsData = _C(exchange.GetRecords); //获取K线数据
    exchange.SetContractType(tradeTypeA); // 订阅套利A合约
    var depthDataA = _C(exchange.GetDepth); // 套利A合约深度数据
    exchange.SetContractType(tradeTypeB); // 订阅套利B合约
    var depthDataB = _C(exchange.GetDepth); // 套利B合约深度数据
    this.time = recordsData[recordsData.length - 1].Time; // 获取最新数据时间
    this.askA = depthDataA.Asks[0].Price; // 套利A合约卖一价
    this.bidA = depthDataA.Bids[0].Price; // 套利A合约买一价
    this.askB = depthDataB.Asks[0].Price; // 套利B合约卖一价
    this.bidB = depthDataB.Bids[0].Price; // 套利B合约买一价
    // 正套价差(合约A卖一价 - 合约B买一价)
    this.basb = depthDataA.Asks[0].Price - depthDataB.Bids[0].Price;
    // 反套价差(合约A买一价 - 合约B卖一价)
    this.sabb = depthDataA.Bids[0].Price - depthDataB.Asks[0].Price;
}
  • Dapatkan fungsi posisi: mp ( ) Lintasi seluruh susunan posisi dan kembalikan jumlah posisi kontrak dan arah yang ditentukan. Jika tidak ada, kembalikan false
Data.prototype.mp = function (tradeType, type) {
    var positionData = this.positionData; // 获取持仓信息
    for (var i = 0; i < positionData.length; i++) {
        if (positionData[i].ContractType == tradeType) {
            if (positionData[i].Type == type) {
                if (positionData[i].Amount > 0) {
                    return positionData[i].Amount;
                }
            }
        }
    }
    return false;
}
  • Fungsi garis K dan indikator: boll ( ) Mensintesiskan sekuens K-line baru berdasarkan data sebaran arbitrase maju/terbalik. Dan mengembalikan data rel atas, rel tengah, dan rel bawah yang dihitung oleh indikator boll.
Data.prototype.boll = function (num, timeCycle) {
    var self = {}; // 临时对象
    // 正套价差和反套价差中间值
    self.Close = (this.basb + this.sabb) / 2;
    if (this.timeA == this.timeB) {
        self.Time = this.time;
    } // 对比两个深度数据时间戳
    if (this.time - oldTime > timeCycle * 60000) {
        bars.push(self);
        oldTime = this.time;
    } // 根据指定时间周期,在K线数组里面传入价差数据对象
    if (bars.length > num * 2) {
        bars.shift(); // 控制K线数组长度
    } else {
        return;
    }
    var boll = TA.BOLL(bars, num, 2); // 调用talib库中的boll指标
    return {
        up: boll[0][boll[0].length - 1], // boll指标上轨
        middle: boll[1][boll[1].length - 1], // boll指标中轨
        down: boll[2][boll[2].length - 1] // boll指标下轨
    } // 返回一个处理好的boll指标数据
}
  • Fungsi pesanan: perdagangan ( ) Masukkan nama kontrak pesanan dan jenis pesanan, lalu tempatkan pesanan pada harga pertimbangan, dan kembalikan hasilnya setelah tempatkan pesanan. Karena perlu menempatkan dua pesanan ke arah berbeda pada saat yang sama, harga beli/jual dikonversi dalam fungsi sesuai dengan nama kontrak pesanan.
Data.prototype.trade = function (tradeType, type) {
    exchange.SetContractType(tradeType); // 下单前先重新订阅合约
    var askPrice, bidPrice;
    if (tradeType == tradeTypeA) { // 如果是A合约下单
        askPrice = this.askA; // 设置askPrice
        bidPrice = this.bidA; // 设置bidPrice
    } else if (tradeType == tradeTypeB) { // 如果是B合约下单
        askPrice = this.askB; // 设置askPrice
        bidPrice = this.bidB; // 设置bidPrice
    }
    switch (type) { // 匹配下单模式
        case "buy":
            exchange.SetDirection(type); // 设置下单模式
            return exchange.Buy(askPrice, unit);
        case "sell":
            exchange.SetDirection(type); // 设置下单模式
            return exchange.Sell(bidPrice, unit);
        case "closebuy":
            exchange.SetDirection(type); // 设置下单模式
            return exchange.Sell(bidPrice, unit);
        case "closesell":
            exchange.SetDirection(type); // 设置下单模式
            return exchange.Buy(askPrice, unit);
        default:
            return false;
    }
}
  • Fungsi pembatalan pesanan: cancelOrders() Dapatkan serangkaian pesanan yang tidak terpenuhi dan batalkan satu per satu. Dan jika ada pesanan yang tidak terpenuhi, maka akan mengembalikan nilai false, dan jika tidak ada pesanan yang tidak terpenuhi, maka akan mengembalikan nilai true.
Data.prototype.cancelOrders = function () {
    Sleep(500); // 撤单前先延时,因为有些交易所你懂的
    var orders = _C(exchange.GetOrders); // 获取未成交订单数组
    if (orders.length > 0) { // 如果有未成交的订单
        for (var i = 0; i < orders.length; i++) { //遍历未成交订单数组
            exchange.CancelOrder(orders[i].Id); //逐个取消未成交的订单
            Sleep(500); //延时0.5秒
        }
        return false; // 如果取消了未成交的单子就返回false
    }
    return true; //如果没有未成交的订单就返回true
}
  • Menangani penyimpanan satu kontrak: isEven() Saat berhadapan dengan situasi single-leg dalam perdagangan arbitrase, kami cukup menutup semua posisi