Dari Perdagangan Kuantitatif ke Manajemen Aset - Pengembangan Strategi CTA untuk Pengembalian Absolute

Penulis:Lydia, Dibuat: 2023-02-07 09:58:41, Diperbarui: 2023-09-18 20:25:11

img

Dari Perdagangan Kuantitatif ke Manajemen Aset - Pengembangan Strategi CTA untuk Pengembalian Absolute

Pengantar

Mengapa aku harus mengikuti kursus ini?

Apa yang Anda dapatkan dari mengikuti kursus ini? Pertama-tama, kursus ini didasarkan pada bahasa pemrograman JavaScript dan Python. Bahasa hanyalah teknologi. Akhirnya, kita harus menerapkan teknologi ini ke dalam industri. Perdagangan kuantitatif adalah industri yang sedang berkembang, yang saat ini berada dalam tahap perkembangan yang cepat dan memiliki permintaan besar untuk bakat.

Melalui pembelajaran sistematis dari kursus ini, Anda dapat memiliki pemahaman yang lebih dalam tentang bidang perdagangan kuantitatif. Jika Anda seorang siswa yang bersiap untuk memasuki bidang perdagangan kuantitatif, itu juga akan membantu Anda. Jika Anda seorang penggemar investasi saham atau berjangka, maka perdagangan kuantitatif dapat membantu perdagangan subjektif Anda. Dengan mengembangkan strategi perdagangan, Anda dapat memperoleh keuntungan di pasar keuangan, dan juga memperluas saluran dan platform untuk investasi dan manajemen keuangan Anda.

Sebelumnya, izinkan saya berbicara tentang pengalaman perdagangan pribadi saya. saya bukan jurusan keuangan, saya belajar statistik. pada awalnya, saya mulai memperdagangkan saham secara subjektif di hari-hari sekolah saya. kemudian, saya menjadi praktisi perdagangan kuantitatif dana ekuitas swasta domestik, terutama terlibat dalam penelitian strategi dan pengembangan strategi.

Saya telah berdagang di lingkaran ini selama lebih dari sepuluh tahun, dan telah mengembangkan berbagai jenis strategi. Filsafat investasi saya adalah: pengendalian risiko di atas segalanya dan berfokus pada pengembalian absolut. Topik topik kami adalah: dari perdagangan kuantitatif hingga manajemen aset - pengembangan strategi CTA untuk pengembalian absolut.

1. strategi CTA berjangka logika menghasilkan uang

1.1 Memahami CTA Masa Depan

Seseorang mungkin bertanya apa itu CTA? Apa sebenarnya CTA? CTA disebut penasihat perdagangan komoditas di negara-negara asing dan manajer investasi di Cina. CTA tradisional adalah mengumpulkan dana dari sebagian besar investor, kemudian mempercayakan kepada lembaga investasi profesional, dan akhirnya berinvestasi dalam futures indeks saham, futures komoditas, dan futures obligasi melalui penasihat perdagangan (yaitu CTA).

Tetapi pada kenyataannya, dengan perkembangan dan perluasan terus-menerus dari pasar berjangka global, konsep CTA juga berkembang, dan ruang lingkupnya jauh melampaui berjangka tradisional. Ini dapat berinvestasi tidak hanya di pasar berjangka, tetapi juga di pasar suku bunga, pasar saham, pasar valuta asing dan pasar opsi. Selama ada sejumlah data historis untuk varietas ini, ia dapat mengembangkan strategi CTA yang sesuai berdasarkan data historis ini.

Pada awal tahun 1980-an, teknologi perdagangan elektronik belum matang. Pada saat itu, sebagian besar pedagang menilai tren masa depan komoditas berjangka dengan menggambar indikator teknis secara manual, seperti indeks William, KDJ, RSI, MACD, CCI, dll. Kemudian, pedagang mendirikan dana CTA khusus untuk membantu pelanggan mengelola aset.

Perubahan ukuran manajemen dana CTA

img

Dalam miliaran dolar

Dengan meningkatnya perdagangan kuantitatif, skala dana CTA global telah meningkat dari US $ 130,6 miliar pada tahun 2005 menjadi lebih dari US $ 300 miliar pada tahun 2015.

Dari akhir tahun 1979 hingga akhir tahun 2016, kumulatif return dari Barclay CTA Fund Index mencapai 28,95 kali, annualised return 9,59%, Sharp ratio 0,37, dan maximum withdrawal 15,66%.

Karena dalam portofolio alokasi aset, strategi CTA biasanya mempertahankan korelasi yang sangat rendah dengan strategi lain. Seperti yang ditunjukkan dalam lingkaran merah di bawah ini, selama pasar beruang saham global dari 2000 hingga 2002 dan krisis subprime global pada tahun 2008, indeks dana Barclay CTA tidak hanya tidak turun tetapi juga mencapai pengembalian positif. Ketika pasar saham dan pasar obligasi berada dalam krisis, CTA dapat memberikan pengembalian yang kuat. Selain itu, kita dapat melihat bahwa tingkat keuntungan Barclay Commodity CTA Index sejak 1980 lebih kuat daripada S&P 500, dan penarikan juga jauh lebih rendah dari S&P 500.

img

Perkembangan CTA di Cina baru dalam sepuluh tahun terakhir, tetapi momentumnya sangat kuat. Hal ini terutama disebabkan oleh lingkungan perdagangan komoditas domestik berjangka yang relatif terbuka, ambang batas dana perdagangan yang rendah, penggunaan sistem margin untuk perdagangan posisi panjang dan pendek, biaya transaksi yang rendah, struktur teknis yang lebih maju dari bursa dibandingkan dengan saham, dan perdagangan sistem yang lebih mudah.

