Sumber dimuat naik... memuat...

Dari Perdagangan Kuantitatif ke Pengurusan Aset - Pembangunan Strategi CTA untuk Pulangan Absolut

Penulis:FMZ~Lydia, Dicipta: 2023-02-07 09:58:41, Dikemas kini: 2023-09-18 20:25:11

img

Dari Perdagangan Kuantitatif ke Pengurusan Aset - Pembangunan Strategi CTA untuk Pulangan Absolut

Pengantar

Kenapa saya perlu mengambil kursus ini?

Apa yang anda peroleh dengan mengambil kursus ini? Pertama sekali, kursus ini berdasarkan bahasa pengaturcaraan JavaScript dan Python. Bahasa hanyalah teknologi. Akhirnya, kita harus menerapkan teknologi ini ke dalam industri. Perdagangan kuantitatif adalah industri yang sedang berkembang, yang kini berada dalam peringkat pembangunan pesat dan mempunyai permintaan yang besar untuk bakat.

Melalui pembelajaran yang sistematik kursus ini, anda boleh mempunyai pemahaman yang lebih mendalam tentang bidang perdagangan kuantitatif. Jika anda seorang pelajar yang bersedia untuk memasuki bidang perdagangan kuantitatif, ia juga akan membantu anda. Jika anda seorang peminat pelaburan saham atau niaga hadapan, maka perdagangan kuantitatif boleh membantu perdagangan subjektif anda. Dengan membangunkan strategi perdagangan, anda boleh memperoleh keuntungan di pasaran kewangan, dan juga memperluaskan saluran dan platform untuk pelaburan dan pengurusan kewangan anda.

Sebelum itu, izinkan saya bercakap tentang pengalaman perdagangan peribadi saya. Saya bukan jurusan kewangan, saya belajar statistik. Pada mulanya, saya mula berdagang saham secara subjektif pada hari-hari sekolah saya. Kemudian, saya menjadi pengamal perdagangan kuantitatif dana ekuiti persendirian domestik, terutamanya terlibat dalam penyelidikan strategi dan pembangunan strategi.

Saya telah berdagang dalam bulatan ini selama lebih daripada sepuluh tahun, dan telah membangunkan pelbagai jenis strategi. Falsafah pelaburan saya adalah: kawalan risiko di atas segalanya dan memberi tumpuan kepada pulangan mutlak. Topik topik kami adalah: dari perdagangan kuantitatif kepada pengurusan aset - pembangunan strategi CTA untuk pulangan mutlak.

1. Strategi CTA Masa hadapan Logik membuat wang

1.1 Memahami CTA Masa Depan

Seseorang mungkin bertanya apa itu CTA? Apa sebenarnya CTA? CTA dipanggil penasihat perdagangan komoditi di negara asing dan pengurus pelaburan di China. CTA tradisional adalah untuk mengumpul dana majoriti pelabur, kemudian mempercayakan mereka kepada institusi pelaburan profesional, dan akhirnya melabur dalam niaga hadapan indeks saham, niaga hadapan komoditi, dan niaga hadapan bon perbendaharaan melalui penasihat perdagangan (yaitu CTA).

Tetapi sebenarnya, dengan perkembangan dan pengembangan berterusan pasaran niaga hadapan global, konsep CTA juga berkembang, dan skopnya jauh melampaui niaga hadapan tradisional. Ia boleh melabur bukan sahaja di pasaran niaga hadapan, tetapi juga di pasaran kadar faedah, pasaran saham, pasaran pertukaran asing dan pasaran opsyen. Selagi terdapat sejumlah data sejarah untuk pelbagai ini, ia boleh membangunkan strategi CTA yang sesuai berdasarkan data sejarah ini.

Pada awal tahun 1980-an, teknologi perdagangan elektronik belum matang. Pada masa itu, kebanyakan peniaga menilai trend masa depan niaga hadapan komoditi dengan menggambar petunjuk teknikal secara manual, seperti indeks William, KDJ, RSI, MACD, CCI, dll. Kemudian, peniaga menubuhkan dana CTA khas untuk membantu pelanggan menguruskan aset.

Perubahan dalam saiz pengurusan dana CTA

img

Dalam berbilion dolar

Mari kita lihat carta di atas. Terutama dengan peningkatan perdagangan kuantitatif, skala dana CTA global telah meningkat dari AS $ 130.6 bilion pada tahun 2005 kepada lebih daripada AS $ 300 bilion pada tahun 2015.

Dari akhir tahun 1979 hingga akhir tahun 2016, pengembalian kumulatif Barclay CTA Fund Index adalah sehingga 28.95 kali, pulangan tahunan adalah 9.59%, nisbah Sharp adalah 0.37, dan pengeluaran maksimum adalah 15.66%.

Kerana dalam portfolio peruntukan aset, strategi CTA biasanya mengekalkan korelasi yang sangat rendah dengan strategi lain. Seperti yang ditunjukkan dalam bulatan merah di bawah, semasa pasaran beruang saham global dari 2000 hingga 2002 dan krisis subprime global pada tahun 2008, indeks dana Barclay CTA bukan sahaja tidak jatuh tetapi juga mencapai pulangan positif. Apabila pasaran saham dan pasaran bon berada dalam krisis, CTA dapat memberikan pulangan yang kuat. Di samping itu, kita dapat melihat bahawa tahap keuntungan Barclay Commodity CTA Index sejak tahun 1980 lebih kuat daripada S&P 500, dan penarikan balik juga jauh lebih rendah daripada S&P 500.

img

Perkembangan CTA di China hanya dalam tempoh sepuluh tahun yang lalu, tetapi momentumnya sangat kuat. Ini kebanyakannya disebabkan oleh persekitaran perdagangan berjangka komoditi domestik yang agak terbuka, ambang dasar perdagangan yang rendah, penggunaan sistem margin untuk berdagang dalam kedua-dua kedudukan panjang dan pendek, kos transaksi yang rendah, struktur teknikal bursa yang lebih maju berbanding saham, dan perdagangan sistem yang lebih mudah.

Sejak tahun 2010, dana CTA terutamanya wujud dalam bentuk dana persendirian. Dengan pembukaan secara beransur-ansur skop pelaburan akaun khas dana dalam dasar domestik, dana CTA mula wujud dalam bentuk akaun khas dana. Mod operasi yang lebih telus dan terbuka juga menjadi alat yang diperlukan bagi lebih banyak pelabur untuk memperuntukkan aset.

Strategi CTA juga lebih sesuai untuk peniaga individu daripada strategi perdagangan lain dari segi kemudahan kemasukan, ambang modal, pelaksanaan strategi perdagangan, dan sambungan API. Kontrak niaga hadapan domestik sangat kecil. Sebagai contoh, tepung jagung atau soya boleh diperdagangkan dengan harga ribuan yuan, dan hampir tidak ada ambang modal. Di samping itu, kerana beberapa strategi CTA berasal dari analisis teknikal tradisional, ia agak mudah berbanding dengan strategi lain.

