Tuesday 18 July 2017

Pindah Rata Rata Scipy


Modul scikits. timeseries tidak lagi mengalami perkembangan aktif. Ada daftar bug yang tidak mungkin diperbaiki. Rencananya adalah untuk fungsionalitas inti dari modul ini yang akan diimplementasikan di panda. Jika Anda ingin melihat modul ini hidup secara independen dari panda, silakan ganti kode dan lepaskan. Modul scikits. timeseries menyediakan kelas dan fungsi untuk memanipulasi, melaporkan, dan merencanakan rangkaian waktu berbagai frekuensi. Fokusnya adalah pada akses dan manipulasi data yang mudah digunakan sambil memanfaatkan fungsionalitas matematika yang ada dengan numpy dan scipy. Jika skenario berikut terdengar asing bagi Anda, Anda mungkin akan menemukan modul scikits. timeseries berguna: Membandingkan deret waktu dengan rentang data yang berbeda (misalnya harga saham) Buat plot seri waktu dengan label sumbu yang cerdas Penjelasan Mengkonversi rangkaian waktu harian Untuk bulanan dengan mengambil nilai rata-rata selama setiap bulan Bekerja dengan data yang memiliki nilai hilang Tentukan hari kerja terakhir dari bulan sebelumnya untuk tujuan pelaporan Hitunglah standar deviasi yang bergerak secara efisien Berikut adalah beberapa skenario yang dibuat sangat sederhana dengan scikits Modultimeseries DocumentationZipline adalah perpustakaan perdagangan algoritmik Pythonic. Ini adalah sistem berbasis event yang mendukung backtesting dan live-trading. Zipline saat ini digunakan dalam produksi sebagai mesin backtesting dan live-trading powering Quantopian 8211 merupakan platform yang dihuni oleh masyarakat yang berpusat pada host untuk membangun dan menjalankan strategi perdagangan. Kemudahan penggunaan: Zipline mencoba untuk menyingkir sehingga Anda dapat fokus pada pengembangan algoritma. Lihat di bawah untuk contoh kode. Zipline datang 8220batteries included8221 karena banyak statistik umum seperti moving average dan regresi linier dapat dengan mudah diakses dari dalam algoritma penulisan pengguna. Masukan data historis dan keluaran statistik kinerja didasarkan pada Pandas DataFrames untuk diintegrasikan dengan baik ke dalam sistem eko ​​PyData yang ada. Perpustakaan belajar statistik dan mesin seperti matplotlib, scipy, statsmodels, dan sklearn mendukung pengembangan, analisis, dan visualisasi sistem perdagangan mutakhir. Instalasi Instalasi Dengan Pip Dengan asumsi Anda memiliki semua dependensi non-Python yang dibutuhkan (lihat catatan di bawah), Anda dapat menginstal Zipline dengan pip melalui: Catatan: Memasang Zipline via pip sedikit lebih banyak daripada paket Python rata-rata. Cukup menjalankan zipline pemasangan pipa kemungkinan akan gagal jika Anda belum pernah menginstal paket Python ilmiah sebelumnya. Ada dua alasan untuk kompleksitas tambahan: Zipline mengirimkan beberapa ekstensi C yang memerlukan akses ke API CPython C. Untuk membangun ekstensi C, pip memerlukan akses ke file header CPython untuk instalasi Python Anda. Zipline tergantung pada numpy. Perpustakaan inti untuk komputasi array numerik dengan Python. Numpy tergantung pada memiliki rutinitas aljabar linier LAPACK yang tersedia. Karena header LAPACK dan CPython adalah dependensi biner, cara yang benar untuk memasangnya bervariasi dari satu platform ke platform lainnya. Di Linux, pengguna umumnya mendapatkan dependensi ini melalui manajer paket seperti apt. Yum Atau pacman Di OSX, Homebrew adalah pilihan populer yang menyediakan fungsionalitas serupa. Lihat Dokumentasi Pemasangan Zipline lengkap untuk informasi lebih lanjut tentang mengakuisisi dependensi biner untuk platform spesifik Anda. Cara lain untuk menginstal Zipline adalah melalui manajer paket conda, yang hadir sebagai bagian dari Anaconda atau dapat diinstal melalui pip install conda. Setelah disiapkan, Anda dapat menginstal Zipline dari saluran Quantopian kami: Platform yang didukung saat ini meliputi: Quickstart ContributionsRelease Notes 8 September 2016 Perangkat Tambahan Menambahkan tabel checkpoint isi ulang untuk loader inti blaze. Hal ini memungkinkan loader untuk lebih efisien meneruskan mengisi data dengan membatasi tanggal yang lebih rendah yang harus dicari saat query data. Pos pemeriksaan harus memiliki delta baru yang diterapkan (1276). Diperbarui VagrantFile untuk menyertakan semua persyaratan dev dan menggunakan gambar yang lebih baru (1310). Izinkan korelasi dan regresi dihitung antara dua faktor 2D dengan melakukan penghitungan aset-bijaksana (1307). Filter telah dibuat windowsafe secara default. Sekarang mereka bisa dilewatkan sebagai argumen pada Filter, Faktor dan Klasifikasi lainnya (1338). Menambahkan parameter groupby opsional ke peringkat (). puncak(). Dan bawah (). (1349). Ditambahkan filter pipa baru, Semua dan Any. Yang mengambil filter dan pengembalian yang lain Benar jika aset menghasilkan True untuk setiap hari di windowlength days sebelumnya (1358). Ditambahkan filter pipa baru AtLeastN. Yang mengambil filter lain dan int N dan mengembalikan True jika sebuah aset menghasilkan True on N atau lebih hari di windowlength days sebelumnya (1367). Gunakan perpustakaan eksternal empiris untuk perhitungan risiko. Empiris menyatukan kalkulasi metrik risiko antara pyfolio dan zipline. Empiris menambahkan pilihan anualisasi kustom untuk mengembalikan frekuensi khusus. (855) Tambahkan faktor Aroon. (1258) Tambahkan faktor osilator stochastic cepat. (1255) Tambahkan Dockerfile. (1254) Kalender perdagangan baru yang mendukung sesi yang berlangsung sepanjang malam, mis. 24 jam 6:01 PM-6:00PM sesi untuk perdagangan berjangka. Zipline. utils. tradingcalendar sekarang tidak berlaku lagi. (1138) (1312) Izinkan mengiris kolom tunggal dari FactorFilterClassifier. (1267) Sediakan faktor Ichimoku Cloud (1263) Izinkan parameter default pada istilah Pipeline. (1263) Memberikan tingkat persentase perubahan faktor. (1324) Memberikan faktor bobot bergerak tertimbang linear. (1325) Tambahkan NotNullFilter. (1345) Izinkan perubahan modal didefinisikan oleh nilai target. (1337) Tambahkan faktor TrueRange. (1348) Tambahkan pencarian waktu ke aset. db. (1361) Buat kantin tahu tentang pertukaran aset. (1346) Tambahkan metode downsample ke semua persyaratan yang dapat disesuaikan. (1394) Tambahkan QuantopianUSFuturesCalendar. (1414) Aktifkan penerbitan versi asset. db lama. (1430) Aktifkan schedulefunction untuk kalender perdagangan Futures. (1442) Larang regresi panjang 1. (1466) Percobaan Menambahkan dukungan untuk jendela sejarah Future and Equity yang akan datang, dan memungkinkan akses data Masa Depan lainnya melalui portal data. (1435) (1432) Perbaikan Bug Perubahan AverageDollarVolume faktor built-in untuk merawat nilai tutup atau volume yang hilang sebagai 0. Sebelumnya, NaN hanya dibuang sebelum rata-rata, memberikan nilai sisa terlalu banyak (1309). Hapus rasio bebas risiko dari perhitungan rasio sharpe. Rasio sekarang rata-rata pengembalian disesuaikan risiko atas pelanggaran pengembalian disesuaikan. (853) Sortino ratio akan mengembalikan perhitungan bukan np. nan bila tingkat pengembalian yang diminta sama dengan nol. Rasio ini sekarang mengembalikan rata-rata tingkat pengembalian yang disesuaikan risiko atas risiko penurunan. Fixed mislabeled API dengan mengubah mar menjadi downsiderisk. (747) Risiko turun sekarang mengembalikan akar kuadrat rata-rata dari selisih sisi bawah. (747) Rasio informasi diperbaharui dengan rata-rata pengembalian risiko yang disesuaikan dengan standar deviasi pengembalian disesuaikan risiko. (1322) Rasio alfa dan sharpe sekarang disetahunkan. (1322) Memperbaiki unit saat membaca dan menulis atribut firsttradingday bar pertama. (1245) Modul pengiriman opsional, bila hilang, tidak lagi menyebabkan NameError. (1246) Perlakukan argumen penjadwalan sebagai aturan waktu ketika aturan waktu, namun tidak ada aturan tanggal yang diberikan. (1221) Melindungi terhadap kondisi batas pada awal dan akhir hari perdagangan dalam fungsi jadwal. (1226) Terapkan penyesuaian pada hari sebelumnya bila menggunakan riwayat dengan frekuensi 1d. (1256) Gagal cepat pada kolom pipa tidak benar, alih-alih mencoba mengakses kolom yang tidak ada. (1280) Perbaiki penanganan AverageNobot NaNN. (1309) Peningkatan kinerja blaze core loader. (1227) Izinkan kueri api berbarengan. (1323) Mencegah hilangnya data bcolz menit terdahulu dari melakukan pencarian berulang yang tidak perlu. (1451) Cache pencarian rantai masa depan. (1455) Pemeliharaan dan Refactorings Dihapus sisa menyebutkan addhistory. (1287) Dokumentasi Tambahkan perlengkapan uji yang menghasilkan data penetapan harga harian dari perlengkapan data harga menit. (1243) Format Data Perubahan BcolzDailyBarReader dan BcolzDailyBarWriter menggunakan contoh kalender perdagangan, bukan hari perdagangan yang disambung ke JSON. (1330) Mengubah format aset. db untuk mendukung pencarian dalam waktu. (1361) Ubah BcolzMinuteBarReader dan BcolzMinuteBarWriter untuk mendukung berbagai ukuran kutu. (1428) Release 1.0.1 Ini adalah rilis bug fix minor dari 1.0.0 dan mencakup sejumlah kecil perbaikan bug dan perbaikan dokumentasi. Perangkat tambahan Ditambahkan dukungan untuk model komisi yang ditentukan pengguna. Lihat kelas zipline. financemissionmissionModel untuk rincian lebih lanjut tentang penerapan model komisioning. (1213) Menambahkan dukungan untuk kolom non-float ke dataset Pipeline yang didukung Blaze (1201). Ditambahkan zipline. pipeline. slice. Slice. Istilah pipa baru yang dirancang untuk mengekstrak satu kolom dari istilah lain. Irisan dapat dibuat dengan cara mengindeks ke dalam sebuah istilah, dikodekan oleh aset. (1267) Perbaikan Bug Memperbaiki bug di mana pemuat pipa tidak diinisialisasi dengan benar oleh zipline. runalgorithm (). Hal ini juga mempengaruhi seruan zipline yang dijalankan dari CLI. Memperbaiki bug yang menyebabkan sel saraf zipline IPython gagal (533233fae43c7ff74abfb0044f046978817cb4e4). Memperbaiki bug dalam model komisi PerTrade dimana komisi salah diterapkan pada setiap pengisian parsial pesanan dan bukan pada pesanan itu sendiri, sehingga algoritma terlalu banyak dibebankan pada komisi saat melakukan pesanan besar. PerTrade sekarang menerapkan komisi dengan benar secara per-order (1213). Akses atribut pada CustomFactor yang menentukan beberapa keluaran sekarang akan mengembalikan irisan output saat output juga merupakan nama metode Factor (1214). Menggantikan penggunaan pandas. io. data yang tidak berlaku lagi dengan pandasdatareader (1218). Memperbaiki masalah di mana file berhala. pyi untuk zipline. api secara tidak sengaja dikecualikan dari distribusi sumber PyPI. Pengguna Conda seharusnya tidak terpengaruh (1230). Dokumentasi Menambahkan contoh baru, zipline. examples. momentumpipeline. Yang melatih Pipeline API (1230). Highlight Zipline 1.0 Rewrite (1105) Kami telah menulis ulang banyak Zipline dan konsep dasarnya untuk meningkatkan kinerja runtime. Pada saat bersamaan, kami memperkenalkan beberapa API baru. Pada tingkat tinggi, versi sebelumnya dari simulasi Zipline ditarik dari sumber data multiplexing, yang digabungkan melalui heapq. Aliran ini diumpankan ke loop simulasi utama, menggerakkan jam ke depan. Ketergantungan yang kuat pada membaca semua data membuat sulit untuk mengoptimalkan kinerja simulasi karena tidak ada hubungan antara jumlah data yang kita isi dan jumlah data yang sebenarnya digunakan oleh algoritma. Sekarang, kita hanya mengambil data saat algoritma membutuhkannya. Sebuah kelas baru, DataPortal. Mengirimkan permintaan data ke berbagai sumber data dan mengembalikan nilai yang diminta. Hal ini membuat runtime skala simulasi jauh lebih dekat dengan kompleksitas algoritma, bukan dengan jumlah aset yang disediakan oleh sumber data. Alih-alih arus data yang menggerakkan jam, sekarang simulasi iterate melalui penghitungan cap waktu hari atau menit yang telah dihitung sebelumnya. Cap waktu dipancarkan oleh MinuteSimulationClock dan DailySimulationClock. Dan dikonsumsi oleh lingkaran utama dalam transformasi (). Kami memasangkan API dataid (N) dan sejarah, menggantinya dengan beberapa metode pada objek BarData: current (). sejarah(). Kriket (). Dan isstale (). API lama akan terus bekerja untuk saat ini, namun akan mengeluarkan peringatan yang tidak berlaku lagi. Anda sekarang dapat mengirimkan sumber penyesuaian ke DataPortal. Dan kami akan menerapkan penyesuaian pada data harga saat melihat ke belakang pada data. Harga dan volume untuk eksekusi dan disajikan ke algoritma dalam data. Saat ini adalah nilai aset yang diperdagangkan. New Entry Points (1173 dan 1178) Agar lebih mudah menggunakan zipline, kami telah memperbarui titik masuk untuk backtest. Tiga cara yang didukung untuk menjalankan backtest sekarang: zipline. runalgo () zipline running zipline (sihir IPython) Kumpulan Data (1173 dan 1178) 1.0.0 memperkenalkan kumpulan data. Kumpulan data adalah kumpulan data yang harus dimuat dan digunakan untuk menjalankan backtests nanti. Hal ini memungkinkan pengguna untuk tidak perlu menentukan ticker mana yang mereka minati setiap kali menjalankan algoritma. Ini juga memungkinkan kita untuk menyimpan data antar jalan. Secara default, bundel quantopian-quandl akan digunakan yang menarik data dari cermin Quantopian8217 dari dataset WIKI quandl. Bundel baru dapat didaftarkan dengan zipline. data. bundles. register () seperti: Fungsi ini harus mengambil data yang dibutuhkannya dan kemudian menggunakan penulis yang telah lulus untuk menulis data tersebut ke disk di lokasi yang dapat ditemukan zipline nanti. Data ini dapat digunakan dalam backtests dengan melewatkan nama sebagai argumen - b --bundle ke zipline run atau sebagai argumen bundle untuk zipline. runalgorithm (). Untuk informasi lebih lanjut, lihat Kumpulan Data untuk informasi lebih lanjut. Dukungan String di Pipeline (1174) Menambahkan dukungan untuk data string di Pipeline. Zipline. pipeline. data. Column sekarang menerima objek sebagai dtype, yang menandakan bahwa pemuat untuk kolom tersebut harus memancarkan iterator berjendela melewati kelas LabelArray yang baru. Beberapa metode Classifier baru juga telah ditambahkan untuk membangun contoh Filter berdasarkan operasi string. Metode baru adalah: elementof didefinisikan untuk semua classifier. Metode yang tersisa hanya didefinisikan untuk pengkodean string-dtype. Perangkat tambahan Membuat kelas pemuatan data memiliki antarmuka yang lebih konsisten. Ini termasuk penulis bar ekuitas, penulis penyesuaian, dan penulis aset db. Antarmuka baru adalah bahwa sumber daya yang akan ditulis dikirimkan pada waktu konstruksi dan data yang akan ditulis diberikan kemudian ke metode penulisan sebagai dataframes atau beberapa iterator dataframes. Model ini memungkinkan kita untuk melewati objek penulis ini sekitar sebagai sumber daya untuk kelas dan fungsi lain untuk dikonsumsi (1109 dan 1149). Ditambahkan masking ke zipline. pipeline. CustomFactor. Faktor kustom sekarang dapat melewati Filter berdasarkan instantiasi. Ini memberitahu faktor untuk hanya menghitung lebih dari saham yang filternya mengembalikan True, daripada selalu menghitung seluruh jagad saham. (1095) Ditambahkan zipline. utils. cache. ExpiringCache. Cache yang membungkus entri dalam zipline. utils. cache. CachedObject. Yang mengelola kadaluarsa entri berdasarkan dt yang dipasok ke metode get. (1130) Melaksanakan zipline. pipeline. factors. RecarrayField. Istilah pipa baru yang dirancang untuk menjadi tipe keluaran CustomFactor dengan beberapa keluaran. (1119) Menambahkan parameter output opsional ke zipline. pipeline. CustomFactor. Faktor kustom sekarang mampu menghitung dan mengembalikan beberapa keluaran, yang masing-masing merupakan Faktor. (1119) Menambahkan dukungan untuk kolom pipa string-dtype. Loader untuk kolom thse harus menghasilkan contoh zipline. lib. labelarray. LabelArray saat dilalui. Terbaru () pada kolom string menghasilkan string-dtype zipline. pipeline. Classifier. (1174) Menambahkan beberapa metode untuk mengubah Classifiers menjadi Filter. Metode baru adalah: - elementof () - beginswith () - endswith () - hassubstring () - match () elementof didefinisikan untuk semua classifier. Metode yang tersisa hanya ditentukan untuk string. (1174) Fetcher telah dipindahkan dari kode internal Quantopian ke Zipline (1105). Fitur Eksperimental Fitur eksperimental dapat berubah sewaktu-waktu. Menambahkan kelas zipline. lib. labelarray. LabelArray baru untuk mewakili dan menghitung secara efisien pada data string dengan numpy. Kelas ini secara konseptual mirip dengan panda. Kategori. Dalam hal ini merupakan array string sebagai array dari indeks ke dalam array (lebih kecil) dari nilai string yang unik. (1174) Perbaikan Bug Highlights Menambahkan dataset EarningsCalendar baru untuk digunakan dalam Pipeline API. (905). Pemutakhiran AssetFinder (830 dan 817). Dukungan yang lebih baik untuk dtype non-float di Pipeline. Terutama, sekarang kita mendukung datetime64 dan int64 dtypes for Factor. Dan BoundColumn. latest sekarang mengembalikan objek Filter yang tepat saat kolomnya adalah tipe dtype bool. Zipline sekarang mendukung 1.10 numpy, panda 0,17, dan scipy 0,16 (969). Batch transforms telah ditinggalkan dan akan dihapus dalam rilis masa depan. Menggunakan riwayat direkomendasikan sebagai alternatif. Perangkat tambahan Menambahkan cara bagi pengguna untuk menyediakan manajer konteks yang akan digunakan saat menjalankan fungsi terjadwal (termasuk penanganan). Manajer konteks ini akan melewati objek BarData untuk bar dan akan digunakan untuk durasi semua fungsi yang dijadwalkan untuk dijalankan. Ini bisa dilewatkan ke TradingAlgorithm dengan kata kunci argumen createeventcontext (828). Ditambahkan dukungan untuk zipline. pipeline. factors. Faktor contoh dengan datetime64ns dtypes. (905) Menambahkan dataset EarningsCalendar baru untuk digunakan dalam Pipeline API. Dataset ini menyediakan antarmuka abstrak untuk menambahkan data pengumuman pendapatan ke algoritma baru. Implementasi referensi berbasis panda untuk dataset ini dapat ditemukan di zipline. pipeline. loaders. earnings. Dan sebuah implementasi berbasis blaze eksperimental dapat ditemukan di zipline. pipeline. loaders. blaze. earnings. (905). Menambahkan faktor built-in baru, zipline. pipeline. factors. BusinessDaysUntilNextEarnings dan zipline. pipeline. factors. BusinessDaysSincePreviousEarnings. Faktor-faktor ini menggunakan dataset EarningsCalendar baru. (905). Ditambahkan isnan (). Metode notnan () dan isfinite () ke zipline. pipeline. factors. Factor (861). Ditambahkan zipline. pipeline. factors. Returns. Sebuah faktor built-in yang menghitung perubahan persen dalam harga penutupan di atas windowlength yang diberikan. (884). Menambahkan faktor built-in baru: AverageDollarVolume. (927). Ditambahkan Faktor ExponentialWeightedMovingAverage dan ExponentialWeightedMovingStdDev. (910). Izinkan kelas DataSet dikelompokkan secara subclass dimana subclass mewarisi semua kolom dari induk. Kolom ini akan menjadi sentinel baru sehingga Anda bisa mendaftarkannya loader ubahsuaian (924). Ditambahkan memaksa () untuk memaksa masukan dari satu jenis ke yang lain sebelum meneruskannya ke fungsi (948). Ditambahkan opsional () untuk membungkus fungsi preprocessor lain untuk secara eksplisit mengizinkan None (947). Ditambahkan ensuretimezone () untuk memungkinkan argumen string dikonversi menjadi objek datetime. tzinfo. Ini juga memungkinkan objek tzinfo dilewati secara langsung (947). Ditambahkan dua argumen opsional, dataquerytime dan dataquerytz ke BlazeLoader dan BlazeEarningsCalendarLoader. Argumen ini memungkinkan pengguna menentukan waktu cutoff untuk data saat memuat dari sumber. Sebagai contoh, jika saya ingin mensimulasikan pelaksanaan fungsi beforetradingstart saya pada pukul 8.45 nanti, saya bisa melewati datetime. time (8, 45) dan USEastern ke loader. Ini berarti data yang timestamped pada atau setelah 8:45 tidak akan terlihat pada hari itu dalam simulasi. Data akan tersedia pada hari berikutnya (947). BoundColumn. latest sekarang mengembalikan Filter untuk kolom dtype bool (962). Ditambahkan dukungan untuk contoh Faktor dengan int64 dtype. Kolom sekarang membutuhkan missingvalue bila dtype adalah integral. (962) Sekarang juga mungkin untuk menentukan nilai missingvalue khusus untuk float. tanggal Waktu. Dan istilah pipa bool. (962) Menambahkan dukungan auto-close untuk ekuitas. Setiap posisi yang dimiliki dalam ekuitas yang mencapai autoclosedate akan dilikuidasi untuk uang tunai sesuai dengan harga jual terakhir ekuitas. Selanjutnya, setiap perintah terbuka untuk ekuitas itu akan dibatalkan. Kedua futures dan ekuitas sekarang ditutup secara otomatis pada pagi hari di autoclosedate mereka. Segera sebelum beforetradingstart. (982) Fitur Eksperimental Fitur eksperimental dapat berubah sewaktu-waktu. Ditambahkan dukungan untuk parameterized Faktor subclass. Faktor dapat menentukan params sebagai atribut tingkat kelas yang berisi tuple dari nama parameter. Nilai ini kemudian diterima oleh konstruktor dan diteruskan dengan nama ke fungsi penghitungan faktor8217. API ini eksperimental, dan mungkin berubah dalam rilis mendatang. Perbaikan Bug Memperbaiki masalah yang akan menyebabkan caching metode harian untuk mengubah len objek SIDData. Hal ini akan menyebabkan kita berpikir bahwa benda itu tidak kosong bahkan pada saat itu (826). Memperbaiki kesalahan yang timbul saat menghitung beta saat data datanya jarang. Sebaliknya numpy. nan dikembalikan (859). Memperbaiki masalah pengirim sentinel () benda (872). Peringatan palsu tetap pada unduhan pertama data perbendaharaan (: issue 922). Mengoreksi pesan kesalahan untuk setcommission () dan setslippage () bila digunakan di luar fungsi inisialisasi. Kesalahan ini disebut override fungsi dan bukan set. Ini juga berganti nama menjadi tipe pengecualian yang diangkat dari OverrideSlippagePostInit dan OverrideCommissionPostInit ke SetSlippagePostInit dan SetCommissionPostInit (923). Memperbaiki masalah di CLI yang akan menyebabkan aset ditambahkan dua kali. Ini akan memetakan simbol yang sama ke dua soket yang berbeda (942). Memperbaiki masalah di mana PerformancePeriod salah melaporkan nilai totalposisi saat membuat Akun (950). Masalah tetap seputar KeyErrors berasal dari sejarah dan BarData pada python 32-bit, di mana Aset tidak dapat dibandingkan dengan int64s (959). Memperbaiki bug di mana operator boolean tidak diterapkan dengan benar pada Filter (991). Pemasangan zipline tidak lagi downgrade numpy menjadi 1,9,2 diam-diam dan tanpa syarat (969). Kinerja Mempercepat lookupsymbol () dengan menambahkan ekstensi, AssetFinderCachedEquities. Yang memuat ekuitas ke dalam kamus dan kemudian mengarahkan lookupsymbol () ke kamus ini untuk menemukan persamaan yang sesuai (830). Peningkatan kinerja lookupsymbol () dengan melakukan query batched. (817). Pemeliharaan dan Refactorings Database aset sekarang berisi informasi versi untuk memastikan kompatibilitas dengan versi Zipline saat ini (815). Upgrade versi permintaan ke 2.9.1 (2ee40db) Upgrade versi logbook menjadi 0.12.5 (11465d9). Upgrade versi Cython menjadi 0.23.4 (5f49fa2). Membuat persyaratan pemasangan zipline lebih fleksibel (825). Gunakan verseer untuk mengelola versi proyek dan versi setup. py (829). Integrasi sambungan tetap pada travis build (840). Membangun konda tetap, yang sekarang menggunakan sumber git sebagai sumbernya dan membaca persyaratan menggunakan setup. py, alih-alih menyalinnya dan membiarkannya tidak sinkron (937). Membutuhkan setuptools gt 18.0 (951). Dokumentasi Dokumen proses pelepasan untuk pengembang (835). Ditambahkan referensi docs untuk Pipeline API. (864). Ditambahkan referensi docs untuk Asset Metadata APIs. (864). Dokumentasi yang dihasilkan sekarang menyertakan tautan ke kode sumber untuk banyak kelas dan fungsinya. (864). Ditambahkan platform-dokumentasi khusus yang menjelaskan bagaimana menemukan dependensi biner. (883). Miscellaneous Menambahkan metode showgraph () untuk membuat Pipeline sebagai gambar (836). Menambahkan subtest () dekorator untuk membuat subtipe tanpa noseparameterized. expand () yang membungkuk keluaran tes (833). Batasi laporan timer dalam hasil tes sampai 15 tes terpanjang (838). Treasury dan benchmark downloads sekarang akan menunggu hingga satu jam untuk mendownload lagi jika data yang dikembalikan dari sumber remote tidak sampai ke tanggal yang diharapkan. (841). Menambahkan alat untuk menurunkan aset db ke versi sebelumnya (941). Rilis 0.8.3 Ikhtisar Sistem dokumentasi baru dengan situs web baru di zipline. io Peningkatan kinerja utama. Sejarah dinamis Metode yang ditetapkan pengguna baru: beforetradingstart. Fungsi api baru: schedulefunction (). Fungsi api baru: getenvironment (). Fungsi api baru: setmaxleverage (). Fungsi api baru: setdonotorderlist (). Pipeline API. Dukungan untuk perdagangan berjangka. Perangkat tambahan Objek akun: Menambahkan objek akun ke konteks untuk melacak informasi tentang akun perdagangan. Contoh: Mengembalikan nilai tunai yang tersimpan yang tersimpan pada objek akun. Nilai ini diperbarui sesuai dengan algoritma yang dijalankan (396). HistoryContainer sekarang bisa tumbuh secara dinamis. Panggilan ke sejarah () sekarang akan dapat meningkatkan ukuran atau mengubah bentuk wadah sejarah agar bisa melayani panggilan. Addhistory () sekarang bertindak sebagai petunjuk preformance untuk mengalokasikan ruang yang cukup dalam wadah. Perubahan ini kompatibel dengan sejarah. Semua algoritma yang ada harus terus bekerja sebagaimana mestinya (412). Transformasi sederhana berasal dari sejarah quantopian dan use. SIDData sekarang memiliki metode untuk: Metode ini, kecuali untuk pengembalian. Terima beberapa hari Jika Anda menjalankan dengan data menit, maka ini akan menghitung jumlah notulen pada masa itu, berhitung untuk penutupan awal dan waktu sekarang dan menerapkan transformasi selama beberapa menit. Return tidak mengambil parameter dan akan mengembalikan return harian dari aset yang diberikan. Contoh: Bidang baru di Periode Kinerja. Periode Kinerja memiliki bidang baru yang dapat diakses dengan nilai pengembalian todict. - leverage kotor - leverage bersih - eksposur pendek - eksposur panjang - jumlah celana pendek - hitung panjang (464). Biarkan orderpercent () bekerja dengan berbagai nilai pasar (oleh Jeremiah Lowin). Saat ini, orderpercent () dan ordertargetpercent () keduanya beroperasi sebagai persentase dari self. portfolio. portfoliovalue. PR ini memungkinkan mereka beroperasi sebagai persentase MV penting lainnya. Juga menambahkan context. getmarketvalue (). Yang memungkinkan fungsi ini. Sebagai contoh: Pilihan baris perintah untuk mencetak algo ke stdout (oleh Andrea D8217Amore) (545). Fungsi baru yang ditetapkan pengguna beforetradingstart. Fungsi ini bisa ditimpa oleh pengguna untuk dipanggil sekali sebelum pasar dibuka setiap hari (389). Fungsi penjadwalan api yang baru (). Fungsi ini memungkinkan pengguna menjadwalkan fungsi yang dipanggil berdasarkan peraturan yang lebih rumit mengenai tanggal dan waktu. Misalnya, panggil fungsi 15 menit sebelum penutupan pasar dengan hormat pada penutupan awal (411). Fungsi api baru setdonotorderlist (). Fungsi ini menerima daftar aset dan menambahkan penjaga perdagangan yang mencegah algoritme melakukan perdagangan. Menambahkan daftar poin dalam daftar waktu ETF leveraged yang orang mungkin ingin tandai sebagai bukan trade8217 (478). Menambahkan kelas untuk mewakili sekuritas. Order () dan fungsi pesanan lainnya sekarang memerlukan sebuah instance dari Security bukan sebuah int atau string (520). Generalisasikan kelas Keamanan ke Aset. Ini adalah persiapan untuk menambahkan dukungan untuk jenis aset lainnya (535). Api baru berfungsi getenvironment (). Fungsi ini secara default mengembalikan zipline string. Ini digunakan agar algoritma dapat memiliki perilaku yang berbeda pada Quantopian dan zipline lokal (384). Memperluas lingkungan getar () untuk mengekspos lebih banyak lingkungan ke algoritma. Fungsi sekarang menerima argumen yang merupakan field untuk kembali. Secara default, ini adalah platform yang mengembalikan nilai lama zipline namun bidang baru berikut dapat diminta: arena. Apakah ini live trading atau backtesting datafrequency. Apakah mode menit ini atau mode mulai hari ini. Tanggal mulai simulasi akhir. Simulasi tanggal akhir Modal dasar Modal awal untuk simulasi. peron. Platform yang menjalankan algoritma ini. . Kamus berisi semua bidang ini. Fungsi api baru setmaxleveraged (). Metode ini menambahkan penjaga perdagangan yang mencegah algoritme Anda dari lebih memanfaatkannya sendiri (552). Fitur Eksperimental Fitur eksperimental dapat berubah sewaktu-waktu. Menambahkan API Pipeline baru. API pipa adalah API deklaratif tingkat tinggi untuk merepresentasikan perhitungan trailing window pada dataset besar (630). Menambahkan dukungan untuk perdagangan berjangka (637). Menambahkan pemuat pipa untuk ekspresi kilat. Hal ini memungkinkan pengguna untuk menarik data dari berbagai format blaze mengerti dan menggunakannya di Pipeline API. (775). Perbaikan Bug Perbaiki bug di mana pengembalian yang dilaporkan dapat dipenggal tajam untuk periode waktu yang acak (378). Perbaiki bug yang mencegah debugger untuk menyelesaikan file algoritma (431). Argumen maju dengan benar ke fungsi inisialisasi yang ditetapkan pengguna (687). Perbaiki bug yang akan menyebabkan data treasury di redownload setiap backtest antara EST tengah malam dan saat data perbendaharaan tersedia (793). Perbaiki bug yang akan menyebabkan pengguna mendefinisikan fungsi analisis agar tidak dipanggil jika dilewatkan sebagai argumen kata kunci ke TradingAlgorithm (819). Kinerja Peningkatan kinerja utama pada sejarah (oleh Dale Jung) (488). Pemeliharaan dan Refactorings Hapus kode transformasi sederhana. Ini tersedia sebagai metode SIDData (550). Ikhtisar antarmuka baris perintah untuk menjalankan algoritma secara langsung. IPython Magic zipline yang menjalankan algoritma yang didefinisikan dalam sel notebook IPython. Metode API untuk membangun pengamanan terhadap perintah pelarian dan posisi pendek yang tidak diinginkan. Sejarah baru () berfungsi untuk mendapatkan DataFrame data pasar masa lalu yang bergerak (menggantikan BatchTransform). Tutorial pemula yang baru. Perangkat tambahan CLI: Menambahkan sihir CLI dan IPython untuk zipline. Contoh: Meraih data dari yahoo finance, menjalankan file dualmovingavg. py (dan mencari dualmovingavganalyze. py yang, jika ditemukan, akan dieksekusi setelah algoritma dijalankan), dan menampilkan dataFrame ke dma. pickle (325) . Perintah sulap IPython (di bagian atas sel notebook IPython). Contoh: Sama seperti di atas kecuali daripada mengeksekusi file mencari algoritma di sel dan bukannya mengeluarkan file ke file, buatlah sebuah variabel dalam namespace yang disebut perf (325). Menambahkan Kontrol Perdagangan ke algoritma API. Fungsi berikut sekarang tersedia di TradingAlgorithm dan untuk skrip algo: setmaxordersize (self, sidNone, maxsharesNone, maxnotionalNone) Tetapkan batas pada besaran absolut, dalam saham dan nilai total dolar, dari setiap perintah yang diberikan oleh algoritma ini untuk sid yang diberikan . Jika sid tidak ada, maka aturan tersebut diterapkan pada urutan yang ditempatkan oleh algoritma. Contoh: setmaxpositionsize (self, sidNone, maxsharesNone, maxnotionalNone) - Mengatur batas pada besaran absolut, baik dalam nilai saham atau dolar, dari posisi yang dipegang oleh algoritma untuk sid yang diberikan. Jika sid tidak ada, maka aturan tersebut diterapkan ke posisi yang dipegang oleh algoritma. Contoh: setlongonly (self) Tetapkan aturan yang menentukan bahwa algoritma mungkin tidak memegang posisi pendek. Contoh: Menambahkan metode kelas allapimethods pada TradingAlgorithm yang mengembalikan daftar semua metode API TradingAlgorithm (333). Expanded record () fungsionalitas untuk penamaan dinamis. Fungsi record () sekarang dapat mengambil argumen posisi sebelum kwargs. Semua penggunaan dan fungsionalitas asli sama, namun sekarang penggunaan ekstra ini akan berhasil: Persyaratannya hanya karena argumentasi poritional hanya terjadi sebelum kwargs (355). Sejarah () telah dikirim dari Quantopian ke Zipline dan menyediakan data pasar jendela bergerak. Sejarah () menggantikan BatchTransform. Ini lebih cepat, bekerja untuk data tingkat menit dan memiliki antarmuka yang superior. Untuk menggunakannya, panggil addhistory () di dalam inisialisasi () dan kemudian menerima panda DataFrame dengan memanggil history () dari dalam managedata (). Simak tutorial dan contohnya. (345 dan 357). History () sekarang mendukung panjang jendela 1m (345). Perbaikan Bug Perbaiki penyelarasan hari perdagangan dan buka dan tutup di lingkungan perdagangan (331). RollingPanel memperbaiki saat menambahkan field baru (349). Performance Maintenance and Refactorings Menghapus sumber data HDF5 dan CSV yang tidak terdokumentasi dan belum teruji dan belum diuji (267). Refactor simparams (352). Refactoring sejarah (340). Ketergantungan berikut telah diperbarui (zipline mungkin bekerja dengan versi lain juga): Sorotan Perbaikan besar untuk perhitungan risiko, lihat bagian Perbaikan Bug. Port of history () function, lihat bagian Enhancements Mulai dukungan untuk script-syntax algoritma Quantopian, lihat bagian ENH. Dukungan manajer paket conda, lihat bagian Build. Perangkat tambahan Selalu memproses pesanan baru yaitu pada bilah-bilah di mana telepon ditangani, tapi ada 8216clock8217 data mis. Patokan yang konsisten, perintah proses. Posisi kosong sekarang disaring dari wadah portofolio. Untuk membantu mencegah algoritme beroperasi pada posisi yang tidak berada dalam jagad saham yang ada. Dahulu, iterasi atas posisi akan mengembalikan posisi saham yang memiliki zero shares held. (Dimana cek eksplisit dalam kode algoritma untuk pos. amount 0 dapat mencegah penggunaan posisi yang tidak ada.) Tambahkan kalender perdagangan untuk BMFampBovespa. Tambahkan permulaan dukungan algo script. Mulai di jalan paritas dengan sintaks naskah di Quantopian8217s IDE on quantopian Contoh: Tambahkan sumber HDF5 dan CSV. Batasi penanganan terhadap waktu dengan data pasar. Untuk mencegah kasus-kasus di mana tipe data khusus memiliki cap waktu yang tidak sama, hanya memanggil ditanganiata saat data pasar berhasil melewatinya. Data khusus yang datang sebelum data pasar masih akan memperbarui data bar. Namun penanganan data itu hanya akan dilakukan bila ada data pasar yang bisa ditindaklanjuti. Metode Extended commission PerShare memungkinkan biaya minimum per perdagangan. Menambahkan fungsi simbol api Sebuah simbol () fitur pencarian ditambahkan ke Quantopian. Dengan menambahkan fungsi API yang sama ke zipline, kita bisa membuat salinan dari Zipline algo ke Quantopian lebih mudah. Tambahkan sumber perdagangan acak simulasi. Menambahkan sumber data baru yang memancarkan acara dengan frekuensi tertentu yang ditentukan pengguna (menit atau setiap hari). Hal ini memungkinkan pengguna untuk melakukan backtest dan debug algoritma dalam mode menit untuk memberikan jalur bersih menuju Quantopian. Hapus ketergantungan pada patokan untuk kalender hari perdagangan. Alih-alih indeks benchmark1617, kalender perdagangan sekarang digunakan untuk mengisi hari perdagangan lingkungan8217s. Hapus bidang ekstradat, karena tidak seperti daftar tolok ukur, kalender perdagangan dapat menghasilkan tanggal di masa depan, jadi tanggal untuk perdagangan hari ini tidak perlu ditambahkan. Motivasi: Sumber untuk kalender tutup dan closeear yang dekat dan kalender hari perdagangan sekarang sama, yang seharusnya membantu mencegah potensi masalah karena misalignment. Memungkinkan konfigurasi di mana patokan disediakan sebagai sumber data berbasis generator agar perlu menyediakan daftar tolak ukur kedua hanya untuk mengisi tanggal. Sejarah pelabuhan () Metode API dari Quantopian. Membuka inti dari fungsi history () yang sebelumnya hanya tersedia di platform Quantopian. Metode sejarah analog dengan functiondecorator batchtransform, namun dengan spesifikasi frekuensi dan periode data bar sebelumnya yang diharapkan lebih mudah. Contoh penggunaan: N. B. Versi sejarah ini tidak memiliki kemampuan backfilling yang memungkinkan mengembalikan DataFrame lengkap di bar pertama. Perbaikan Bug Menyesuaikan acara benchmark agar sesuai dengan jam pasar (241). Sebelumnya, acara benchmark dipancarkan pada pukul 0:00 pada hari patokan yang terkait dengan: dalam mode emisi 8216minute8217 ini berarti tolok ukur dipancarkan sebelum perdagangan intra-hari diproses. Pastikan statistik perf dihasilkan untuk semua hari Saat menjalankan dengan sedikit simulasi, simulator akan melaporkan kepada pengguna bahwa simulasi mensimulasikan 8216n - 18217 hari (di mana n adalah jumlah hari yang ditentukan dalam params simulasi). Sekarang jumlah hari perdagangan yang benar dilaporkan sebagai simulasi. Perbaiki repr untuk metrik risiko kumulatif. Repr untuk RiskMetricsCumulative mengacu pada struktur kelas yang lebih tua, menyebabkan pengecualian saat dicetak. Juga, sekarang cetak nilai terakhir dalam metrik DataFrame. Mencegah emisi menit mulai menerjang pada akhir data yang tersedia. The next day calculation was causing an error when a minute emission algorithm reached the end of available data. Instead of a generic exception when available data is reached, raise and catch a named exception so that the tradesimulation loop can skip over, since the next market close is not needed at the end. Fix pandas indexing in trading calendar. This could alternatively be filed under Performance. Index using loc instead of the inefficient index-ing of day, then time. Prevent crash in vwap transform due to non-existent member. The WrongDataForTransform was referencing a self. fields member, which did not exist. Add a self. fields member set to price and volume and use it to iterate over during the check. Fix max drawdown calculation. The input into max drawdown was incorrect, causing the bad results. i. e. the compoundedlogreturns were not values representative of the algorithms total return at a given time, though calculatemaxdrawdown was treating the values as if they were. Instead, the algorithmperiodreturns series is now used, which does provide the total return. Fix cost basis calculation. Cost basis calculation now takes direction of txn into account. Closing a long position or covering a short shouldn8217t affect the cost basis. Fix floating point error in order(). Where order amounts that were near an integer could accidentally be floored or ceilinged (depending on being postive or negative) to the wrong integer. misalnya an amount stored internally as -27.99999 was converted to -27 instead of -28. Update perf period state when positions are changed by splits. Otherwise, self. positionamounts will be out of sync with position. amount, etc. Fix misalignment of downside series calc when using exact dates. An oddity that was exposed while working on making the return series passed to the risk module more exact, the series comparison between the returns and mean returns was unbalanced, because the mean returns were not masked down to the downside data points however, in most, if not all cases this was papered over by the call to. valid() which was removed in this change set. Check that self. logger exists before using it. self. logger is initialized as None and there is no guarantee that users have set it, so check that it exists before trying to pass messages to it. Prevent out of sync market closes in performance tracker. In situations where the performance tracker has been reset or patched to handle state juggling with warming up live data, the marketclose member of the performance tracker could end up out of sync with the current algo time as determined by the performance tracker. The symptom was dividends never triggering, because the end of day checks would not match the current time. Fix by having the tradesimulation loop be responsible, in minuteminute mode, for advancing the market close and passing that value to the performance tracker, instead of having the market close advanced by the performance tracker as well. Fix numerous cumulative and period risk calculations. The calculations that are expected to change are: cumulative. beta cumulative. alpha cumulative. information cumulative. sharpe period. sortino How Risk Calculations Are Changing Risk Fixes for Both Period and Cumulative Use sample instead of population for standard deviation. Add a rounding factor, so that if the two values are close for a given dt, that they do not count as a downside value, which would throw off the denominator of the standard deviation of the downside diffs. Standard Deviation Type Across the board the standard deviation has been standardized to using a 8216sample8217 calculation, whereas before cumulative risk was mostly using 8216population8217. Using ddof1 with np. std calculates as if the values are a sample. Cumulative Risk Fixes Use the daily algorithm returns and benchmarks instead of annualized mean returns. Use sample instead of population with standard deviation. The volatility is an input to other calculations so this change affects Sharpe and Information ratio calculations. The benchmark returns input is changed from annualized benchmark returns to the annualized mean returns. The benchmark returns input is changed from annualized benchmark returns to the annualized mean returns. Period Risk Fixes Now uses the downside risk of the daily return vs. the mean algorithm returns for the minimum acceptable return instead of the treasury return. The above required adding the calculation of the mean algorithm returns for period risk. Also, uses algorithmperiodreturns and tresauryperiodreturn as the cumulative Sortino does, instead of using algorithm returns for both inputs into the Sortino calculation. Performance Removed aliasdt transform in favor of property on SIDData. Adding a copy of the Event8217s dt field as datetime via the aliasdt generator, so that the API was forgiving and allowed both datetime and dt on a SIDData object, was creating noticeable overhead, even on an noop algorithms. Instead of incurring the cost of copying the datetime value and assigning it to the Event object on every event that is passed through the system, add a property to SIDData which acts as an alias datetime to dt. Eventually support for datafoo. datetime may be removed, and could be considered deprecated. Remove the drop of 8216null return8217 from cumulative returns. The check of existence of the null return key, and the drop of said return on every single bar was adding unneeded CPU time when an algorithm was run with minute emissions. Instead, add the 0.0 return with an index of the trading day before the start date. The removal of the null return was mainly in place so that the period calculation was not crashing on a non-date index value with the index as a date, the period return can also approximate volatility (even though the that volatility has high noise-to-signal strength because it uses only two values as an input.) Maintenance and Refactorings Allow simparams to provide data frequency for the algorithm. In the case that datafrequency of the algorithm is None, allow the simparams to provide the datafrequency . Also, defer to the algorithms data frequency, if provided. Added support for building and releasing via conda For those who prefer building with conda. pydata. org to compiling locally with pip. The following should install Zipline on many systems.

No comments:

Post a Comment