Sejak tahun 2010, dana CTA terutama ada dalam bentuk dana swasta. Dengan pembukaan secara bertahap ruang lingkup investasi akun khusus dana dalam kebijakan domestik, dana CTA mulai ada dalam bentuk akun khusus dana. Mode operasinya yang lebih transparan dan terbuka juga telah menjadi alat yang diperlukan bagi lebih banyak investor untuk mengalokasikan aset.

Strategi CTA juga lebih cocok untuk pedagang individu daripada strategi perdagangan lainnya dalam hal kemudahan masuk, ambang modal, pelaksanaan strategi perdagangan, dan konektivitas API. Kontrak berjangka domestik sangat kecil. Misalnya, tepung jagung atau kedelai dapat diperdagangkan seharga ribuan yuan, dan hampir tidak ada ambang modal. Selain itu, karena beberapa strategi CTA berasal dari analisis teknis tradisional, itu relatif mudah dibandingkan dengan strategi lain.

Proses desain 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 matematis, desain pemrograman dan alat lain, dan sinyal perdagangan dihasilkan dengan menghitung dan menganalisis data ini. Tentu saja, dalam pengembangan yang sebenarnya, tidak sesederhana grafik di atas. Di sini kami hanya memberikan konsep keseluruhan.

1.2 Jenis strategi CTA berjangka

Dari perspektif strategi trading, strategi CTA juga beragam: dapat menjadi strategi tren atau strategi arbitrage; dapat menjadi strategi jangka menengah dan panjang jangka panjang, atau strategi jangka pendek intraday; logika strategi dapat didasarkan pada analisis teknis atau analisis fundamental; dapat menjadi transaksi subjektif atau transaksi sistem.

Strategi CTA memiliki metode klasifikasi yang berbeda. Menurut metode transaksi, dapat dibagi menjadi transaksi subjektif dan transaksi sistem. Pengembangan strategi CTA asing relatif maju, dan strategi CTA transaksi sistem telah mendekati 100%. Menurut metode analisis, dapat dibagi menjadi analisis dasar dan analisis teknis. Menurut sumber pendapatan, dapat dibagi menjadi perdagangan tren dan perdagangan osilator.

Secara umum, strategi CTA menyumbang sekitar 70% dari total pasar perdagangan, strategi tren menyumbang sekitar 25%, dan strategi kontra-tren atau strategi pembalikan tren menyumbang sekitar 5%.Di antara mereka, strategi tren dengan proporsi terbesar dapat dibagi menjadi perdagangan frekuensi tinggi, perdagangan intraday, perdagangan jangka pendek dan menengah, dan perdagangan jangka menengah dan panjang sesuai dengan periode posisi.

Strategi pembuatan pasar frekuensi tinggi

Saat ini, ada dua strategi perdagangan frekuensi tinggi utama di pasar: satu adalah strategi pembuatan pasar frekuensi tinggi, yang lainnya adalah strategi arbitrage frekuensi tinggi. Strategi pembuatan pasar adalah untuk menyediakan likuiditas di pasar perdagangan. Artinya, di pasar perdagangan dengan pembuat pasar, jika seseorang ingin berdagang, pembuat pasar harus memastikan bahwa pesanan mereka dapat diperdagangkan. Jika tidak ada likuiditas yang cukup di pasar dan pesanan tidak dapat diperdagangkan, pembuat pasar harus membeli atau menjual pesanan lawan.

Strategi Arbitrage Frekuensi Tinggi

Arbitrage frekuensi tinggi mengacu pada perdagangan dua saham yang sangat berkorelasi atau ETF dan portofolio ETF. Menurut metode perhitungan ETF, harga yang diharapkan dari ETF dapat dihitung dengan cara yang sama. Harga indeks ETF dapat mengurangi harga yang diharapkan dari ETF untuk mendapatkan perbedaan harga. Biasanya, perbedaan harga akan berjalan dalam saluran harga. Jika perbedaan harga menembus saluran atas dan bawah, Anda dapat memperdagangkan perbedaan harga, menunggu pengembalian perbedaan harga, dan mendapatkan pendapatan darinya.

Strategi intraday

Dalam arti harfiah, selama tidak ada posisi overnight, itu dapat disebut strategi perdagangan intraday. Karena periode pemegang perdagangan intraday yang singkat, biasanya tidak mungkin untuk menghasilkan keuntungan segera setelah memasuki pasar, dan kemudian keluar dari pasar dengan cepat. Oleh karena itu, mode perdagangan ini membawa risiko pasar yang rendah. Namun, karena pasar berubah dengan cepat dalam waktu singkat, strategi intraday biasanya memiliki persyaratan yang lebih tinggi untuk pedagang.

Strategi jangka menengah dan panjang

Secara teori, semakin lama periode kepemilikan, semakin besar kapasitas strategis dan semakin rendah rasio risiko-pengembalian. Terutama dalam transaksi institusional, karena kapasitas terbatas dari strategi jangka pendek, dana besar tidak dapat masuk dan keluar dari pasar dalam waktu singkat, strategi jangka panjang akan dialokasikan. Secara umum, periode posisi adalah beberapa hari dan bulan, atau bahkan lebih lama.

Data strategi CTA

Secara umum, strategi CTA dipelajari dengan data menit, jam dan harian, yang meliputi: harga pembukaan, harga tertinggi, harga terendah, harga penutupan, volume perdagangan, dll. Hanya beberapa strategi CTA yang akan menggunakan data Tick, seperti harga beli, harga jual, volume beli, volume jual dan data mendalam lainnya dalam data L2.

Untuk ide dasar strategi CTA, hal pertama yang kita pikirkan adalah berdasarkan indikator teknis tradisional, karena ada banyak bahan referensi publik di bidang ini, dan logikanya biasanya sederhana, yang sebagian besar didasarkan pada prinsip-prinsip statistik.