Proses reka bentuk strategi CTA juga agak mudah. Pertama, data sejarah diproses pada mulanya, dan kemudian input ke dalam model kuantitatif. Model kuantitatif termasuk strategi perdagangan yang dibentuk oleh pemodelan matematik, reka bentuk pengaturcaraan dan alat lain, dan isyarat perdagangan dihasilkan dengan mengira dan menganalisis data ini.

1.2 Jenis strategi CTA niaga hadapan

Dari perspektif strategi perdagangan, strategi CTA juga pelbagai: ia boleh menjadi strategi trend atau strategi arbitraj; Ia boleh menjadi strategi jangka panjang jangka menengah dan panjang, atau strategi jangka pendek intraday; Logik strategi boleh berdasarkan analisis teknikal atau analisis asas; Ia boleh menjadi transaksi subjektif atau transaksi sistem.

Strategi CTA mempunyai kaedah klasifikasi yang berbeza. Menurut kaedah urus niaga, ia boleh dibahagikan kepada urus niaga subjektif dan urus niaga sistem. Perkembangan strategi CTA asing agak maju, dan strategi CTA urus niaga sistem telah hampir 100%. Menurut kaedah analisis, ia boleh dibahagikan kepada analisis asas dan analisis teknikal. Menurut sumber pendapatan, ia boleh dibahagikan kepada perdagangan trend dan perdagangan osilator.

Secara amnya, strategi CTA menyumbang kira-kira 70% daripada jumlah pasaran dagangan, strategi trend menyumbang kira-kira 25%, dan strategi counter trend atau strategi pembalikan trend menyumbang kira-kira 5%. Di antara mereka, strategi trend dengan bahagian terbesar boleh dibahagikan kepada perdagangan frekuensi tinggi, perdagangan dalam hari, perdagangan jangka pendek dan sederhana, dan perdagangan jangka menengah dan panjang mengikut tempoh kedudukan.

Strategi pembuatan pasaran frekuensi tinggi

Pada masa ini, terdapat dua strategi perdagangan frekuensi tinggi utama di pasaran: satu adalah strategi pembuatan pasaran frekuensi tinggi, yang lain adalah strategi arbitrase frekuensi tinggi. Strategi pembuatan pasaran adalah untuk menyediakan kecairan di pasaran perdagangan. Maksudnya, di pasaran perdagangan dengan pembuat pasaran, jika seseorang ingin berdagang, pembuat pasaran mesti memastikan bahawa pesanan mereka dapat diperdagangkan. Jika tidak ada kecairan yang mencukupi di pasaran dan pesanan tidak dapat diperdagangkan, pembuat pasaran mesti membeli atau menjual pesanan pihak lawan.

Strategi Arbitraj Frekuensi Tinggi

Arbitraj frekuensi tinggi merujuk kepada perdagangan dua saham atau ETF dan portfolio ETF yang berkorelasi tinggi. Menurut kaedah pengiraan ETF, harga yang dijangkakan ETF boleh dikira dengan cara yang sama. Harga indeks ETF boleh mengurangkan harga yang dijangkakan ETF untuk mendapatkan perbezaan harga. Biasanya, perbezaan harga akan berjalan dalam saluran harga. Jika perbezaan harga menembusi saluran atas dan bawah, anda boleh berdagang perbezaan harga, menunggu pulangan perbezaan harga, dan memperoleh pendapatan daripadanya.

Strategi intraday

Dalam erti kata, selagi tidak ada kedudukan semalaman, ia boleh dipanggil strategi dagangan intraday. Oleh kerana tempoh pemegang dagangan intraday yang pendek, biasanya tidak mungkin untuk membuat keuntungan segera setelah memasuki pasaran, dan kemudian keluar dari pasaran dengan cepat. Oleh itu, mod perdagangan ini mempunyai risiko pasaran yang rendah. Walau bagaimanapun, kerana pasaran berubah dengan cepat dalam jangka masa yang singkat, strategi intraday biasanya mempunyai keperluan yang lebih tinggi untuk peniaga.

Strategi jangka sederhana dan panjang

Secara teori, semakin lama tempoh pegangan, semakin besar kapasiti strategik dan semakin rendah nisbah risiko-pengembalian. Terutamanya dalam urus niaga institusi, kerana kapasiti yang terhad strategi jangka pendek, dana besar tidak dapat memasuki dan keluar dari pasaran dalam jangka masa yang singkat, strategi jangka panjang akan diperuntukkan. Secara amnya, tempoh kedudukan adalah beberapa hari dan bulan, atau lebih lama.

Data strategi CTA

Secara amnya, strategi CTA dikaji dengan data minit, jam dan harian, yang termasuk: harga pembukaan, harga tertinggi, harga terendah, harga penutupan, jumlah dagangan, dll. Hanya beberapa strategi CTA akan menggunakan data Tick, seperti harga beli, harga jual, jumlah beli, jumlah jual dan data mendalam lain dalam data L2.

Bagi idea asas strategi CTA, perkara pertama yang kita fikirkan adalah berdasarkan kepada penunjuk teknikal tradisional, kerana terdapat banyak bahan rujukan awam dalam bidang ini, dan logiknya biasanya sederhana, yang kebanyakannya berdasarkan prinsip statistik.

Terdapat juga beberapa model perdagangan klasik di pasaran, yang juga boleh digunakan untuk rujukan dan dipertingkatkan, termasuk: gabungan purata bergerak berganda, DualThrust, R-Breaker, kaedah perdagangan Turtle, kaedah perdagangan grid, dll.

Semua ini adalah strategi dagangan berdasarkan analisis teknikal tradisional. Prosesnya adalah untuk mengekstrak faktor atau keadaan dagangan dengan kelebihan kebarangkalian mengikut data sejarah dan konsep dagangan yang betul, dan menganggap bahawa pasaran masih akan mempunyai undang-undang sedemikian pada masa akan datang. Akhirnya, strategi dagangan direalisasikan oleh kod dan perdagangan automatik sepenuhnya. Buka kedudukan, hentikan keuntungan, hentikan kerugian, meningkatkan kedudukan, mengurangkan kedudukan, dll, yang umumnya tidak memerlukan campur tangan manual. Sebenarnya, ini adalah strategi membeli pemenang dengan menggunakan pekali auto-korrelasi positif siri masa harga.

Kelebihan terbesar strategi CTA adalah bahawa tidak kira sama ada pasaran semasa naik atau turun, ia boleh memperoleh pulangan mutlak, terutamanya apabila pasaran berubah dengan cepat, atau trend pasaran jelas lancar, kelebihan strategi adalah jelas, singkatnya, jika ada trend, ada keuntungan. Walau bagaimanapun, jika pasaran berada dalam keadaan tidak menentu atau trend tidak jelas, strategi boleh membeli pada titik tinggi dan menjual pada titik rendah, dan menghentikan kerugian bolak-balik.

