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.
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
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.
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.
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.
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.
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.
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.
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.
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.
Strategi niaga hadapan CTA menguntungkan terutamanya kerana perkara berikut:
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
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.
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.
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.
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.
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:
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.
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
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.
Jadi seterusnya, mari kita lihat apa peraturan perdagangan Turtle mengatakan.
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.
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
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.
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.
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.
George Soros mengemukakan proposisi penting dalam
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
Logik strategi
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.
Seterusnya, kita perlu mengisi kod butiran yang diperlukan dalam rangka strategi mengikut proses transaksi sebenar dan butiran transaksi.
var chart = {}
var ObjChart = Chart ( chart )
var bars = []
var oldTime = 0
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
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;
}
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;
}
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
}
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;
}
}
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
}
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);
}
}
}
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