Ada juga beberapa model perdagangan klasik di pasar, yang juga dapat digunakan sebagai referensi dan ditingkatkan, termasuk: kombinasi rata-rata bergerak ganda, DualThrust, R-Breaker, metode perdagangan penyu, metode perdagangan grid, dll.

Semua ini adalah strategi perdagangan berdasarkan analisis teknis tradisional. Prosesnya adalah untuk mengekstrak faktor atau kondisi perdagangan dengan keuntungan probabilitas sesuai dengan data historis dan konsep perdagangan yang benar, dan mengasumsikan bahwa pasar masih akan memiliki hukum seperti itu di masa depan. Akhirnya, strategi perdagangan direalisasikan oleh kode dan perdagangan otomatis sepenuhnya. Buka posisi, berhenti keuntungan, berhenti kerugian, meningkatkan posisi, mengurangi posisi, dll, yang umumnya tidak memerlukan intervensi manual.

Keuntungan terbesar dari strategi CTA adalah bahwa tidak peduli apakah pasar saat ini naik atau turun, ia dapat memperoleh pengembalian absolut, terutama ketika pasar berubah dengan cepat, atau tren pasar jelas lancar, keuntungan dari strategi itu jelas, singkatnya, jika ada tren, ada keuntungan. Namun, jika pasar berada dalam situasi volatile atau tren tidak jelas, strategi dapat membeli pada titik tinggi dan menjual pada titik rendah, dan menghentikan kerugian bolak-balik.

1.3 Prinsip keuntungan dari strategi CTA berjangka

Strategi CTA berjangka menguntungkan terutama karena poin berikut:

    1. Ada refleksifitas dalam tren harga, yang selalu berlanjut dengan tren. Ketika investor mengamati bahwa harga naik, mereka akan mengikuti tren dan membeli, yang mengakibatkan kenaikan harga lebih lanjut. Hal yang sama berlaku untuk penurunan harga. Karena investor lebih irasional, kadang-kadang kita dapat melihat bahwa harga naik secara abnormal dan turun secara abnormal.
    1. Setiap investor memiliki toleransi asimetris untuk rasio keuntungan terhadap kerugian dan toleransi risiko yang berbeda. Bagi sebagian besar investor ritel, mereka lebih cenderung memilih metode perdagangan homeopati yang lebih konservatif, dan pasar juga lebih rentan terhadap tren.
    1. Pembentukan harga ditentukan oleh transaksi. Memang benar bahwa transaksi didorong oleh orang-orang, tetapi sifat manusia sulit untuk berubah. Ini adalah alasan mengapa pola tetap akan berulang. Strategi ini efektif dalam backtesting data historis, yang menunjukkan bahwa hal itu juga mungkin efektif di masa depan.

Selain itu, fitur trading dari trend tracking adalah kehilangan sejumlah kecil uang ketika tidak ada pasar, dan membuat kekayaan besar ketika pasar datang. Namun, orang-orang yang telah melakukan trading tahu bahwa pasar tidak stabil sebagian besar waktu, dan hanya dalam waktu yang singkat adalah pasar tren. Oleh karena itu, strategi trend tracking memiliki tingkat kemenangan yang rendah dalam perdagangan, tetapi keuntungan dan kerugian keseluruhan dari setiap transaksi relatif besar.

Karena strategi pelacakan tren tidak stabil dalam hal pendapatan, banyak lembaga investasi akan menggunakan berbagai varietas dan strategi untuk membangun portofolio, yang juga akan dikonfigurasi dengan sejumlah strategi pembalikan.

Korélasi antara CTA dan aset tradisional

img

Mari kita lihat grafik di atas. Secara teoritis, berbagai strategi dengan gaya yang berbeda atau korelasi yang relatif rendah kadang-kadang akan sama dan kadang-kadang sinyal perdagangan yang berbeda pada saat yang sama ketika menghadapi berbagai perubahan harga pasar. Karena beberapa kurva pengembalian saling tumpang tindih, keseluruhan pengembalian saling melengkapi, dan kurva pengembalian akan menjadi lebih datar, sehingga mengurangi volatilitas pengembalian.

Dari sudut pandang di atas, dapat disimpulkan bahwa lebih baik mengembangkan beberapa sub-strategi moderat daripada mengembangkan strategi utama. Bagaimana mengendalikan strategi ini? Di sini kita dapat belajar dari algoritma hutan acak dalam pembelajaran mesin. Hutan acak bukanlah algoritma independen, itu adalah kerangka keputusan yang berisi beberapa pohon keputusan. Ini setara dengan strategi induk di atas sub-strategi pohon keputusan. Kluster substrategi diatur dan dikendalikan melalui strategi induk.

Selanjutnya, kita perlu merancang strategi induk. Kita dapat mengevaluasi likuiditas, profitabilitas dan stabilitas setiap varietas di seluruh pasar berjangka komoditas untuk menyaring portofolio varietas berjangka komoditas dengan volatilitas pendapatan yang rendah, dan kemudian melakukan penyaringan netral industri, lebih lanjut mengurangi volatilitas keseluruhan melalui penyebaran industri portofolio, dan akhirnya membangun portofolio multi-varietas komoditas berjangka aktual melalui pencocokan nilai pasar untuk perdagangan.