1.3 Prinsip keuntungan strategi CTA niaga hadapan

Strategi niaga hadapan CTA menguntungkan terutamanya kerana perkara berikut:

    1. Terdapat refleksi dalam trend harga, yang sentiasa berterusan dengan cara trend. Apabila pelabur memerhatikan bahawa harga meningkat, mereka akan mengikuti trend dan membeli, mengakibatkan kenaikan harga yang lebih lanjut. Begitu juga dengan penurunan harga. Kerana pelabur lebih tidak rasional, kadang-kadang kita dapat melihat bahawa harga meningkat secara tidak normal dan jatuh secara tidak normal.
    1. Setiap pelabur mempunyai toleransi asimetrik untuk nisbah keuntungan terhadap kerugian dan toleransi risiko yang berbeza. Bagi kebanyakan pelabur runcit, mereka lebih cenderung memilih kaedah perdagangan homeopati yang lebih konservatif, dan pasaran juga lebih terdedah kepada trend.
    1. Pembentukan harga ditentukan oleh urus niaga. Memang benar bahawa urus niaga didorong oleh orang, tetapi sifat manusia sukar diubah. Inilah sebabnya mengapa corak tetap akan berulang. Strategi ini berkesan dalam pengujian balik data sejarah, yang menunjukkan bahawa ia juga mungkin berkesan di masa depan.

Di samping itu, ciri perdagangan trend tracking adalah kehilangan sejumlah kecil wang apabila tidak ada pasaran, dan membuat kekayaan yang besar apabila pasaran datang. Walau bagaimanapun, orang yang telah melakukan perdagangan tahu bahawa pasaran adalah tidak menentu kebanyakan masa, dan hanya dalam masa yang singkat adalah pasaran trend. Oleh itu, strategi trend tracking mempunyai kadar kemenangan yang rendah dalam perdagangan, tetapi keuntungan dan kerugian keseluruhan setiap transaksi agak besar.

Oleh kerana strategi penjejakan trend tidak stabil dari segi pendapatan, banyak institusi pelaburan akan menggunakan pelbagai jenis dan strategi untuk membina portfolio, yang juga akan dikonfigurasikan dengan sejumlah strategi pembalikan.

Hubungan antara CTA dan aset tradisional

img

Kita lihat carta di atas. Secara teori, pelbagai strategi dengan gaya yang berbeza atau korelasi yang agak rendah kadang-kadang akan memberi isyarat perdagangan yang sama dan kadang-kadang berbeza pada masa yang sama apabila menghadapi pelbagai perubahan dalam harga pasaran.

Dari sudut pandang di atas, dapat disimpulkan bahawa lebih baik untuk membangunkan beberapa sub-strategi sederhana daripada membangunkan strategi utama. Bagaimana untuk mengawal strategi ini? Di sini kita boleh belajar dari algoritma hutan rawak dalam pembelajaran mesin. Hutan rawak bukan algoritma bebas, ia adalah kerangka keputusan yang mengandungi beberapa pokok keputusan. Ia bersamaan dengan strategi induk di atas sub-strategi pokok keputusan. Kluster substrategi diatur dan dikawal melalui strategi induk.

Seterusnya, kita perlu merancang strategi induk. Kita boleh menilai kecairan, keuntungan dan kestabilan setiap jenis dalam keseluruhan pasaran niaga hadapan komoditi untuk menyaring portfolio pelbagai niaga hadapan komoditi dengan turun naik pendapatan yang rendah, dan kemudian menjalankan penyaring netral industri, mengurangkan lagi turun naik keseluruhan melalui penyebaran industri portfolio, dan akhirnya membina portfolio pelbagai jenis komoditi masa hadapan sebenar melalui pencocokan nilai pasaran untuk perdagangan.

Setiap varieti juga boleh dikonfigurasi dengan strategi pelbagai parameter, dan ia boleh memilih kombinasi parameter dengan prestasi yang baik dalam backtest. Apabila trend pasaran jelas, strategi pelbagai parameter umumnya akan berfungsi secara konsisten, yang bersamaan dengan menambah kedudukan; Apabila pasaran berada dalam keadaan tidak menentu, prestasi pelbagai set strategi parameter biasanya tidak konsisten, sehingga mereka dapat melindungi risiko dengan masing-masing pergi panjang atau pendek, yang bersamaan dengan mengurangkan kedudukan. Ini dapat mengurangkan lagi kadar backtest maksimum portfolio, sambil mengekalkan kadar pulangan keseluruhan tidak berubah.

2. contoh strategi CTA niaga hadapan klasik

Newton pernah berkata: Jika saya melihat lebih jauh daripada orang lain, itu kerana saya berdiri di atas bahu gergasi.

Strategi CTA yang tersedia secara terbuka di pasaran termasuk strategi SMA, strategi Bollinger band, peraturan perdagangan penyu, strategi momentum, strategi arbitrage, dan sebagainya. Strategi perdagangan kuantitatif mempunyai satu ciri, iaitu, mereka akan perlahan-lahan gagal sebaik sahaja mereka diumumkan kepada umum. Tetapi ini tidak mempengaruhi kita untuk belajar dari strategi ini dan belajar dari intipati mereka, supaya kita dapat menyelesaikan masalah di atas bahu gergasi.

2.1 Analisis asas niaga hadapan (simpanan, perbezaan asas, harga)

Analisis asas tidak perlu mengambil berat tentang trend harga jangka pendek. Ia dipercayai bahawa nilai akan tercermin dalam harga akhirnya. Ia lebih mengenai menganalisis faktor-faktor di sebalik harga untuk menentukan berapa banyak jenisnya bernilai. Secara amnya, kaedah analisis atas ke bawah digunakan: dari faktor makro, faktor jenis dan faktor lain.

img

Kita dapat melihat dari carta di atas bahawa terdapat banyak faktor yang mempengaruhi harga komoditi, dan data ini sentiasa berubah.

Sebenarnya, analisis asas niaga hadapan komoditi bukan untuk menganalisis semua faktor. kita hanya perlu memahami unsur-unsur teras analisis asas untuk mengetahui peraturan dari maklumat yang kompleks.

Faktor makro

Data makroekonomi adalah kompleks dan berubah-ubah. Setiap hari, setiap saat, terdapat banyak data ekonomi yang diterbitkan, dari politik nasional, bank pusat, bank pelaburan, rasmi dan tidak rasmi. Selain krisis politik dan ekonomi, analisis makro adalah bahan yang baik untuk berbual, tetapi tidak praktikal. Peter Lynch, pakar pengurusan dana terkenal di Amerika Syarikat, pernah berkata: Saya menghabiskan tidak lebih daripada 15 minit untuk menganalisis keadaan ekonomi setiap tahun.

Faktor kepelbagaian

Dalam analisis asas, analisis kepelbagaian terutamanya untuk menganalisis premium dan diskaun, hubungan bekalan dan permintaan, inventori komoditi, keuntungan industri, dll. Boleh dikatakan bahawa menguasai analisis faktor kepelbagaian niaga hadapan komoditi dapat menilai kebanyakan trend pasaran.

