Monday 3 July 2017

Trading Strategi Matlab


Bitfinex hari ini mengumumkan dimulainya kontrak pertambangan sebagai produk perdagangan di platform mereka. Total 100 THS (terahashes per second) yang kadaluarsa dalam 3 bulan telah tersedia untuk diperdagangkan dengan nama TH1BTC. 100 THS adalah bagian dari kolam yang lebih besar dari 3.500 THS sehingga lebih banyak kontrak pertambangan mungkin tersedia di masa depan. Menariknya, ini menandai pertama kalinya bahwa adalah mungkin untuk mempersingkat kontrak pertambangan. Korsletan kontrak penambangan berarti menerima sejumlah Bitcoin sekarang (harga yang kami jual) dan kemudian membayar dividen (di Bitcoin) selama 3 bulan berikutnya sampai kontrak berakhir pada pertengahan Desember. Keuntungan dibuat jika jumlah semua dividen dibayarkan (ditambah bunga yang kami bayar untuk kontrak) kurang dari yang kami terima pada awalnya saat kami menjual kontrak (kepada orang lain dengan jelas). Ini berarti harga TH1BTC harus bergantung pada 3 variabel (dalam penurunan urutan kepentingan): Perubahan kesulitan pertambangan sampai 15 Desember Waktu yang tersisa sampai 15 Desember Tingkat bunga (tingkat swap) Jika kesulitan meningkatkan pembayaran dividen menjadi lebih kecil karena 1 THS mewakili sebagian kecil dari keseluruhan hashing jaringan. Oleh karena itu harga satu kontrak harus turun jika kesulitan meningkat. Semakin dekat kita sampai kadaluwarsa demam Bitcoin bisa dipikirkan dengan total 1 THS. Oleh karena itu harga satu kontrak harus turun mendekati kita sampai kadaluarsa dan mencapai harga 0 saat kadaluarsa. Semakin tinggi tingkat suku bunga semakin mahal harganya masuk dan mempertahankan kontrak selama 3 bulan penuh. Bitfinex tidak menawarkan swap 90 hari, oleh karena itu memasukkan sebuah kontrak dengan tujuan untuk menahannya sampai akhiran mengandung sedikit risiko suku bunga karena pada suatu titik swap baru harus diambil (dengan tingkat bunga yang berpotensi tidak menguntungkan). Hal ini kurang menjadi masalah saat terjadi lama (tingkat Bitcoin biasanya rendah) daripada saat akan mengalami short (hanya ada maksimum 100 kontrak yang tersedia secara total, tidak ada korslet telanjang). Untuk mengimbangi harga risiko harus meningkat saat tingkat swap meningkat. Yang tidak diketahui besar tentu saja perubahan dalam kesulitan pertambangan selama 90 hari ke depan. Pada gambar berikut kita melihat bagaimana kesulitan berubah selama 6 bulan sebelumnya. Data berasal dari Tradeblock dan ini tidak hanya menunjukkan representasi grafis dari perubahan masa lalu dalam kesulitan (perubahan kesulitan setiap 14 hari tergantung pada tingkat hash masa lalu. Informasi lebih lanjut dapat ditemukan di wiki) tetapi juga beberapa statistik ringkasan dasar. Kesulitan rata-rata meningkat 27 selama 30 hari terakhir dan 77 selama 60 hari terakhir. Untuk memperkirakan harga wajar satu TH1BTC, kita akan mengasumsikan bahwa tingkat kesulitan akan meningkat rata-rata 15 per bulan selama 3 bulan ke depan. Saat ini harga beli satu kontrak senilai 1 THS adalah 2 BTC. Biaya renang adalah 3 dan kami akan mengabaikan suku bunga. Mengisi semua informasi, kita mendapatkan hasil sebagai berikut: Oleh karena itu jika kita memiliki satu kontrak panjang berdasarkan asumsi kita, kita akan rugi sekitar 0,39 Bitcoin (sedikit lebih nyata karena kita akan mulai menambang pada pertengahan September sampai tengah Dari Desember) karena dividen yang diharapkan (pendapatan bulanan) tidak akan mencakup biaya awal 2 BTC sebelum kontrak berakhir. Di sisi lain, akan mengalami short on harga 2 Bitcoin akan menghasilkan keuntungan sekitar 0,39 Bitcoin per kontrak. Ingatlah bahwa kita tidak termasuk biaya swap yang saat ini sekitar 1 per hari (). Ada dua cara untuk melihat hasilnya. Bisa dikatakan harga TH1BTC saat ini dinilai terlalu tinggi dan harus mendekati sekitar 1,5 BTC. Jika kita asumsikan kesulitan akan meningkat lebih dari 15 per bulan maka harga harus lebih rendah dari itu. Atau kita bisa mengatakan bahwa pasar itu efisien dan harganya benar, yang akan menyiratkan bahwa pasar memperkirakan akan mengalami penurunan rata-rata sekitar 2 per bulan selama 90 hari berikutnya. Either way, hasilnya akan diketahui dengan pasti dalam 90 hari. Berjuang untuk pulih dari kecelakaan flash Bitcoin terbaru yang berasal dari Bitfinex hanya empat hari lagi. Harga Bitcoin naik lagi hari ini karena pedagang margin mendapat posisi mereka dilikuidasi di BTC-e. Acara dimulai pada pukul 13:36 (UTC1) saat pesanan jual besar mulai muncul di bursa bertipe Bitcoin terbesar ketiga BTC-e. Momentum ke bawah meningkat dengan mantap saat orderbook menjadi semakin tipis, menabrak harga hingga rendah USD 309 per Bitcoin pada 1,43 PM. Dalam beberapa menit berikutnya harga rebound dengan cepat pada volume tipis kembali ke sekitar USD 442 karena pedagang arbitrase mulai mengambil keuntungan dari diskon tersebut dibandingkan dengan bursa lainnya. BTC-e adalah satu dari sedikit bursa besar yang menawarkan perdagangan margin ke klien mereka melalui platform MetaTrader sejak November 2013, namun rincian tentang siapa yang secara tepat memberikan dana yang diperlukan untuk perdagangan marjin tetap tidak jelas. Bentuk dan terutama timing titik tabrakan terhadap pedagang margin yang dilikuidasi (atau stop order dieksekusi), mirip dengan apa yang terjadi pada Bitfinex beberapa hari yang lalu. Namun, tidak seperti Bitfinex yang transparan tentang posisi open swap. BTC-e tidak menyediakan data penting yang diperlukan untuk memberikan analisis yang lebih menyeluruh sehingga pernyataan terakhir ini hanya bisa dianggap sebagai tebakan yang bagus. Tidak seperti Bitfinex, yang mengandalkan algoritma tersembunyi dalam upaya mengendalikan aliran pesanan. BTC-e tampaknya tidak memiliki perlindungan khusus untuk mengurangi kejadian tersebut. Penurunan di bawah 400 terutama disebabkan oleh kurangnya tawaran di pasar saham dan bukan karena pasar percaya bahwa nilai sebenarnya di bawah 400, karena rebound kembali ke 440 hanya beberapa menit kemudian pada dasarnya terbukti. Oleh karena itu, menghentikan perdagangan pada volatilitas ke bawah yang ekstrim dapat dengan mudah mencegah pertumpahan darah di antara pedagang margin dengan memberi kesempatan kepada pelaku pasar lainnya untuk menebalkan orderbook. Update 4:58 PM (UTC1): BrCapoeira mengeposkan di Reddit sebuah grafik menarik berdasarkan data dari platform Metatrader: Grafik ini menyiratkan bahwa satu pesanan besar adalah penyebab acara ini. Apakah pesanan ini dibuat karena margin call, kesalahan sederhana, memanipulasi pasar, atau membuka posisi short besar tetap tidak jelas. Akal sehat menyarankan bahwa itu mungkin hasil dari margin call dari satu trader besar. Pos saya sebelumnya tentang topik ini telah dibicarakan saat diskusi setelah terjadinya kecelakaan flash Bitcoin yang terbaru. Coindesk adalah salah satu yang pertama memungutnya dan sejak itu berbagai pos tentang transparansi dan kemungkinan tanggung jawab pertukaran untuk mengelola eksekusi order secara aktif mulai muncul. Sebagai hasil dari peristiwa tersebut, Josh Rossi, Wakil Presiden Pengembangan Bisnis di Bitfinex, melanjutkan Reddit untuk secara terbuka membahas beberapa masalah yang diajukan melawan pertukaran tersebut. Fakta yang kami tahu pasti ada beberapa perintah penjualan besar sesaat sebelum kecelakaan dimulai, misalnya order sell 500 di Bitstamp pukul 9.49 (UTC1), sekitar 6 menit sebelum order sell besar di Bitfinex memicu tabrakan tersebut. Namun, datanya tidak memberitahu kita apakah itu insider trading, beberapa bentuk manipulasi pasar. Atau kesalahan sederhana Faktanya adalah bahwa setelah posisi crash over swap Bitcoin dibuka dari sekitar 28m sampai 24m yang mengindikasikan sekitar 8400 posisi margin long ditutup (dengan asumsi rata-rata 475) dengan satu cara (margin call) atau lainnya (stop order hit). Data tidak memberi tahu kami apa rasionya tapi menurut Josh hanya sekitar 650 Bitcoin yang dijual sebagai hasil dari margin call. Seperti yang ditunjukkan dengan benar oleh Jonathan Levin. Faktanya adalah bahwa sekitar 24 jam sebelum crash flash bitcoin sampai kecelakaan itu sendiri 1000 Bitcoin tambahan dibawa keluar dalam posisi pendek dan sekitar 2.500 celana pendek kemudian ditutup saat kecelakaan terjadi. Apakah celana pendek itu dibuka untuk melindungi posisi yang ada, karena usaha jahat untuk memicu margin call, atau cara untuk menjalankan pasar dengan menggunakan informasi pribadi tidak dapat ditentukan dari data yang ada (memang terlihat curiga sekalipun). Apa yang tak terduga Secara pribadi, yang menarik bukanlah bahwa flash Bitcoin jatuh. Fluktuasi harga yang mendadak terjadi di masa lalu dan akan terjadi di masa depan, terutama di pasar yang tidak likuid seperti Bitcoin. Yang menarik adalah keterlibatan Bitfinex dan bagaimana mereka secara aktif mengatur pelaksanaan order tanpa menginformasikan pelaku pasar terlebih dahulu. Mesin pencocokan Bitfinex tidak dihentikan selama seluruh benturan meskipun hal itu melambat (tapi tidak seburuk ketertinggalan 70 menit yang terkenal di bursa MtGox yang sekarang sudah tidak berfungsi lagi saat kecelakaan di tahun 2012). Namun, yang dilakukan Bitfinex adalah mereka mengenalkan sesuatu yang sekarang mereka anggap sebagai gundukan kecepatan. Apa artinya adalah bahwa mereka pada dasarnya menandai perintah yang mereka anggap tidak valid atau berpotensi berbahaya dan memperlambatnya secara sengaja. Pada pandangan pertama ini mungkin tampak seperti ide bagus. Siapa yang tidak ingin filter untuk menghapus atau memperlambat perintah jahat Namun, begitu sering dengan hal-hal semacam itu, iblis ada dalam detailnya. Masalahnya adalah bahwa Bitfinex belum (dan mungkin tidak akan pernah) membuat publik bagaimana tepatnya mereka mengkategorikan sebuah perintah saat 8220bad8221 dan 8220slow turun8221. Jika peserta pasar memutuskan untuk memasang order jual besar terhadap orderbook tipis maka itu adalah keputusannya. Entah tindakannya memang dimaksudkan atau tidak tidak sampai ke bursa untuk memutuskan. Mungkin saja peserta pasar ini hanya orang pertama yang bereaksi terhadap peristiwa besar dan sepenuhnya bersedia menanggung biaya tambahan selip yang dihasilkan untuk mengantisipasi pergerakan harga yang besar. Sama sekali tidak ada cara untuk secara akurat mengklasifikasikan pesanan secara apriori sebagai barang berkualitas baik yang secara otomatis akan mengasumsikan pengetahuan tentang semua kejadian di masa depan. Apa yang bisa diperbaiki Kesalahan (8220fat finger8221, kekacauan algoritme) terjadi, margin dipanggil dan orang mencoba memainkan sistem dengan segala cara. Logikanya harus ada perlindungan untuk melindungi pasar dan partisipannya. Bitfinex benar-benar menyadari potensi aliran toksik dan tindakan balasan yang disiapkan. Satu-satunya hal yang mereka lupakan adalah memberi tahu klien mereka tentang fitur keamanan tersembunyi. Menyembunyikan perlindungan tersebut dari masyarakat menambah ketidakpastian ke pasar (terutama sekarang kita tahu mereka ada dan kadang melakukan sesuatu) dan pada dasarnya menempatkan setiap kepercayaan pedagang ke tangan Bitfinex. Pada titik ini trader hanya bisa berharap bahwa Bitfinex akan selalu bertindak sesuai dengan keinginan klien mereka. Harapan ini mungkin sia-sia, karena Bitfinex menghasilkan uang dari biaya perdagangan, secara independen apakah seorang pedagang benar-benar menghasilkan uang. Kita tidak perlu memikirkan lama untuk menyadari potensi tersembunyi penyalahgunaan dalam sistem semacam itu. Alasan utama dibesarkan oleh Josh mengapa Bitfinex tidak bermaksud mempublikasikan algoritme mereka adalah untuk menghindari memberi para pedagang kemungkinan untuk memanfaatkannya itu palsu dan berikut ini menunjukkan mengapa. Itu adalah pemutus arus pasar resmi yang digunakan oleh NASDAQ, diposkan secara online dan sepenuhnya transparan untuk setiap peserta pasar. Aturan tersebut tentu saja tidak sempurna namun sederhana, transparan, dan bekerja untuk salah satu pasar saham terbesar di dunia. Sekarang, saya sangat menghormati orang-orang yang bekerja di platform Bitfinex, namun saya meragukan bahwa mereka berhasil menemukan algoritma yang melindungi peserta pasar dengan lebih baik daripada yang digunakan oleh perdagangan valuta asing lebih dari 900 juta saham per hari rata-rata. . Dan jika mereka melakukannya, sekarang adalah kesempatan bagi Bitfinex untuk membuktikannya kepada dunia dan mungkin menulis sejarah dengan mengajarkan anak laki-laki besar bagaimana cara menjalankan pertukaran dengan benar. Bila menyangkut transparansi bursa publik adalah suatu keharusan, tidak hanya untuk Bitfinex tapi juga untuk pertukaran apapun. Pelaku pasar harus tahu persis apa yang terjadi saat mereka melakukan pemesanan dan seharusnya tidak bergantung pada itikad baik saja. Pengamanan penting karena kecelakaan terjadi dan pasar mogok namun tidak sampai pada pertukaran untuk terlibat dalam diskriminasi perintah rahasia. Ada berbagai cara untuk melindungi pasar keuangan dan tidak satupun dari mereka sempurna. Menambahkan kompleksitas biasanya meningkatkan kesempatan untuk efek samping yang tidak diinginkan dan oleh karena itu pendekatan sederhana dan transparan tampaknya lebih tepat daripada yang tersembunyi dan rumit. Dua hari yang lalu BitMEX mengurangi biaya perdagangan mereka menjadi 0 dan merayakannya dengan merilis basis pasar yang membuat bot di Github. BitMEX saat ini menjalankan tantangan perdagangan sampai 29 Agustus 2014 untuk mempromosikan platform baru mereka. Melepaskan marking pasar mungkin merupakan cara yang menarik dan efektif untuk meningkatkan lalu lintas API dan menguji tegangan sedikit platform. Tentu saja aku tidak tahan dan melihat-lihat. Pembuat pasar adalah sebuah cabang dari Liquidbot. Yang asli dirancang untuk berjalan di bursa MtGox sekarang obsolet. Ada beberapa perubahan kecil (kelas api baru yang terhubung ke BitMEX, beberapa cetakan tambahan untuk konsol, perubahan untuk menyesuaikan kontrak berjangka, dan cetak besar dan tidak perlu untuk konsol saat memulai) namun tidak ada perubahan signifikan pada logika perdagangan. Algoritma menggunakan REST dan hanya memeriksa perubahan setiap 60 detik. Ini sudah mendiskualifikasi bot karena sangat penting terlalu lambat untuk bereaksi terhadap perubahan yang terjadi dalam orderbook. BitMEX membatasi permintaan ke API REST sampai 150 per 5 menit sehingga Anda dapat mencoba mengurangi waktu 60 detik menjadi seperti 3 tapi tidak berhasil mengubah kenyataan bahwa begitu pasar mulai bergerak, Anda akan mencapai batas dan terjebak dengan posisi terbuka. Agar adil, BitMEX menyediakan bot lebih sebagai aksi pemasaran dan secara eksplisit menyatakan bahwa beralih ke WebSocket akan sangat bermanfaat karena memungkinkan pembaruan waktu nyata. Secara keseluruhan, algoritma ini ditulis dengan kuat, bekerja secara teknis dan mudah dilakukan, namun tidak menghasilkan banyak uang dalam jangka panjang. Jika seseorang secara serius mempertimbangkan untuk menggunakan bot ini, saya akan merekomendasikan perubahan kecil berikut untuk membuat kode lebih bermanfaat: 1. Ubah ke Websocket 2. Posisi keluar di dekat: 3. Bangun perintah mulai dari titik tengah: Selain itu, saya sarankan untuk mengukur Volatilitas dalam beberapa cara dan menyesuaikan jarak antara pesanan secara dinamis maupun ukurannya. Selama pengujian, API selalu responsif dan akurat. Volume pada bursa masih rendah namun dasar-dasar platform terlihat menjanjikan. Bot ini adalah alat yang menyenangkan untuk mengenalkan pengguna ke dalam dunia pembuatan pasar dan perdagangan algoritmik namun tidak berhasil melawan algoritma yang sudah mapan. Catatan: Jika Anda mempertimbangkan untuk menggunakan algoritma ini, ingatlah bahwa pembuatan pasar adalah pekerjaan penuh waktu. Apapun yang kurang dari dedikasi lengkap, waktu reaksi cepat, dan 100 uptime akan menyebabkan Anda kehilangan uang. Edit: Tindak lanjuti di sini Hari Ini harga Bitcoin mengambil menyelam sebagai pedagang margin di salah satu bursa terbesar Bitfinex mendapat perintah mereka dilikuidasi. Bagi banyak pengamat pasar yang dekat dan pedagang yang lebih canggih, hal ini tidak mengejutkan. Kenyataannya, posisi lama terus berkembang selama beberapa bulan terakhir untuk mengantisipasi gelembung baru harga Bitcoin dan mencapai level 30m dalam posisi swap pada Bitfinex. Sekarang, ini tidak menjadi masalah sendirian karena ada cukup modal yang mendukung pinjaman. Sayangnya, sebagian besar posisi panjang itu masuk sekitar 600 8211 640 USDBTC dan agunannya sebagian besar disediakan di Bitcoins itu sendiri. Bagan berikut menunjukkan dengan baik penumpukan posisi panjang, mendekati sekitar 14 Juli dengan nilai tukar mendekati 32m. Menjalankan beberapa matematika cepat berdasarkan margin pemeliharaan Bitfinex dari 13 dan dengan asumsi Bitcoin sebagai jaminan, kami mendapati bahwa margin call harus dimulai di sekitar tanda 520 8211 540 USDBTC. Kemarin, harga tutup dan hari ini mereka akhirnya melompati tebing. Masalahnya adalah bahwa sekali margin call yang ada di dalam Anda memiliki efek cascading yang merobek-robek buku pesanan, menyebabkan pesanan lebih banyak lagi mencapai titik tidak dapat kembali dan meningkatkan momentum ke bawah lebih jauh. Peristiwa semacam ini tidak terbatas pada pertukaran Bitcoin namun juga dapat terjadi pada bursa utama seperti pada saat terjadi kecelakaan flash 2010 di AS. Penyebab seperti kilapan kilat bisa bervariasi dan beralih dari kesalahan jari gemuk ke kesalahan pemrograman hingga turunan margin. Sangat menarik untuk melihat bagaimana pertukaran berurusan dengan kejadian ini. Di AS, Nasdaq menerapkan pemutus arus pasar yang akan menyebabkan perdagangan berhenti dalam keadaan ekstrem seperti itu. Pasar Bitcoin belum begitu maju dan biasanya terus diperdagangkan. Jika kita melihat tindakan pesanan pada Bitfinex hari ini, kita melihat sesuatu yang sangat aneh: Sepertinya (dan ini hanya tebakan karena tidak ada komentar resmi dari bursa) seolah-olah Bitfinex menjalankan algoritma untuk menangani margin calls. Algoritma mulai menjual namun membatasi diri pada penurunan harga 10 dalam waktu 1 menit. Jika harga turun lebih dari 10 dalam 1 menit maka akan berhenti menjual dan menunggu pesanan beli masuk. Sekali lagi ada sejumlah pesanan beli di orderbook yang mulai dijual lagi sampai semua panggilan margin terpenuhi. Edit: LeMogawai adalah orang pertama yang menunjukkan hal ini di pos ini dan ini sesuai dengan pengamatan pribadi saya pada saat acara berlangsung. Hal ini nampaknya menjadi cara yang menarik untuk menghadapi cascading margin call namun bisa juga dianggap sebagai manipulasi pasar batas dari sisi bursa. Dengan menyebarkan pesanan jual dari waktu ke waktu momentum turun berkurang, namun pedagang akhirnya melakukan trading melawan bursa itu sendiri dan bukan pasar lagi. Pertukaran memiliki keuntungan informasi pada saat itu dan karena itu lebih cenderung menguntungkan daripada para pedagang. Untungnya, ini hanya berlangsung sekitar 10 menit setelah kontrol diberikan kembali ke pasar. Bursa lain yang juga menawarkan margin trading seperti BTC-e dan OKcoin sekarang berada dalam posisi yang menguntungkan dan bisa belajar dari berbagai event. Menerapkan sistem yang lebih mirip dengan pemutus arus bursa besar seperti Nasdaq mungkin merupakan langkah awal yang cerdas. Baru-baru ini saya bekerja untuk mendapatkan platform trading baru saya. Versi baru ini didasarkan pada Python, menggunakan MySQL untuk menyimpan database dari semua seri waktu mata uang virtual yang berbeda dengan isi ulang otomatis dari BitcoinCharts dan mengintegrasikan 3 bursa utama MtGox, BTC-E dan Bitstamp. Platform ini akan digunakan sebagai cara untuk mendukung beberapa strategi dan terlibat dalam perdagangan otomatis. Selama berjalan sampai ini, saya memutuskan untuk menarik beberapa data BTC terhadap USD dari BitcoinCharts dan berdasarkan gagasan makalah oleh Hashem dan Timmermann (1995) menerapkan strategi perdagangan sederhana. Idenya adalah untuk meramalkan tanda dari return periode t1 berdasarkan regresi, yang diperkirakan pada pemilihan otomatis indikator teknis selama periode n terakhir sampai t. Kemudian, setelah t1 terjadi, kita me-refresh model dan mencoba memprediksi t2 dengan menggunakan semua data yang tersedia dari n periode terakhir sampai t1 dan seterusnya. Untuk Tesis Sarjana saya, saya memeriksa empat peraturan perdagangan teknis yang berbeda di pasar Forex. Ini menggunakan uji MCS dan SPA untuk mencari model yang valid di antara parameter yang berbeda yang tidak tunduk pada pengintaian data. Dengan memperhitungkan biaya transaksi yang realistis, kami tidak menemukan bukti kelebihan imbal hasil, yang konsisten dengan efisiensi pasar. Dengan kode ini Anda harus bisa mencari peluang arbitrase Bitcoin di BTC-e. Ini menggunakan gagasan satu harga dan menerapkan arbitrase segitiga, dengan mempertimbangkan biaya dan spread. Alasan saya posting di sini adalah meskipun itu berhasil, kemungkinan Anda akan terlalu lambat untuk bersaing dengan investor lain melakukan hal yang sama. Perbaikan yang mungkin dilakukan adalah memperhitungkan kedalaman buku pesanan dan membagi perdagangan secara dinamis, mencoba melemahkan pedagang lain yang melakukan hal yang sama. Juga mengatur semuanya di server khusus yang dekat dengan lokasi fisik mesin pencocokan BTC-e secara drastis akan mengurangi ketertinggalan dan memberi Anda potensi tepi. Posting navigasiSementara saya suka di mana pertanyaan ini terjadi, saya akan menyarankan untuk membuatnya sedikit lebih konkret. Bagian mana dari proses backtesting yang ingin Anda pelajari Ini bisa berkisar dari perkiraan perkiraan pengembalian normal, di mana portofolio kembali dari strategi Anda sudah diberikan untuk menerapkan aturan pembentukan portofolio penuh secara algoritme. Ndash Constantin Dec 30 14 at 21:06 Sejujurnya saya tidak tahu banyak tentang backtesting. Saya diberi tahu bahwa saya harus mendukung strategi baru atau memperbaiki strategi saat ini selama magang. Jadi saya ingin tahu lebih banyak tentang subjek sebelum memulai. Apa bedanya bagian itu? Ndash Maxime Dec 30 14 at 21:31 Ide umum Untuk sekuritas ekuitas, backtest sederhana biasanya terdiri dari dua langkah: Perhitungan pengembalian portofolio yang dihasilkan dari aturan pembentukan portofolio Anda (atau strategi trading) Penyesuaian risiko pengembalian portofolio menggunakan Model penetapan harga aset Langkah 2 hanyalah sebuah regresi dan komputasi sangat sederhana di Matlab. Yang lebih rumit adalah implementasi langkah 1, yang akan mengharuskan Anda untuk merasa sangat nyaman di Matlab, dan ada banyak cara untuk melakukan ini. Jika Anda tahu bagaimana melakukan regresi OLS di Matlab, yang harus Anda fokuskan adalah semua jenis manipulasi matriks. Implementasi dalam formasi Portofolio Matlab dan perhitungan pengembalian Untuk memberi Anda contoh bagaimana strategi perdagangan primitif dapat diterapkan di Matlab, mari berasumsi data pengembalian bulanan dan periode holding yang seragam satu bulan pada n aset selama periode k, di mana i in dan k di . Dengan asumsi tidak ada perubahan komposisi alam semesta saham Anda, matriks pengembalian X Anda adalah dimensi k kali n. X mulai x amp dots amp x amp amp amp vdots amp ddots amp vdots amp ddots amp vdots x amp amp amp amp amp amp v amp amp amp amp amp amp amp amp amp amp amp v amp amp amp amp titik akhir amp x amp amp amp akhir Dihitung sebagai x frac -1. Dengan asumsi bahwa kriteria seleksi Anda adalah semacam karakteristik saham yang tersedia pada frekuensi bulanan, Anda juga akan memiliki matriks karakteristik C. Anda kemudian bisa menulis sebuah algoritma yang mengidentifikasi entri-entri di C yang memenuhi kriteria seleksi Anda (misalnya melebihi ambang batas tertentu ) Dan ganti entri yang sesuai (di mana i dan t adalah sama) dari matriks indikator I (yang telah diinisialisasi sebagai matriks nol dengan menggunakan fungsi nol) dengan yang. Anda kemudian dapat mengalikan entri saya dengan matriks pengembalian X untuk mendapatkan matriks R yang menunjukkan hasil yang dihasilkan dari kepemilikan Anda. Anda kemudian dapat menghitung rata-rata entri non-nol untuk setiap baris R untuk mendapatkan vektor pengembalian portofolio Anda. Penyesuaian risiko dan identifikasi abnormal return Pada langkah 2 Anda membandingkan vektor ini dengan tingkat pengembalian normal yang diperoleh dari estimasi regresi model penetapan harga aset seperti model Fama-French. Dengan mengurangi vektor pengembalian normal dari vektor pengembalian portofolio Anda, Anda menentukan apakah strategi trading Anda menghasilkan return abnormal yang positif, itulah yang Anda inginkan. Rekomendasi Jika Anda baru mengenal Matlab, saya pribadi menyarankan Anda untuk membiasakan diri dengan menerapkan strategi sederhana ini sebelum merelaksasi beberapa asumsi yang menyederhanakan (seperti periode memegang dan periodisitas yang seragam) dan melanjutkan ke implementasi yang lebih canggih. Sekali lagi, apa yang ingin saya stres adalah bahwa ini mengharuskan Anda untuk merasa sangat nyaman dengan Matlab dan terutama berbagai cara untuk memanipulasi matriks, yang dapat memakan waktu lama. Jika Anda tidak diharuskan menggunakan Matlab untuk magang Anda dan ingin mendapatkan hasil dengan cepat, Anda bisa melakukan langkah 1 di Excel sebagai gantinya, yang membosankan, tapi tidak memerlukan investasi awal (berharga) yang perlu Anda buat untuk Matlab. Untuk menjadi akrab dengan Matlab, saya yakin Anda telah menemukan dokumentasi yang sangat bagus yang menyertainya. Itu, bagi saya, adalah sumber tunggal yang paling berharga dan mungkin lebih berguna daripada sumber keuangan lainnya yang lebih spesifik (yang dengannya saya akan menunggu sampai Anda mengenal Matlab itu sendiri). Semua yang diperlukan untuk menentukan tingkat pengembalian normal adalah regresi OLS dan pemahaman dasar mengenai model penetapan harga aset. Jawab pada tanggal 22 Desember di 22: 20MatlabTrading Posting ini adalah tentang betapa pentingnya menggunakan berbagai jenis metode pengoptimalan seperti algoritma genetika dan pararelasi untuk mendapatkan hasil lebih cepat. Optimalisasi Algoritma Genetika Terlepas dari kenyataan bahwa prinsip algoritma genetika (evolusioner) dijelaskan dengan sangat baik di webinar MathWorks, namun demikian, hanya digunakan untuk optimalisasi pilihan kelompok strategi dari satu set. Ini adalah contoh bagus dari penggunaan algoritme ini, namun terjadi bahwa ada kebutuhan untuk menetapkan banyak variabel dengan interval yang signifikan untuk satu strategi, Anda tidak dapat melakukannya dengan satu iterasi dan paralelisasi proses perhitungan 8211 dapat memakan waktu beberapa hari. . Pastinya, ada strategi di tahap akhir optimasi. Ketika kita hampir pasti tahu strategi tradingnya sukses, kita bisa menunggu beberapa hari juga atau menyewakan keseluruhan klaster - hasilnya mungkin worth it. Namun, jika kita perlu memperkirakan hasil strategi besar dan memutuskan apakah perlu untuk menghabiskan waktu, maka algoritma genetika mungkin sangat sesuai. Kami menyediakan kemungkinan untuk menggunakan tiga metode untuk mengoptimalkan strategi di WFAToolbox: Metode linier 8211 adalah cara pemilahan yang biasa dimana Anda akan melihat semua hasil antara (suboptimal). Ini memberikan akurasi maksimal. Metode paralel 8211 semua kernel CPU Anda akan digunakan. Ini tidak memungkinkan untuk melihat hasil antara, namun secara signifikan mempercepat operasi. Ini memberikan akurasi maksimal saat kenaikan kecepatan komputasi. Metode genetik 8211 menggunakan algoritma pengoptimalan evolusioner. Hal ini memungkinkan untuk melihat nilai suboptimal, namun memberikan hasil mendekati yang terbaik. Ini bukan metode yang sangat akurat, namun cukup tepat untuk strategi awal. Sangat cepat. Kita sering ditanya apakah WFAToolbox - Walk-Forward Analysis Toolbox untuk MATLAB memiliki kemampuan untuk menggunakan GPU dalam perhitungan. Sayangnya, GPU tidak cocok untuk semua tugas dan penggunaannya sangat spesifik. Untuk menggunakannya, Anda perlu menyesuaikan logika dan kode masing-masing strategi untuk menguji core grafis. Sayangnya, karena metode non-universalitas seperti itu, seseorang tidak dapat menggunakan GPU di WFAToolbox. Melanjutkan Bagian 2 dari pembahasan masalah dan solusi dalam pengujian dan analisis strategi perdagangan algoritmik di MATLAB, saya mengundang Anda untuk membaca tulisan ini tentang masalah ketidaktersediaan visualisasi proses dalam solusi perangkat lunak modern untuk menguji sistem perdagangan. Visualisasi Proses Pengujian Dalam pengalaman kerja saya, saya sering menganalisa platform populer lainnya untuk pengujian strategi trading. Seperti TradeStation. MetaStock. Multicharts dll dan saya selalu terkejut melihat betapa sedikit perhatian yang diberikan pada visualisasi proses pengujian. Masalahnya adalah ketika kita tidak melihat hasil nilai parameter optimum dari suboptimal yang dioptimasi, kita sering membuang emas beserta kotorannya. Masalahnya adalah karena sampling yang terlalu luas, strategi menyesuaikan parameter seperti kita melihat strategi sempurna yang gagal dalam kehidupan nyata atau melihat satu atau dua kesepakatan, yang konon merupakan yang terbaik karena dipilih seperti data interval waktu dimana Strategi trading terbaik adalah buy-and-hold, tapi mengapa strategi lain yang diperlukan untuk Visualisasi proses pengujian strategi perdagangan di MATLAB (diusulkan di webinar) Sebagai hasilnya, tanpa melihat hasil antara, kita perlu mengubah parameter untuk dicoba. Untuk mendapatkan data yang lebih baik atau menontonnya dalam beberapa 3D atau 4D (warna adalah dimensi ke-4), seperti yang diusulkan di webinar. Analisis nilai di ruang berdimensi N pasti bisa menjadi alternatif, namun memiliki beberapa keterbatasan: Bagaimana jika ada lebih dari 4 dimensi Bila Anda melihat sinyal dan frekuensi berapa yang muncul dalam kisaran harga, Anda memiliki hampir semua Representasi visual yang diperlukan dari strategi Anda: frekuensi transaksi, keuntungan mereka (kurva pendapatan), ketepatan pembukaan, kesamaan dengan nilai suboptimal lainnya, dan lain-lain yang tidak dapat dikatakan tentang kinerja di ruang N-dimensi dimana semua informasi bermanfaat Sebenarnya, nilai optimum tidak hanya satu tapi ada berbagai macam nilai suboptimal di satu atau lebih area. Sambil mengoptimalkan strategi WFAToolbox 8211 Walk-Forward Analysis Toolbox untuk MATLAB174. Sebagai nilai optimum baru ditemukan, sinyal strategi perdagangan pada periode di-sampel dan di luar sampel langsung muncul di bagan, jadi Anda selalu dapat mengontrol opsi pilihan apa yang harus Anda tetapkan, dan Anda juga dapat menjeda pengoptimalan Tanpa menunggu akhir ujian, karena menjadi jelas bahwa ada yang tidak beres atau semuanya baik-baik saja. Halo, nama saya Igor Volkov. Saya telah mengembangkan strategi perdagangan algoritmik sejak 2006 dan telah bekerja di beberapa hedge fund. Pada artikel ini, saya ingin membahas kesulitan yang timbul dari strategi pengembang perdagangan MATLAB selama pengujian dan analisis, dan juga menawarkan solusi yang mungkin. Saya telah menggunakan MATLAB untuk menguji strategi algoritma sejak 2007 dan saya sampai pada kesimpulan bahwa ini bukan hanya alat penelitian yang paling mudah, tapi juga yang paling hebat karena memungkinkan penggunaan model statistik dan ekonometrik yang kompleks, jaringan syaraf tiruan, Pembelajaran mesin, filter digital, logika fuzzy, dll dengan menambahkan toolbox. Bahasa MATLAB cukup sederhana dan terdokumentasi dengan baik, sehingga bahkan non-programmer (seperti saya) bisa menguasainya. Bagaimana semuanya dimulai Ini adalah tahun 2008 (jika saya tidak salah) ketika webinar pertama tentang perdagangan algoritmik di MATLAB dengan Ali Kazaam dirilis, mencakup topik untuk mengoptimalkan strategi sederhana berdasarkan indikator teknis, dan sebagainya. Meskipun ada kode yang agak rumit, alat itu menarik. Cukup untuk digunakan Mereka berfungsi sebagai titik awal untuk penelitian dan pengembangan model pengujian dan analisis yang memungkinkan penggunaan semua peralatan kotak peralatan dan kebebasan tindakan MATLAB selama pembuatan strategi perdagangan sendiri, pada saat bersamaan akan memungkinkan untuk mengendalikan proses Pengujian dan data yang diperoleh dan analisis selanjutnya akan memilih portofolio efektif dari sistem perdagangan yang kuat. Selanjutnya, webinar Mathworks telah diperbarui setiap tahun dan secara bertahap memperkenalkan elemen yang lebih dan lebih menarik. Dengan demikian, webinar pertama pada perdagangan pasangan (arbitrase statistik) menggunakan Econometric Toolbox diadakan pada tahun 2010, walaupun Toolbox pengujian dan analisisnya tetap sama. Pada tahun 2013, Trading Toolbox dari Mathworks muncul yang memungkinkan untuk menghubungkan MATLAB dengan broker yang berbeda untuk pelaksanaan aplikasi mereka. Meskipun ada solusi otomatis untuk pelaksanaan transaksi, dari situ MATLAB dapat dianggap sebagai sistem untuk mengembangkan strategi trading dengan siklus penuh: dari pemuatan data hingga pelaksanaan strategi perdagangan otomatis. Mengapa Harus Setiap Algotrader Menemukan Kembali Roda Namun, Mathworks belum menawarkan solusi lengkap untuk menguji dan menganalisis strategi 8211 kode-kode yang bisa Anda dapatkan dari webinar adalah satu-satunya elemen dari uji sistem penuh, dan perlu memodifikasinya. , Menyesuaikannya, dan menambahkannya ke GUI untuk kemudahan penggunaan. Ini sangat memakan waktu, jadi mengajukan pertanyaan: Apapun strateginya, ia harus menjalani proses pengujian dan analisis yang sama, yang memungkinkannya diklasifikasikan sebagai 8211 yang stabil dan bermanfaat, jadi mengapa setiap algotrader menciptakan roda dan menulis Kode sendiri untuk strategi pengujian yang tepat di MATLAB Jadi, keputusan dibuat untuk menciptakan produk yang memungkinkan dilakukannya keseluruhan proses yang terkait dengan pengujian dan analisis strategi perdagangan algoritmik menggunakan antarmuka yang sederhana dan user-friendly. Pertama-tama, saya ingin menjawab pertanyaan-pertanyaan berikut: Apa yang terjadi dengan blog 1. Jev Kuznetsov bukan pemiliknya lagi. Blog itu dibeli dari teman kita, Jev Kuznetsov, yang telah pindah ke trading blog lainnya denganpython. blogspot. Dia menyimpulkan bahwa Python lebih baik daripada MATLAB untuk trading, yang menurut saya salah. MATLAB tetap menjadi salah satu perangkat lunak terbaik di dunia untuk tujuan perdagangan algoritmik IMHO (saya memiliki beberapa fakta tentang hal ini meskipun untuk diskusi di masa depan). 2. Kami telah mengubah mereknya. Dari saat ini blog akan disebut MatlabTrading, yang jauh lebih mudah dipahami mengenai topik yang akan disertakan. Selanjutnya, nama domain telah diubah menjadi matlabtrading bukan matlab-trading. blogspot awal. Walaupun domain lama masih bekerja mengalihkan dari nama domain utama. Apa yang akan terjadi dengan blog 1. Lebih banyak posting dan artikel Kami berharap bisa membawa kehidupan ke blog ini dengan memposting konten yang relevan satu atau dua kali dalam seminggu. Dalam beberapa bulan pertama, kami akan memposting sebagian besar artikel dan video yang telah kami miliki untuk memudahkan pembaca terkasih untuk mencari informasi mengenai satu sumber dan memiliki kaitan silang terhadap mereka. Kemudian kita memiliki rencana untuk menulis posting tentang aspek praktis dari perdagangan algoritmik di MATLAB. Cara membuat strategi trading otomatis modern seperti: Perdagangan pasangan arbitrase statistik berarti strategi pasar berbalik arah netral berdasarkan kointegrasi bollinger bands kalman filter dll untuk komoditas, saham dan Forex. Trend mengikuti strategi dengan Jurik Moving Average dan filter digital canggih lainnya Peramalan strategi dengan pembelajaran mesin (Support Vector Machines) dan metode lainnya Menciptakan strategi trading yang kuat dengan menggunakan manajemen uang muka yang berjalan secara visual untuk menginvestasikan kembali modal Anda (sains tentang cara mendapatkan 1M dari 10K Dalam setahun dengan maksimal, namun diperkirakan resiko dan reward keringat). Mungkin setelah membaca ini youve pikir ini akan menjadi artikel bodoh lain bagi orang-orang miskin mencari cara untuk menjadi kaya melalui perdagangan forex dan semua itu. Nah, itu benar-benar salah Kami bekerja di MATLAB, dan mayoritas dari kita adalah ilmuwan dan ahli dalam aspek itu sehingga semuanya serius. 2. Lebih interaktivitas saya akan senang jika kita semua bisa berhubungan melalui komentar di posting. Berlangganan berita kami untuk mendapatkan peringatan tentang posting dan acara terbaru. Nantinya, kami berencana membuat Google Hangouts webinar. Dont miss it, klik tombol Follow di pojok kanan atas untuk bergabung dengan komunitas kita. Apa yang ingin Anda baca di posting blog kami Topik apa yang bisa Anda sarankan Silakan tulis di sini di komentar. Dalam posting saya sebelumnya, saya sampai pada sebuah kesimpulan bahwa perdagangan pasangan close-to-close tidak menguntungkan saat ini seperti dulu sebelum 2010. Seorang pembaca menunjukkan bahwa hal itu bisa jadi sifat pengembalian yang rata-rata kembali beralih ke rentang waktu yang lebih pendek . Saya kebetulan berbagi ide yang sama, jadi saya memutuskan untuk menguji hipotesis ini. Kali ini hanya satu pasang yang diuji: 100 SPY vs -80 IWM. Backtest dilakukan pada data bar 30 detik dari pukul 11.2011 sampai 12.2012. Aturannya sederhana dan serupa dengan strategi yang saya uji di pos terakhir: jika pengembalian bar pasangan melebihi 1 pada nilai z, tukar baris berikutnya. Hasilnya terlihat sangat cantik: Saya akan menganggap ini cukup bukti bahwa masih banyak pembalikan rata-rata pada skala 30 detik. Jika Anda berpikir bahwa bagan ini terlalu bagus untuk menjadi kenyataan, sayangnya memang begitu. Tidak ada biaya transaksi atau spread bid-ask yang diperhitungkan. Sebenarnya, saya akan meragukan bahwa akan ada keuntungan yang tersisa setelah mengurangi semua biaya perdagangan. Namun, grafik seperti ini adalah wortel yang menjuntai di depan hidung saya, membuat saya tetap berjalan. Kabar buruk semua orang, menurut perhitungan saya, (yang saya harap benar tidak benar) perdagangan pasangan klasik sudah mati. Beberapa orang akan sangat tidak setuju, tapi inilah yang saya temukan: Mari kita mengambil strategi hipotetis yang bekerja di sekeranjang etfs: SPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA Dari etf ini 90 unik Pasang bisa dibuat Masing-masing pasangan dibangun sebagai pasar netral. Aturan strategi: Pada setiap hari, untuk masing-masing pasangan, hitung z-score berdasarkan standar deviasi 25 hari. Jika z-score gt threshold, lanjutkan, tutup hari berikutnya Jika nilai z lt - threshold pergi lama, tutup keesokan harinya Untuk menjaga semuanya sederhana, perhitungan dilakukan tanpa manajemen modal (seseorang bisa memiliki hingga 90 pasangan dalam portofolio Setiap hari). Biaya transaksi juga tidak diperhitungkan. Sederhananya, strategi ini melacak satu hari berarti mengembalikan sifat spread netral pasar. Berikut adalah hasil simulasi untuk beberapa batasan: Tidak peduli apa ambang batas yang digunakan, strategi ini sangat menguntungkan di tahun 2008, cukup baik throuh 2009 dan sama sekali tidak berharga mulai awal 2010. Ini bukan pertama kalinya saya menemukan perubahan ini dalam mean reverting. Perilaku di etfs. Tidak peduli apa yang telah saya coba, saya tidak beruntung dalam menemukan strategi perdagangan pasangan yang akan berjalan di ETF masa lalu 2010. Kesimpulan saya adalah bahwa jenis model stat-arb sederhana ini tidak memotongnya lagi. Backcesting Code for Algorithmic Trading Strategy Penulis : Moeti Ncube Ini adalah kode yang bisa digunakan untuk mendukung strategi trading. Contoh strategi yang digunakan sebagian digunakan dalam pengembangan strategi perdagangan algoritmik frekuensi menengah ini adalah beberapa pengkodean backtesting yang kami gunakan untuk menganalisis data tick. Kode ini dapat digunakan untuk mendukung strategi trading untuk rangkaian waktu yang memiliki vektor harga pada kolom pertama dan indikator perdagangan di kolom kedua. Saya akan menggunakan kontrak berjangka NG untuk diperdagangkan dan akan melacak pnl dalam hal ticks (perdagangan NG dalam ticks, jadi 0,001 ticks on ICE akan menjadi sekitar 70 kontrak, 10 kontrak di NYMEX) Lebih dari 17 hari strategi pada dataset ini akan menghasilkan sekitar 1060 Di NYMEX, atau 7427 di ICE. Data disimpan di kolom pertama dan indikator (proprietary), yang pada dasarnya melacak kecepatan pasar, disimpan di kolom kedua. Kode ini dapat disesuaikan untuk menggabungkan datasetindikator lain asalkan mengasumsikan garis besar strategi dasar yang akan saya jelaskan di sini. Ini sebenarnya penyederhanaan strategi sebenarnya saya. Sebagai contoh, update indikator BuySell saya yang sebenarnya menjadi vtmax (v1. Vt-1) sedangkan di sini saya membuatnya statis. Indikator BuySell: Bila indikatornya kurang dari nilai v1, Anda membeli satu kontrak dengan harga saat ini di pasar. Kapan saja indicater lebih besar dari nilai v1 Anda menjual satu kontrak dengan harga berlaku di pasar. Target Keuntungan: Jika posisi longshort rata-rata tertimbang adalah kutu uang yang Anda tutup dari posisi Anda, buatlah strategi dan strategi dimulai dari harga sekarang. Stop Loss: Jika rata-rata tertimbang posisi longshort adalah st ticks dari uang, strategi Anda bergantung pada indikator double down dd, Jika dd0, Anda mengambil kerugian untuk pertama kalinya hal ini terjadi dan strategi akan dimulai lagi. Jika dd1, Anda menambahkan 1 kontrak ke posisi longshort Anda dan dapatkan harga longshort rata-rata tertimbang baru. Sekarang, Jika posisi longshort baru Anda menjadi kutu uang Anda, Anda melipatgandakan keuntungan Anda menjadi 2pt, namun jika itu menjadi kutu uang, Anda melipatgandakan kerugian Anda ke 2st Kecuali dd2, di mana sekali lagi Anda akan membeli kontrak lain untuk Potensi keuntungan 3pt atau kerugian 3st. Val (d, :) (matriks) Di sini saya menggunakan data intraday dari 17 hari di pasar, val memberikan output dari setiap hari pnl, persen profitabilitas, rasio sharpe, jumlah perdagangan dtrades Disini saya melacak keuntungan atau kerugian yang direalisasikan pada Setiap perdagangan pada hari tertentu d MATLAB 7.9 (R2009b)

No comments:

Post a Comment