Setiap varietas juga dapat dikonfigurasi dengan strategi multi-parameter, dan dapat memilih kombinasi parameter dengan kinerja yang baik dalam backtest. Ketika tren pasar jelas, strategi multi-parameter umumnya akan berkinerja konsisten, yang setara dengan menambahkan posisi; Ketika pasar berada dalam situasi volatile, kinerja beberapa set strategi parameter biasanya tidak konsisten, sehingga mereka dapat melindungi risiko dengan masing-masing pergi panjang atau pendek, yang setara dengan mengurangi posisi. Ini dapat lebih mengurangi tingkat backtest maksimum portofolio, sambil menjaga tingkat pengembalian keseluruhan tidak berubah.

2. contoh strategi CTA berjangka klasik

Newton pernah berkata: Jika saya melihat lebih jauh dari orang lain, itu karena saya berdiri di bahu raksasa.

Strategi CTA yang tersedia secara publik di pasar termasuk strategi SMA, strategi Bollinger band, aturan perdagangan kura-kura, strategi momentum, strategi arbitrage, dan sebagainya. Strategi perdagangan kuantitatif memiliki satu karakteristik, yaitu, mereka akan perlahan gagal setelah diumumkan kepada publik.

2.1 Analisis dasar-dasar berjangka ( persediaan, perbedaan dasar, harga)

Analisis fundamental tidak perlu peduli dengan tren harga jangka pendek. Diyakini bahwa nilainya akan tercermin dalam harga pada akhirnya. Ini lebih tentang menganalisis faktor-faktor di balik harga untuk menentukan berapa banyak nilai varietas. Secara umum, metode analisis top-down diadopsi: dari faktor makro, faktor varietas dan faktor lainnya.

img

Kita dapat melihat dari grafik di atas bahwa ada banyak faktor yang mempengaruhi harga komoditas, dan data ini terus berubah.

Pada kenyataannya, analisis fundamental futures komoditas bukan untuk menganalisis semua faktor. kita hanya perlu memahami elemen inti analisis fundamental untuk mengetahui aturan dari informasi yang kompleks.

Faktor makro

Data makroekonomi adalah data yang kompleks dan berubah-ubah. Setiap hari, setiap saat, ada banyak data ekonomi yang diterbitkan, dari politik nasional, bank sentral, bank investasi, resmi dan tidak resmi. Selain krisis politik dan ekonomi, analisis makro adalah bahan yang baik untuk mengobrol, tetapi tidak praktis. Peter Lynch, seorang ahli manajemen dana terkenal di Amerika Serikat, pernah mengatakan: Saya menghabiskan tidak lebih dari 15 menit untuk menganalisis situasi ekonomi setiap tahun.

Faktor variasi

Dalam analisis fundamental, analisis variasi terutama untuk menganalisis premi dan diskon, hubungan penawaran dan permintaan, persediaan komoditas, keuntungan industri, dll. Bisa dikatakan bahwa menguasai analisis faktor variasi komoditas berjangka dapat menilai sebagian besar tren pasar.

Seperti yang diketahui teman-teman yang telah melakukan futures, komoditas domestik futures dapat dengan mudah dibagi menjadi produk industri dan produk pertanian. Metode analisis produk industri dan produk pertanian berbeda. Kami akan menguraikan dua aspek penawaran dan permintaan. Dalam produk industri, penawaran relatif stabil. Kecuali ada terobosan teknologi besar, kapasitas produksi tidak mungkin berubah secara signifikan dalam waktu singkat. Oleh karena itu, faktor utama yang mempengaruhi harga produk industri adalah permintaan. Permintaan untuk produk pertanian relatif 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 pasokan.

Oleh karena itu, menurut hukum ekonomi, adalah hubungan antara penawaran dan permintaan yang menentukan harga barang pada akhirnya. Secara teori, selama data penawaran dan permintaan dapat diperoleh, harga barang di masa depan dapat ditentukan. Untuk produk industri, data penawaran mudah diperoleh, tetapi sulit untuk mendapatkan data permintaan. Untuk produk pertanian, data permintaan mudah diperoleh, dan sulit untuk mendapatkan data pasokan.

Pada kenyataannya, kita dapat mengurangi lebih lanjut. Hasil saling penawaran dan permintaan di pasar ekonomi adalah persediaan. Kita dapat menilai kekuatan hubungan antara penawaran pasar dan permintaan melalui data persediaan. Jika persediaan komoditas sangat tinggi, itu berarti bahwa penawaran pasar lebih besar dari permintaan, dan harga komoditas akan menurun dengan asumsi bahwa kondisi eksternal tetap tidak berubah. Jika persediaan komoditas sangat rendah, itu berarti bahwa permintaan pasar lebih besar dari penawaran, dan harga komoditas akan meningkat dengan asumsi bahwa kondisi eksternal tetap tidak berubah.

Selain menganalisis persediaan komoditas, kita juga perlu menganalisis perbedaan harga antara pasar spot dan pasar berjangka, yang juga disebut perbedaan dasar. Jika harga berjangka lebih besar dari harga spot, kita menyebutnya premi berjangka; Jika harga berjangka lebih rendah dari harga spot, kita menyebutnya diskon berjangka. Menurut sistem pengiriman berjangka, pada tanggal pengiriman berjangka, harga berjangka harus sama dengan harga spot.

Terlepas dari premi atau diskon, karena keterbatasan sistem pengiriman berjangka, harga berjangka pada tanggal pengiriman harus sama dengan harga spot secara teori.

Menurut prinsip di atas, kita dapat menggunakan persediaan dan perbedaan dasar untuk menentukan harga berjangka masa depan pada saat yang sama. Jika persediaan komoditas rendah, dan jika harga berjangka jauh lebih rendah dari harga spot, kita dapat menilai bahwa permintaan pasar spot lebih besar dari pasokan, dan kemungkinan harga spot meningkat di masa depan besar; juga karena sistem pengiriman berjangka, saat tanggal pengiriman mendekati, harga berjangka akan naik, dan akan sama dengan harga spot. Probabilitas kenaikan harga berjangka lebih besar di masa depan.