Seperti yang diketahui oleh rakan-rakan yang telah melakukan niaga hadapan, niaga hadapan komoditi domestik boleh dibahagikan kepada produk perindustrian dan produk pertanian. Kaedah analisis produk perindustrian dan produk pertanian berbeza. Kami akan menerangkan dua aspek bekalan dan permintaan. Dalam produk perindustrian, bekalan agak stabil. Kecuali terdapat terobosan teknologi utama, kapasiti pengeluaran tidak mungkin berubah dengan ketara dalam jangka masa yang singkat. Oleh itu, faktor utama yang mempengaruhi harga produk perindustrian adalah permintaan. Permintaan untuk produk pertanian agak stabil. Dalam jangka panjang, permintaan untuk produk pertanian berubah, tetapi dalam jangka pendek, permintaan untuk produk pertanian cenderung stabil, jadi faktor utama yang mempengaruhi harga produk pertanian adalah bekalan.

Oleh itu, menurut undang-undang ekonomi, hubungan antara bekalan dan permintaan yang menentukan harga barangan akhirnya. Secara teori, selagi data bekalan dan permintaan dapat diperoleh, harga barangan masa depan dapat ditentukan. Untuk produk perindustrian, data bekalan mudah diperoleh, tetapi sukar untuk mendapatkan data permintaan. Untuk produk pertanian, data permintaan mudah diperoleh, dan sukar untuk mendapatkan data bekalan.

Sebenarnya, kita boleh mengurangkan lagi. Hasil bersama bekalan dan permintaan di pasaran ekonomi adalah inventori. Kita boleh menilai kekuatan hubungan antara bekalan pasaran dan permintaan melalui data inventori. Jika inventori komoditi sangat tinggi, ini bermakna bekalan pasaran lebih besar daripada permintaan, dan harga komoditi akan menurun dengan premis bahawa keadaan luaran tidak berubah. Jika inventori komoditi sangat rendah, ini bermakna permintaan pasaran lebih besar daripada bekalan, dan harga komoditi akan meningkat dengan premis bahawa keadaan luaran tidak berubah.

Selain menganalisis inventori komoditi, kita juga perlu menganalisis perbezaan harga antara pasaran spot dan pasaran niaga hadapan, yang juga dipanggil perbezaan asas. Jika harga niaga hadapan lebih besar daripada harga spot, kita memanggilnya premium niaga hadapan; Jika harga niaga hadapan kurang dari harga spot, kita memanggilnya diskaun niaga hadapan. Menurut sistem penghantaran niaga hadapan, pada tarikh penghantaran niaga hadapan, harga niaga hadapan harus sama dengan harga spot.

Tidak kira premium atau diskaun, kerana kekangan sistem penghantaran niaga hadapan, harga niaga hadapan pada tarikh penghantaran harus sama dengan harga spot dalam teori. Apabila tarikh penghantaran mendekati, kedua-dua harga spot dan harga niaga hadapan akan cenderung konsisten. Satu adalah pengembalian niaga hadapan ke spot, dan yang lain adalah pengembalian spot ke niaga hadapan.

Menurut prinsip di atas, kita boleh menggunakan inventori dan perbezaan asas untuk menentukan harga niaga hadapan pada masa yang sama. Jika inventori komoditi rendah, dan jika harga niaga hadapan jauh lebih rendah daripada harga spot, kita boleh menilai bahawa permintaan pasaran spot lebih besar daripada bekalan, dan kebarangkalian harga spot meningkat pada masa akan datang adalah besar; juga disebabkan oleh sistem penghantaran niaga hadapan, apabila tarikh penghantaran mendekati, harga niaga hadapan akan meningkat, dan ia akan sama dengan harga spot. Kebarangkalian kenaikan harga niaga hadapan adalah lebih besar pada masa akan datang.

Akhirnya, kita menilai arah harga mungkin masa depan melalui perbezaan inventori dan asas, tetapi tidak ada titik yang tepat untuk membeli dan menjual, jadi kita perlu bekerjasama dengan analisis teknikal untuk memberikan isyarat masuk dan keluar yang jelas. Struktur keseluruhan analisis asas adalah: stok rendah + diskaun mendalam + analisis teknikal isyarat kedudukan panjang = pergi panjang; Inventori tinggi + premium yang besar + analisis teknikal isyarat kedudukan pendek = pergi pendek.

2.2 Peraturan perdagangan penyu

Apabila datang kepada strategi perdagangan, kita perlu bercakap tentang peraturan perdagangan penyu perwakilan. Peraturan perdagangan penyu berasal dari eksperimen yang paling terkenal dalam sejarah perdagangan. Richard Dennis, seorang spekulator komoditi, ingin tahu sama ada peniaga hebat dilahirkan atau dilatih. Untuk tujuan ini, pada tahun 1983, dia merekrut 13 orang dan mengajar mereka konsep asas perdagangan niaga hadapan, serta kaedah dan prinsip dagangan sendiri. Pelajar-pelajar ini dipanggil turtles.

Dalam empat tahun berikutnya, penyu mencapai purata faedah komposit tahunan sebanyak 80%. Dennis membuktikan bahawa dengan sistem dan peraturan yang mudah, orang yang mempunyai sedikit atau tidak ada pengalaman perdagangan boleh menjadi peniaga yang sangat baik. Walau bagaimanapun, beberapa penyu menjual peraturan perdagangan penyu di laman web untuk keuntungan. Untuk mencegah tingkah laku ini, dua penyu asal, Curtis Firth dan Arthur Maddock, memutuskan untuk membuat peraturan perdagangan penyu tersedia untuk orang ramai secara percuma di laman web.

Selepas kebenaran keluar, orang mendapati bahawa peraturan perdagangan Turtle mengamalkan saluran Donchian yang dioptimumkan dan menggunakan penunjuk ATR untuk pengurusan kedudukan.

Prinsip asas penyu

  • Menguasai kelebihan: cari strategi perdagangan dengan harapan positif, kerana dalam jangka panjang, ia boleh menghasilkan pulangan positif.
  • Mengurus risiko: mengawal risiko dan memegang kedudukan anda, jika tidak, anda mungkin tidak menunggu sehari untuk membuat keuntungan.
  • Ketekunan: Hanya dengan melaksanakan strategi anda dengan teguh, anda benar-benar dapat mencapai hasil yang sistematik.
  • Sederhana dan jelas: Dalam jangka panjang, sistem yang mudah mempunyai lebih banyak daya daripada sistem yang kompleks.

Jadi seterusnya, mari kita lihat apa peraturan perdagangan Turtle mengatakan.

  1. Pasaran - apa yang perlu dibeli dan dijual, pada dasarnya di mana pasaran untuk berdagang. Penyu adalah peniaga niaga hadapan. Mereka memilih pasaran dengan jumlah perdagangan yang besar dan kecairan yang tinggi sahaja. Kerana memilih pasaran dengan perdagangan tidak aktif akan meningkatkan pergeseran tambahan kemasukan dan keluar, dan juga akan kehilangan banyak peluang trend.
  2. Ukuran kedudukan - berapa banyak untuk membeli atau menjual adalah bahagian yang sangat penting dari keseluruhan strategi, yang biasanya diabaikan atau diperlakukan dengan salah oleh kebanyakan orang. Peraturan perdagangan penyu mengamalkan ATR, iaitu indeks turun naik sebenar purata, untuk mengira kedudukan terbuka, meningkatkan isyarat kedudukan dan isyarat stop loss. Ini adalah reka bentuk yang sangat cerdik. Niat asal adalah untuk menyesuaikan saiz kedudukan melalui turun naik mutlak pasaran. Apabila turun naik pasaran kuat, mengurangkan kedudukan, dan apabila turun naik pasaran lemah, meningkatkan kedudukan. Ia mula-mula menentukan unit yang rumusnya adalah: (jumlah aset * 1%) / ATR. Posisi awal adalah 1 unit. Walaupun penurunan pelbagai pada hari itu mencapai tahap ATR, kerugian pada hari itu boleh dikawal dalam 1% daripada jumlah aset. Jika harga naik 0.5 unit, kedudukan panjang akan meningkat 1 unit, sehingga 4 unit.
  3. Masuk pasaran - Masuk pasaran Turtle berdasarkan saluran Donchian. Apabila harga naik di atas harga tertinggi dari 20 atau 55 K garis pertama, ia akan memasuki pasaran untuk pergi lama. Apabila harga jatuh di bawah harga terendah dari 20 atau 55 K baris pertama, ia akan memasuki pasaran untuk pergi pendek. Apabila isyarat muncul, masuk ke pasaran untuk berdagang, tanpa menunggu penutupan atau K-line seterusnya.
  4. Stop loss - Dalam jangka masa panjang, transaksi yang tidak menghentikan kerugian tidak akan berjaya, tetapi kebanyakan peniaga memegang kedudukan kerugian dan cuba mengambil peluang untuk berharap pasaran akan berbalik. Peraturan penyu menetapkan bila untuk menarik diri dari kedudukan kerugian dengan ketat. Jika anda memegang pesanan kedudukan panjang dan harga turun 2 unit, kedudukan panjang ditutup dengan stop loss. Jika anda memegang pesanan kedudukan pendek dan harga naik 2 unit, kedudukan pendek akan ditutup dengan stop loss.
  5. Hentikan keuntungan - Dalam peraturan Turtle, hentikan keuntungan bermaksud kehilangan banyak keuntungan terapung, yang juga merupakan bahagian yang tidak dapat diterima bagi banyak peniaga. Jika anda kini memegang pesanan kedudukan panjang dan harga jatuh di bawah trek saluran Donchian sepuluh hari, tutup semua pesanan panjang; Jika pesanan kedudukan pendek semasa diadakan dan harga naik di atas trek saluran Donchian sepuluh hari, tutup semua kedudukan pendek.

Oleh itu, kita dapat melihat bahawa walaupun peraturan perdagangan Penyu kelihatan sangat mudah, sebenarnya ia telah membentuk rasa sebenar prototaip sistem perdagangan. ia merangkumi semua aspek sistem perdagangan yang lengkap, tidak meninggalkan ruang bagi peniaga untuk membuat keputusan imajinasi subjektif, yang hanya membuat kelebihan operasi yang diprogramkan sistem bermain, termasuk: peraturan kemasukan dan keluar, pengurusan dana dan kawalan risiko, dll.

Kelebihan terbesar kaedah perdagangan penyu adalah untuk membantu kita menubuhkan satu set kaedah perdagangan yang berkesan. Ia adalah gabungan pembukaan batch, keuntungan berhenti dinamik dan kerugian berhenti, dan strategi trend berikut pasaran, terutamanya penggunaan nilai ATR dan konsep pengurusan kedudukan, yang sangat bernilai dipelajari. Sudah tentu, ia juga mempunyai masalah biasa dengan strategi penjejakan trend, iaitu keuntungan terapung dan mengambil kembali. Kemungkinan semua keuntungan terapung yang diperoleh dari membeli pemenang akan diambil kerana gelombang kejatuhan yang mendadak berikutnya. Ia sangat kuat dalam trend umum, dan tidak sebaik yang diharapkan dalam pasaran yang tidak menentu.

3. Membangunkan strategi CTA masa depan dalam amalan

3.1 Pembangunan strategi trend CTA berdasarkan MyLanguage

Pada akhir abad yang lalu, kaedah perdagangan yang sangat menakjubkan mula berlaku di bidang pelaburan kewangan di Amerika Syarikat. Selepas beribu-ribu orang berlatih, orang mendapati bahawa kaedah ini mempunyai keberkesanan dan nilai praktikal yang besar. Pada masa yang sama, ia telah diiktiraf oleh banyak pakar pelaburan dan peniaga profesional. Sehingga kini, ia boleh digunakan untuk hampir semua bidang pelaburan kewangan dengan sempurna, sama ada pertukaran asing, emas, saham, niaga hadapan, minyak mentah, atau indeks dan bon, yang merupakan kaedah operasi huru-hara.

Kata huru-hara merujuk kepada penerangan keadaan huru-hara alam semesta pada asalnya. Ideanya adalah bahawa hasilnya tidak dapat dielakkan, tetapi kerana pengetahuan yang ada tidak dapat mengira hasilnya, kerana pengiraan itu sendiri juga mengubah hasilnya, hasil maksimum atau minimum akhirnya mungkin muncul, tetapi tidak ada hasil yang tidak dapat dielakkan. Ini sangat serupa dengan pasaran perdagangan. Peserta juga mengubah pasaran ketika mereka menganalisis pasaran dan membeli dan menjual. Pasaran mempunyai perubahan abadi. Apabila peserta memahami bentuk baru pasaran, pasaran juga memahami bahawa ia diiktiraf oleh peserta, jadi variasi berlaku. Dan ia akan cenderung berubah ke arah yang tidak diketahui oleh peserta. Ia mempunyai kebijaksanaan yang cukup untuk menghalang peserta daripada menangkap peraturan perubahannya, iaitu, pasaran tidak stabil, dan pemahaman masa lalu pasaran tidak dapat mewakili masa depan.

Kaedah operasi huru-hara adalah satu set lengkap idea pelaburan, strategi perdagangan dan isyarat masuk dan keluar, yang dicipta oleh Bill Williams. Pada masa ini, banyak pelabur di dunia mengamalkan operasi huru-hara untuk mengambil bahagian dalam transaksi pasaran. Kerana pembangunan pasaran kewangan China tertinggal, dan teori huru-hara juga merupakan idea yang agak baru, terdapat sedikit orang yang mempelajari kaedah operasi huru-hara di China.