Akhirnya, kita menilai arah kemungkinan harga masa depan melalui perbedaan persediaan dan dasar, tetapi tidak ada titik yang tepat untuk membeli dan menjual, jadi kita perlu bekerja sama dengan analisis teknis untuk memberikan sinyal masuk dan keluar yang jelas. Struktur dari seluruh analisis fundamental adalah: low inventory + deep discount + technical analysis long position signal = go long; high inventory + substantial premium + technical analysis short position signal = go short.

2.2 Peraturan perdagangan penyu

Ketika datang ke strategi trading, kita harus berbicara tentang aturan perdagangan kura-kura perwakilan. Aturan perdagangan kura-kura berasal dari eksperimen paling terkenal dalam sejarah perdagangan. Richard Dennis, seorang spekulator komoditas, ingin tahu apakah pedagang hebat lahir atau dilatih. Untuk tujuan ini, pada tahun 1983, ia merekrut 13 orang dan mengajarkan mereka konsep dasar perdagangan berjangka, serta metode dan prinsip perdagangan sendiri. Siswa-siswa ini disebut turtles.

Dalam empat tahun berikutnya, penyu mencapai rata-rata bunga senyawa tahunan 80%. Dennis membuktikan bahwa dengan sistem dan aturan yang sederhana, orang-orang dengan sedikit atau tidak ada pengalaman perdagangan dapat menjadi pedagang yang sangat baik. Namun, beberapa penyu menjual aturan perdagangan penyu di situs web untuk keuntungan. Untuk mencegah perilaku ini, dua penyu asli, Curtis Firth dan Arthur Maddock, memutuskan untuk membuat aturan perdagangan penyu tersedia untuk umum secara gratis di situs web.

Setelah kebenaran terungkap, orang-orang menemukan bahwa aturan perdagangan penyu mengadopsi saluran Donchian yang dioptimalkan dan menggunakan indikator ATR untuk manajemen posisi.

Prinsip-prinsip dasar penyu

  • Menguasai keuntungan: Cari strategi perdagangan dengan harapan positif, karena dalam jangka panjang, itu dapat menciptakan pengembalian positif.
  • Mengelola risiko: mengontrol risiko dan memegang posisi Anda, jika tidak Anda mungkin tidak menunggu sehari untuk membuat keuntungan.
  • Ketekunan: Hanya dengan tidak goyah menerapkan strategi Anda, Anda dapat benar-benar mencapai hasil yang sistematis.
  • Sederhana dan jelas: Dalam jangka panjang, sistem sederhana memiliki vitalitas lebih dari sistem yang kompleks.

Jadi selanjutnya, mari kita lihat apa aturan perdagangan penyu mengatakan.

  1. Pasar - apa yang harus dibeli dan dijual, pada dasarnya di pasar mana yang harus diperdagangkan. Penyu adalah pedagang berjangka. Mereka memilih pasar dengan volume perdagangan yang besar dan likuiditas tinggi saja. Karena memilih pasar dengan perdagangan tidak aktif akan meningkatkan pergeseran tambahan masuk dan keluar, dan juga akan kehilangan banyak peluang tren.
  2. Ukuran posisi - berapa banyak untuk membeli atau menjual adalah bagian yang sangat penting dari seluruh strategi, yang biasanya diabaikan atau diperlakukan dengan salah oleh kebanyakan orang. Aturan perdagangan penyu mengadopsi ATR, yaitu indeks volatilitas riil rata-rata, untuk menghitung posisi terbuka, meningkatkan sinyal posisi dan sinyal stop loss. Ini adalah desain yang sangat cerdik. Niat aslinya adalah untuk menyesuaikan ukuran posisi melalui volatilitas absolut pasar. Ketika volatilitas pasar kuat, mengurangi posisi, dan ketika volatilitas pasar lemah, meningkatkan posisi. Pertama mendefinisikan unit yang rumusnya adalah: (total aset * 1%) / ATR. Posisi awal adalah 1 unit. Bahkan jika penurunan variasi pada hari itu mencapai tingkat ATR, kerugian pada hari itu dapat dikendalikan dalam 1% dari total aset. Jika harga naik 0,5 unit, posisi panjang mereka akan meningkat 1 unit, hingga 4 unit.
  3. Masuk pasar - Masuk pasar penyu didasarkan pada saluran Donchian. Ketika harga naik di atas harga tertinggi dari 20 atau 55 K garis pertama, ia akan masuk pasar untuk pergi panjang. Ketika harga turun di bawah harga terendah dari 20 atau 55 K garis pertama, ia akan masuk pasar untuk pergi pendek. Ketika sinyal muncul, masuk ke pasar untuk perdagangan, tanpa menunggu penutupan atau K-line berikutnya.
  4. Stop loss - Dalam jangka panjang, transaksi yang tidak menghentikan kerugian tidak akan berhasil, tetapi sebagian besar pedagang memegang posisi kerugian dan mencoba mengambil kesempatan untuk berharap pasar akan berbalik. Aturan penyu menetapkan kapan harus menarik diri dari posisi kerugian secara ketat. Jika Anda memegang pesanan posisi panjang dan harga turun 2 unit, posisi panjang ditutup dengan stop loss. Jika Anda memegang pesanan posisi pendek dan harga naik 2 unit, posisi pendek akan ditutup dengan stop loss.
  5. Stop profit - Dalam aturan Turtle, stop profit berarti kehilangan banyak keuntungan mengambang, yang juga merupakan bagian yang tidak dapat diterima bagi banyak pedagang. Jika Anda saat ini memegang pesanan posisi panjang dan harga jatuh di bawah jalur saluran Donchian sepuluh hari, tutup semua pesanan panjang; Jika pesanan posisi pendek saat ini diadakan dan harga naik di atas jalur saluran Donchian sepuluh hari, tutup semua posisi pendek.