Seperti namanya, asas teori kaedah operasi huru-hara adalah teori huru-hara, yang dicadangkan oleh ahli meteorologi Edward Lorenz. Ia adalah salah satu penemuan saintifik terbesar pada akhir abad ke-20.

Keseluruhan kaedah operasi Chaos terdiri daripada lima dimensi utama (penunjuk teknikal):

  • Buaya

  • Fraktal

  • Momentum

  • Kecepatan

  • Garis Keseimbangan

img

Alligator adalah satu set garis keseimbangan yang menggunakan geometri fraktal dan dinamik bukan linear. Intipati Alligator adalah untuk memperluaskan purata bergerak bertimbalan eksponensial, yang merupakan sejenis garis purata, tetapi kaedah penghitungannya sedikit lebih rumit daripada garis purata biasa. Seterusnya, mari kita lihat bagaimana untuk menentukan Alligator dalam MyLanguage:

// Parameters
N1:=11;
N2:=21;

// Defining the price median
N3:=N1+N2;
N4:=N2+N3;
HL:=(H+L)/2;

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

Pertama, kita menentukan 2 parameter luaran N1 dan N2, dan kemudian mengira purata HL harga tertinggi dan harga terendah mengikut parameter luaran, dan kemudian mengira purata HL dengan parameter yang berbeza. untuk gigi, ia adalah purata tempoh tengah garis tengah, dan rahang adalah purata tempoh besar garis tengah. dalam strategi ini, kita menggunakan rahang.

Dalam kaedah operasi kekacauan, konsep fraktal ditakrifkan dengan jelas. Kita boleh membuat analogi: buka telapak tangan, dengan jari-jari menghadap ke atas, jari tengah adalah fraktal atas, jari kecil kiri dan jari manis, dan jari telunjuk kanan dan ibu jari masing-masing, mewakili garis K tanpa rekod tinggi. Fraktal asas terdiri daripada lima garis K ini. Kemudian anda boleh menentukan fraktal dengan kod berikut:

// Fractal
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);

Selepas mengira alligator dan fraktal, kita boleh menulis strategi operasi huru-hara yang mudah berdasarkan kedua-dua keadaan ini, dan menggunakan sekumpulan garis purata bergerak yang ditimbang secara eksponensial sebagai harga penanda aras untuk mengira indeks alligator dan fraktal.

// If there are no current long position orders and the closing price rises above the upper fractal and the upper fractal is above the alligator, open a long position.
BKVOL=0 AND C>=TOP_FRACTAL AND TOP_FRACTAL>MAX_YRG,BPK(1);
// If there are no current short position orders and the closing price falls below the lower fractal and the lower fractal is below the alligator, open a short position.
SKVOL=0 AND C<=BOTTOM_FRACTAL AND BOTTOM_FRACTAL<MIN_YRG,SPK(1);

// Long positions are closed if the closing price falls below the jaws of the alligator.
C<Y,SP(BKVOL);
// Short positions are closed if the closing price rises above the jaws of the alligator.
C>Y,BP(SKVOL);

Untuk memudahkan pemahaman, saya menulis komen terperinci ke dalam kod secara langsung.

  • Posisi pembukaan panjang: jika tidak ada pesanan kedudukan panjang pada masa ini, dan harga penutupan meningkat di bawah fraktal atas, dan fraktal atas berada di atas buaya.
  • Posisi pembukaan pendek: jika tidak ada pesanan kedudukan pendek pada masa ini, dan harga penutupan jatuh di bawah fraktal bawah, dan fraktal bawah berada di bawah buaya.
  • Posisi penutupan panjang: jika harga penutupan jatuh di bawah dagu buaya.
  • Posisi penutupan pendek: jika harga penutupan meningkat di atas dagu buaya.

Seterusnya, mari kita lihat seperti apa hasil backtest strategi operasi huru-hara yang mudah ini sebenarnya. Untuk membuat backtest lebih dekat dengan persekitaran pasaran sebenar, komisen ditetapkan dua kali ganda kadar pertukaran, dan kedudukan pembukaan dan penutupan tertakluk kepada titik geser dua lompatan masing-masing. Jenis data backtest adalah indeks rebar, dan jenis perdagangan adalah kekuatan utama rebar berterusan, dengan kedudukan pembukaan 1 lot tetap. Berikut adalah laporan prestasi backtest awal pada tahap 1 jam.

img

Dari kurva modal dan data prestasi backtest, strategi itu berjalan dengan baik, dan kurva modal keseluruhan secara mantap naik. Walau bagaimanapun, sejak akhir tahun 2016, ciri pasaran varieti rebar telah berubah, dari trend unilateral turun naik tinggi ke trend turun naik yang luas. Dari perspektif kurva modal, keuntungan dari 2017 hingga sekarang jelas lemah.

Secara ringkasnya, asas kaedah operasi huru-hara adalah untuk mencari titik perubahan, tanpa peduli bagaimana pasaran berjalan atau sama ada ia benar atau palsu. Jika ia memecahkan fraktal, ia akan memasuki pasaran secara langsung. Jangan pernah cuba meramalkan pasaran, tetapi menjadi pemerhati dan pengikut.

3.2 Pembangunan strategi arbitrage CTA berdasarkan bahasa JavaScript

George Soros mengemukakan proposisi penting dalam The Alchemy of Finance yang ditulis pada tahun 1987: Saya percaya harga pasaran selalu salah dalam erti kata bahawa mereka membentangkan pandangan yang berat sebelah tentang masa depan. Dia percaya bahawa hipotesis kecekapan pasaran hanyalah hipotesis teori. Sebenarnya, peserta pasaran tidak selalu rasional, dan pada setiap titik masa, peserta tidak dapat memperoleh dan menafsirkan semua maklumat secara objektif. Selain itu, walaupun ia adalah maklumat yang sama, maklum balas semua orang adalah berbeza. Maksudnya, harga itu sendiri sudah mengandungi jangkaan yang salah daripada peserta pasaran, jadi pada dasarnya, harga pasaran selalu salah. Ini mungkin menjadi sumber keuntungan para arbitrager.

Menurut prinsip-prinsip di atas, kita boleh tahu bahawa dalam pasaran niaga hadapan yang tidak berkesan, sebab mengapa kesan pasaran pada kontrak penghantaran dalam tempoh yang berbeza tidak selalu serentak, dan penetapan harga tidak sepenuhnya berkesan. Kemudian, berdasarkan harga kontrak penghantaran objek transaksi yang sama dalam tempoh yang berbeza, jika terdapat perbezaan harga yang besar antara kedua-dua harga, kita boleh membeli dan menjual kontrak niaga hadapan dalam tempoh yang berbeza pada masa yang sama untuk arbitrase lintas tempoh.

Seperti komoditi niaga hadapan, mata wang digital juga mempunyai portfolio kontrak arbitraj lintas tempoh. Sebagai contoh, dalam bursa OKEX, terdapat: ETC minggu semasa, ETC minggu depan, suku ETC. Sebagai contoh, anggaplah perbezaan harga antara minggu semasa ETC dan suku ETC kekal sekitar 5 untuk masa yang lama. Jika perbezaan harga mencapai 7 satu hari, kita mengharapkan bahawa perbezaan harga akan kembali ke 5 pada masa akan datang. Kemudian kita boleh menjual ETC minggu itu dan membeli suku ETC pada masa yang sama untuk memotong perbezaan harga, dan sebaliknya.

Walaupun perbezaan harga ini wujud, terdapat banyak ketidakpastian dalam arbitraj manual kerana operasi manual yang memakan masa, ketepatan yang rendah dan kesan perubahan harga. Pesona arbitraj kuantitatif terletak pada menangkap peluang arbitraj melalui model kuantitatif dan merumuskan strategi perdagangan arbitraj, serta meletakkan pesanan perdagangan secara automatik ke bursa melalui algoritma yang diprogram, untuk menangkap peluang dengan cepat dan tepat dan membuat keuntungan dengan cekap dan stabil.

Kursus ini akan mengajar anda cara menggunakan Platform Dagangan Kuantum FMZ dan kontrak niaga hadapan ETC di bursa OKEX untuk menunjukkan cara menangkap peluang arbitraj segera, merebut keuntungan yang dapat dilihat setiap kali, dan lindung nilai risiko yang mungkin dihadapi dalam perdagangan mata wang digital dengan strategi arbitraj yang mudah.

Membuat strategi arbitrage lintas tempoh untuk mata wang digitalKesukaran: Biasa

Kawasan strategi

  • Objek urus niaga: Ether Classic (ETC)
  • Data penyebaran: minggu semasa ETC - suku ETC (mengecualikan ujian kointegrasi)
  • Tempoh transaksi: 5 minit
  • Tempoh transaksi: 5 minit
  • Jenis urus niaga: tempoh silang jenis yang sama

Logik strategi

  • Syarat untuk membuka kedudukan dengan pergi panjang perbezaan harga: jika akaun semasa tidak mempunyai kedudukan dan perbezaan harga adalah kurang daripada batas bawah bola, maka pergi panjang perbezaan harga. iaitu, membeli kedudukan pembukaan ETC untuk minggu, menjual kedudukan pembukaan ETC untuk suku.
  • Syarat untuk membuka kedudukan dengan pergi pendek perbezaan harga: jika tidak ada kedudukan dalam akaun semasa, dan perbezaan harga adalah lebih besar daripada batas atas bola, maka pergi pendek perbezaan harga. iaitu, menjual kedudukan pembukaan ETC untuk minggu, membeli kedudukan pembukaan ETC untuk suku.
  • Syarat untuk menutup kedudukan dengan pergi panjang perbezaan harga: jika akaun semasa memegang pesanan panjang ETC dalam minggu semasa dan memegang pesanan pendek ETC suku, dan perbezaan harga lebih besar daripada batas tengah bola, maka tutup panjang perbezaan harga. iaitu, jual kedudukan penutupan ETC untuk minggu, beli kedudukan penutupan ETC untuk suku.
  • Syarat untuk menutup kedudukan dengan pergi pendek perbezaan harga: jika akaun semasa memegang pergi pesanan pendek ETC dalam minggu semasa, dan memegang pergi pesanan panjang ETC suku, dan perbezaan harga adalah kurang daripada batas tengah bola, kemudian menutup pendek perbezaan harga. iaitu, membeli kedudukan penutupan ETC untuk minggu, menjual kedudukan penutupan ETC untuk suku.

Yang di atas adalah penerangan logik yang mudah strategi arbitrage cross-period mata wang digital. jadi bagaimana untuk melaksanakan idea-idea kami dalam program? kami cuba untuk membina kerangka kerja pada FMZ Quant Trading Platform.

function Data() {}  // Basic data function
Data.prototype.mp = function () {}  // Position function
Data.prototype.boll = function () {}  // Indicator function
Data.prototype.trade = function () {}  // Order placement function
Data.prototype.cancelOrders = function () {}  // Order withdrawal function
Data.prototype.isEven = function () {}  // Processing single contract function
Data.prototype.drawingChart = function () {}  // Drawing function

function onTick() {
    var data = new Data(tradeTypeA, tradeTypeB);  // Create a basic data object
    var accountStocks = data.accountData.Stocks;  // Account balance
    var boll = data.boll(dataLength, timeCycle);  // Calculate the technical indicators of boll
    data.trade();  // Calculate trading conditions to place an order
    data.cancelOrders();  // Cancel orders
    data.drawingChart(boll);  // Drawing
    data.isEven();  // Processing of holding individual contract
}

//Entry function
function main() {
    while (true) {  // Enter the polling mode
        onTick();  // Execute onTick function
        Sleep(500);  // Sleep for 0.5 seconds
    }
}

Bayangkan bagaimana proses perdagangan kita dalam perdagangan pengawasan. Tidak ada perbezaan penting dalam transaksi sistem. Ia tidak lebih daripada memperoleh data, mengira data, meletakkan urus niaga pesanan, dan memproses selepas meletakkan pesanan. Begitu juga dalam program. Pertama, program akan melaksanakan fungsi utama dalam baris 20, yang merupakan konvensyen. Apabila program menyelesaikan praproses strategi perdagangan (jika ada), ia akan memasuki mod gelung tanpa akhir, iaitu mod pengundian. Dalam mod pengundian, fungsi onTick akan dilaksanakan berulang kali.

Kemudian dalam fungsi onTick, ia adalah proses dagangan kita dalam transaksi subjektif: pertama, mendapatkan data harga asas, kemudian mendapatkan baki akaun, kemudian mengira indeks, kemudian mengira syarat dagangan dan meletakkan pesanan, dan akhirnya pemprosesan selepas meletakkan pesanan, termasuk pembatalan pesanan, menarik, dan memproses kontrak tunggal.

Rangka strategi boleh dengan mudah ditubuhkan mengikut idea strategi dan proses transaksi.

  • Pra-pemprosesan sebelum transaksi.
  • Dapatkan dan mengira data.
  • Buat pesanan dan selesaikan nanti.

Seterusnya, kita perlu mengisi kod butiran yang diperlukan dalam rangka strategi mengikut proses transaksi sebenar dan butiran transaksi.

I. Pra-pengolahan sebelum transaksi

1. Mengisytiharkan pembolehubah global yang diperlukan dalam skop global.

  • Mengisytiharkan objek carta untuk carta konfigurasi
var chart = {}
  • Panggil fungsi Chart dan mulakan carta
var ObjChart = Chart ( chart )
  • Mengisytiharkan array kosong untuk menyimpan siri perbezaan harga
var bars = []
  • Mengisytiharkan pembolehubah timestamp data sejarah rekod
var oldTime = 0

2. Mengkonfigurasi parameter luaran strategi.