Dengan demikian kita dapat melihat bahwa meskipun aturan trading Turtle terlihat sangat sederhana, pada kenyataannya telah membentuk rasa nyata dari prototipe sistem trading. itu mencakup semua aspek dari sistem trading yang lengkap, tidak meninggalkan ruang bagi pedagang untuk membuat keputusan imajinatif subjektif, yang hanya membuat keuntungan dari operasi terprogram sistem bermain, termasuk: aturan masuk dan keluar, manajemen dana dan kontrol risiko, dll.

Keuntungan terbesar dari metode trading kura-kura adalah membantu kita membangun seperangkat metode trading yang efektif. Ini adalah kombinasi dari pembukaan batch, stop profit dan stop loss yang dinamis, dan strategi mengikuti tren pasar, terutama penggunaan nilai ATR dan konsep manajemen posisi, yang sangat layak dipelajari. Tentu saja, ini juga memiliki masalah umum dengan strategi pelacakan tren, yaitu, keuntungan terapung dan mengambil kembali. Kemungkinan semua keuntungan terapung yang diperoleh dari membeli pemenang akan diambil karena gelombang penurunan tajam berikutnya. Ini sangat kuat dalam tren umum, dan tidak sebaik yang diharapkan di pasar yang fluktuatif.

3. Mengembangkan strategi CTA masa depan dalam praktek

3.1 Pengembangan strategi tren CTA berdasarkan MyLanguage

Pada akhir abad lalu, metode trading yang sangat menakjubkan mulai berlaku di bidang investasi keuangan di Amerika Serikat. Setelah ribuan orang berlatih, orang-orang menemukan bahwa metode ini memiliki efektivitas dan nilai praktis yang besar. Pada saat yang sama, telah diakui oleh banyak ahli investasi dan pedagang profesional. Sampai sekarang, ini dapat diterapkan ke hampir semua bidang investasi keuangan dengan sempurna, apakah itu valuta asing, emas, saham, futures, minyak mentah, atau indeks dan obligasi, yang merupakan metode operasi kekacauan.

Kata kekacauan mengacu pada deskripsi keadaan kekacauan alam semesta pada awalnya. Idenya adalah bahwa hasilnya tidak dapat dihindari, tetapi karena pengetahuan yang ada tidak dapat menghitung hasilnya, karena perhitungan itu sendiri juga mengubah hasilnya, hasil maksimum atau minimum akhirnya mungkin muncul, tetapi tidak ada hasil yang tidak dapat dihindari. Ini sangat mirip dengan pasar perdagangan. Peserta juga mengubah pasar ketika mereka menganalisis pasar dan membeli dan menjual. Pasar memiliki variabilitas abadi. Ketika peserta memahami bentuk baru pasar, pasar juga memahami bahwa itu diakui oleh peserta, sehingga variasi terjadi. Dan itu akan cenderung berubah ke arah yang tidak diketahui peserta. Ini memiliki cukup kebijaksanaan untuk mencegah peserta menangkap aturan perubahannya, yaitu, pasar tidak stabil, dan pemahaman tentang masa lalu pasar tidak dapat mewakili masa depan.

Metode operasi kekacauan adalah seperangkat ide investasi, strategi perdagangan dan sinyal masuk dan keluar yang lengkap, yang ditemukan oleh Bill Williams. Saat ini, banyak investor di dunia mengadopsi operasi kekacauan untuk berpartisipasi dalam transaksi pasar. Karena perkembangan pasar keuangan China tertinggal, dan teori kekacauan juga merupakan ide yang relatif baru, ada sedikit orang yang mempelajari metode operasi kekacauan di Cina. Karena metode operasi kekacauan adalah strategi perdagangan dengan universalitas tinggi dan dapat diterapkan pada hampir semua bidang investasi keuangan, termasuk saham, obligasi, berjangka, valuta asing, dan mata uang digital, kursus ini menggunakan versi sederhana dari strategi kekacauan sebagai titik awal untuk meningkatkan minat dan pendapatan investasi Anda.

Seperti namanya, dasar teoritis metode operasi kekacauan adalah teori kekacauan, yang diusulkan oleh meteorolog Edward Lorenz. Ini adalah salah satu penemuan ilmiah terbesar di akhir abad ke-20.

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

  • Buaya

  • Fraktal

  • Momentum

  • Percepatan

  • Garis Keseimbangan

img

Mari kita lihat grafik di atas. Alligator adalah seperangkat garis keseimbangan menggunakan geometri fraktal dan dinamika nonlinier. Intinya adalah untuk memperluas rata-rata bergerak bertimbang eksponensial, yang merupakan semacam garis rata-rata, tetapi metode perhitungannya sedikit lebih rumit daripada garis rata-rata biasa. Selanjutnya, mari kita lihat bagaimana mendefinisikan Alligator di 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 mendefinisikan 2 parameter eksternal N1 dan N2, dan kemudian menghitung HL rata-rata harga tertinggi dan harga terendah sesuai dengan parameter eksternal, dan kemudian menghitung HL rata-rata dengan parameter yang berbeda. untuk gigi, itu adalah rata-rata periode tengah garis tengah, dan rahang adalah rata-rata periode besar garis tengah. dalam strategi ini, kita menggunakan rahang.

Dalam metode operasi kekacauan, konsep fraktal didefinisikan dengan jelas. Kita dapat membuat analogi: buka telapak tangan, dengan jari-jari menghadap ke atas, jari tengah adalah fraktal atas, jari kelingking kiri dan jari manis, dan jari telunjuk kanan dan jempol masing-masing, mewakili garis K tanpa rekor tinggi. Fraktal dasar terdiri dari lima garis K ini. Kemudian Anda dapat mendefinisikan fraktal dengan kode 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);

Setelah menghitung alligator dan fraktal, kita dapat menulis strategi operasi kekacauan sederhana berdasarkan dua kondisi ini, dan menggunakan sekelompok garis rata-rata bergerak yang diberi bobot eksponensial sebagai harga acuan untuk menghitung indeks alligator dan fraktal. Tentu saja strategi operasi kekacauan asli akan lebih kompleks. Kode adalah sebagai berikut:

// 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 komentar rinci ke dalam kode secara langsung.

  • Posisi pembukaan panjang: jika saat ini tidak ada pesanan posisi panjang, dan harga penutupan naik di bawah fraktal atas, dan fraktal atas berada di atas buaya.
  • Posisi pembukaan pendek: jika saat ini tidak ada pesanan posisi pendek, 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 naik di atas dagu buaya.

Selanjutnya, mari kita lihat seperti apa hasil dari backtest strategi operasi kekacauan sederhana ini. Untuk membuat backtest lebih dekat dengan lingkungan pasar yang sebenarnya, komisi ditetapkan menjadi dua kali nilai tukar, dan posisi pembukaan dan penutupan tunduk pada titik geser masing-masing dua lompatan. Jenis data backtest adalah indeks rebar, dan jenis perdagangan adalah rebar kekuatan utama terus menerus, dengan posisi pembukaan 1 lot tetap. Berikut ini adalah laporan kinerja backtest awal pada tingkat 1 jam.

img

Dari kurva modal dan data kinerja backtest, strategi tersebut berkinerja baik, dan kurva modal secara keseluruhan terus meningkat. Namun, sejak akhir 2016, karakteristik pasar varietas rebar telah berubah, dari tren volatilitas tinggi yang sepihak ke tren volatilitas luas. Dari perspektif kurva modal, keuntungan dari tahun 2017 hingga sekarang jelas lemah.

Dengan kata lain, esensi dari metode operasi kekacauan adalah menemukan titik balik, tanpa peduli bagaimana pasar berjalan atau apakah itu benar atau palsu breakout. Jika itu menerobos fraktal, itu akan memasuki pasar langsung. Jangan pernah mencoba untuk memprediksi pasar, tetapi menjadi pengamat dan pengikut.

3.2 Pengembangan strategi arbitrase CTA berdasarkan bahasa JavaScript

George Soros mengemukakan proposisi penting dalam The Alchemy of Finance yang ditulis pada tahun 1987: Saya percaya harga pasar selalu salah dalam arti bahwa mereka menyajikan pandangan bias tentang masa depan. Dia percaya bahwa hipotesis efisiensi pasar hanyalah hipotesis teoritis. Sebenarnya, peserta pasar tidak selalu rasional, dan pada setiap titik waktu, peserta tidak dapat sepenuhnya memperoleh dan secara obyektif menafsirkan semua informasi. Selain itu, bahkan jika itu adalah informasi yang sama, umpan balik semua orang berbeda. Artinya, harga itu sendiri sudah mengandung harapan yang salah dari peserta pasar, jadi pada dasarnya, harga pasar selalu salah. Ini mungkin menjadi sumber keuntungan dari arbitrager.

Menurut prinsip-prinsip di atas, kita dapat mengetahui bahwa di pasar berjangka yang tidak efektif, alasan mengapa dampak pasar pada kontrak pengiriman di periode yang berbeda tidak selalu sinkron, dan penetapan harga tidak sepenuhnya efektif. Kemudian, berdasarkan harga kontrak pengiriman objek transaksi yang sama di periode yang berbeda, jika ada perbedaan harga yang besar antara kedua harga, kita dapat membeli dan menjual kontrak berjangka di periode yang berbeda pada saat yang sama untuk arbitrage lintas periode.

Seperti komoditas berjangka, mata uang digital juga memiliki portofolio kontrak arbitrage lintas periode. Misalnya, di bursa OKEX, ada: ETC minggu ini, ETC minggu depan, ETC kuartal. Misalnya, misalkan perbedaan harga antara minggu saat ini ETC dan kuartal ETC tetap sekitar 5 untuk waktu yang lama. Jika perbedaan harga mencapai 7 suatu hari, kita berharap bahwa perbedaan harga akan kembali ke 5 di masa depan. Kemudian kita dapat menjual ETC minggu itu dan membeli kuartal ETC pada saat yang sama untuk short perbedaan harga, dan sebaliknya.

Meskipun perbedaan harga ini ada, ada banyak ketidakpastian dalam arbitrage manual karena operasi manual yang memakan waktu, akurasi yang buruk dan dampak perubahan harga. Pesona arbitrage kuantitatif terletak pada menangkap peluang arbitrage melalui model kuantitatif dan merumuskan strategi perdagangan arbitrage, serta menempatkan pesanan perdagangan secara otomatis ke bursa melalui algoritma terprogram, sehingga menangkap peluang dengan cepat dan akurat dan menghasilkan keuntungan secara efisien dan stabil.

Kursus ini akan mengajarkan Anda cara menggunakan Platform Perdagangan Kuantum FMZ dan kontrak berjangka ETC di bursa OKEX untuk menunjukkan cara menangkap peluang arbitrage instan, merebut keuntungan yang dapat dilihat setiap saat, dan lindung nilai risiko yang mungkin terjadi dalam perdagangan mata uang digital dengan strategi arbitrage sederhana.

Membuat strategi arbitrage lintas periode untuk mata uang digitalKesulitan: Normal