var tradeTypeA = "this_week"; // Arbitrage A Contract
var tradeTypeB = "quarter"; // Arbitrage B Contract
var dataLength = 10; // Indicator period length
var timeCycle = 1; // K-line period
var name = "ETC"; // Currencies
var unit = 1; // Order quantity

3. Tentukan fungsi pemprosesan data

  • Fungsi data asas: Data Buat pembina, Data, dan tentukan sifat dalamannya. Termasuk: data akaun, data kedudukan, cap masa data K-line, harga beli / jual kontrak arbitrage A / B, dan perbezaan harga arbitrage positif / negatif.
function Data(tradeTypeA, tradeTypeB) { // Pass in arbitrage A contract and arbitrage B contract
    this.accountData = _C(exchange.GetAccount); // Get account information
    this.positionData = _C(exchange.GetPosition); // Get position information
    var recordsData = _C(exchange.GetRecords); // Get K-line data
    exchange.SetContractType(tradeTypeA); // Subscription arbitrage A contract
    var depthDataA = _C(exchange.GetDepth); // Depth data of arbitrage A contract
    exchange.SetContractType(tradeTypeB); // Subscription arbitrage B contract
    var depthDataB = _C(exchange.GetDepth); // Depth data of arbitrage B contract
    this.time = recordsData[recordsData.length - 1].Time; // Time of obtaining the latest data
    this.askA = depthDataA.Asks[0].Price; // Sell one price of Arbitrage A contract
    this.bidA = depthDataA.Bids[0].Price; // Buy one price of Arbitrage A contract
    this.askB = depthDataB.Asks[0].Price; // Sell one price of Arbitrage B contract
    this.bidB = depthDataB.Bids[0].Price; // Buy one price of Arbitrage B contract
    // Positive arbitrage price differences (Sell one price of contract A - Buy one price of contract B)
    this.basb = depthDataA.Asks[0].Price - depthDataB.Bids[0].Price;
    // Negative arbitrage price differences (Buy one price of contract A - Sell one price of contract B)
    this.sabb = depthDataA.Bids[0].Price - depthDataB.Asks[0].Price;
}
  • Dapatkan fungsi kedudukan: mp ()) Melalui seluruh array kedudukan dan mengembalikan kuantiti kedudukan kontrak dan arah yang ditentukan. Jika tidak, kembali palsu.
Data.prototype.mp = function (tradeType, type) {
    var positionData = this.positionData; // Get position information
    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;
}
  • K-garis dan fungsi penunjuk: boll() Satu urutan K-line baru disintesis mengikut data perbezaan harga arbitraj positif / negatif. Data trek atas, trek tengah dan trek bawah yang dikira oleh penunjuk boll dikembalikan.
Data.prototype.boll = function (num, timeCycle) {
    var self = {}; // Temporary objects
    // Median value of positive arbitrage price difference and negative arbitrage price difference
    self.Close = (this.basb + this.sabb) / 2;
    if (this.timeA == this.timeB) {
        self.Time = this.time;
    } // Compare two depth data timestamps
    if (this.time - oldTime > timeCycle * 60000) {
        bars.push(self);
        oldTime = this.time;
    } // Pass in the price difference data object into the K-line array according to the specified time period
    if (bars.length > num * 2) {
        bars.shift(); // Control the length of the K-line array
    } else {
        return;
    }
    var boll = TA.BOLL(bars, num, 2); // Call the boll indicator in the talib library
    return {
        up: boll[0][boll[0].length - 1], // boll indicator upper track
        middle: boll[1][boll[1].length - 1], // boll indicator middle track
        down: boll[2][boll[2].length - 1] // boll indicator down track
    } // Return a processed boll indicator data
}
  • Fungsi pesanan: perdagangan Mempindahkan dalam nama kontrak pesanan dan jenis pesanan, kemudian meletakkan pesanan dengan pertimbangan, dan mengembalikan hasil selepas meletakkan pesanan.
Data.prototype.trade = function (tradeType, type) {
    exchange.SetContractType(tradeType); // Resubscribe to a contract before placing an order
    var askPrice, bidPrice;
    if (tradeType == tradeTypeA) { // If the order is placed in contract A
        askPrice = this.askA; // set askPrice
        bidPrice = this.bidA; // set bidPrice
    } else if (tradeType == tradeTypeB) { // If the order is placed in contract B
        askPrice = this.askB; // set askPrice
        bidPrice = this.bidB; // set bidPrice
    }
    switch (type) { // Match order placement mode
        case "buy":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Buy(askPrice, unit);
        case "sell":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Sell(bidPrice, unit);
        case "closebuy":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Sell(bidPrice, unit);
        case "closesell":
            exchange.SetDirection(type); // Set order placement mode
            return exchange.Buy(askPrice, unit);
        default:
            return false;
    }
}
  • Batalkan Perintah Fungsi: Batalkan Perintah Dapatkan satu susunan semua pesanan yang belum selesai dan batalkan satu demi satu.
Data.prototype.cancelOrders = function () {
    Sleep(500); // Delay before cancellation, because some exchanges, you know what I mean
    var orders = _C(exchange.GetOrders); // Get an array of unfilled orders
    if (orders.length > 0) { // If there are unfilled orders
        for (var i = 0; i < orders.length; i++) { // Iterate through the array of unfilled orders
            exchange.CancelOrder(orders[i].Id); // Cancel unfilled orders one by one
            Sleep(500); // Delay 0.5 seconds
        }
        return false; // Return false if an unfilled order is cancelled
    }
    return true; // Return true if there are no unfilled orders
}
  • Mengurus memegang kontrak tunggal: isEven() Dalam kes kaki tunggal dalam urus niaga arbitraj, kita hanya akan menutup semua kedudukan.
Data.prototype.isEven = function () {
    var positionData = this.positionData; // Get position information
    var type = null; // Switch position direction
    // If the remaining 2 of the position array length is not equal to 0 or the position array length is not equal to 2
    if (positionData.length % 2 != 0 || positionData.length != 2) {
        for (var i = 0; i < positionData.length; i++) { // Iterate through the position array
            if (positionData[i].Type == 0) { // If it is a long order
                type = 10; // Set order parameters
            } else if (positionData[i].Type == 1) { // If it is a short order
                type = -10; // Set order parameters
            }
            // Close all positions
            this.trade(positionData[i].ContractType, type, positionData[i].Amount);
        }
    }
}
  • Fungsi lukisan: lukisanGambar ()) Panggil kaedah ObjChart Add (), lukis data pasaran dan data penunjuk yang diperlukan dalam carta: trek atas, trek tengah, trek bawah, perbezaan harga arbitraj positif / negatif.
Data.prototype.drawingChart = function (boll) {
    var nowTime = new Date().getTime();
    ObjChart.add([0, [nowTime, boll.up]]);
    ObjChart.add([1, [nowTime, boll.middle]]);
    ObjChart.add([2, [nowTime, boll.down]]);
    ObjChart.add([3

Berkaitan

Lebih lanjut