Lingkungan Strategi

  • Objek transaksi: Ether Classic (ETC)
  • Data spread: ETC minggu saat ini - ETC kuartal (menghilangkan tes kointegrasi)
  • Periode transaksi: 5 menit
  • Periode transaksi: 5 menit
  • Jenis transaksi: periode silang dari jenis yang sama

Logika strategi

  • Kondisi untuk membuka posisi dengan pergi panjang selisih harga: jika akun arus tidak memiliki posisi dan perbedaan harga kurang dari batas bawah bola, maka pergi panjang selisih harga. yaitu, membeli posisi pembukaan ETC untuk minggu, menjual posisi pembukaan ETC untuk kuartal.
  • Kondisi untuk membuka posisi dengan shorting perbedaan harga: jika tidak ada posisi di rekening arus, dan perbedaan harga lebih besar dari batas atas bola, maka pergi shorting perbedaan harga. yaitu, menjual posisi pembukaan ETC untuk minggu, membeli posisi pembukaan ETC untuk kuartal.
  • Kondisi untuk menutup posisi dengan pergi panjang selisih harga: jika akun saat ini memegang pesanan panjang ETC dalam minggu saat ini dan memegang pesanan pendek ETC kuartal, dan perbedaan harga lebih besar dari batas tengah bola, maka tutup panjang selisih harga. yaitu, jual posisi penutupan ETC untuk minggu, beli posisi penutupan ETC untuk kuartal.
  • Kondisi untuk menutup posisi dengan pergi pendek perbedaan harga: jika akun saat ini memegang pergi pesanan pendek ETC dalam minggu saat ini, dan memegang pergi pesanan panjang ETC kuartal, dan perbedaan harga kurang dari batas tengah bola, maka menutup pendek perbedaan harga. yaitu, membeli posisi penutupan ETC untuk minggu, menjual posisi penutupan ETC untuk kuartal.

Di atas adalah deskripsi logika sederhana dari strategi arbitrage lintas periode mata uang digital. jadi bagaimana menerapkan ide-ide kami dalam program? kami mencoba membangun kerangka kerja di 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 pengawas. Tidak ada perbedaan penting dalam transaksi sistem. Ini tidak lebih dari memperoleh data, menghitung data, menempatkan transaksi pesanan, dan memproses setelah menempatkan pesanan. Hal yang sama berlaku dalam program. Pertama, program akan mengeksekusi fungsi utama di baris 20, yang merupakan konvensi. Ketika program menyelesaikan proses pra-proses strategi perdagangan (jika ada), itu akan memasuki mode loop tak terbatas, yaitu mode polling. Dalam mode polling, fungsi onTick akan dieksekusi berulang kali.

Kemudian dalam fungsi onTick, itu adalah proses perdagangan kita dalam transaksi subjektif: pertama, mendapatkan data harga dasar, kemudian mendapatkan saldo akun, kemudian menghitung indeks, kemudian menghitung kondisi perdagangan dan menempatkan pesanan, dan akhirnya pemrosesan setelah menempatkan pesanan, termasuk pembatalan pesanan, menarik, dan memproses kontrak tunggal.

Kerangka kerja strategi dapat dengan mudah diatur sesuai dengan ide strategi dan proses transaksi.

  • Pemrosesan pra sebelum transaksi.
  • Dapatkan dan hitung data.
  • Tempatkan pesanan dan tangani nanti.

Selanjutnya, kita perlu mengisi kode detail yang diperlukan dalam kerangka strategi sesuai dengan proses transaksi yang sebenarnya dan rincian transaksi.

I. Pra-pengolahan sebelum transaksi

1. Mengumumkan variabel global yang diperlukan dalam ruang lingkup global.

  • Mendeklarasikan objek grafik untuk grafik konfigurasi
var chart = {}
  • Panggilan fungsi Chart dan menginisialisasi grafik
var ObjChart = Chart ( chart )
  • Mengisyaratkan array kosong untuk menyimpan seri perbedaan harga
var bars = []
  • Mengisyaratkan variabel timestamp data riwayat catatan
var oldTime = 0

2. Mengkonfigurasi parameter eksternal dari 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. Mendefinisikan fungsi pemrosesan data

  • Fungsi data dasar: Data Buat constructor, Data, dan tentukan sifat internalnya. Termasuk: data akun, data posisi, data timestamp K-line, harga beli/jual kontrak arbitrage A/B, dan perbedaan 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 posisi: mp ()) Melalui seluruh array posisi dan mengembalikan jumlah posisi kontrak dan arah yang ditentukan. Jika tidak, kembalikan false.
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-line dan fungsi indikator: boll() Sebuah urutan K-line baru disintesis sesuai dengan data perbedaan harga arbitrage positif / arbitrage negatif. Data trek atas, trek tengah dan trek bawah yang dihitung oleh indikator 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 Pass in the order contract name and order type, then place the order with consideration, and return the result after placing the order. Karena perlu untuk menempatkan dua order di arah yang berbeda pada saat yang sama, membeli / menjual satu harga dikonversi dalam fungsi sesuai dengan nama kontrak dari 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 array dari semua pesanan yang belum selesai dan batalkan satu per satu. Selain itu, false dikembalikan jika ada pesanan yang belum terisi, dan true dikembalikan jika tidak ada pesanan yang belum terisi.
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
}
  • Tangani memegang kontrak tunggal: isEven ((() Dalam kasus satu kaki dalam transaksi arbitrage, kita hanya akan menutup semua posisi.
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 gambar: gambarGambar ()) Panggil metode ObjChart Add (), tarik data pasar dan data indikator yang diperlukan dalam grafik: jalur atas, jalur tengah, jalur bawah, perbedaan harga arbitrage 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 banyak