Wednesday 16 August 2017

Jendela Bergoyang Rata


Hmmm, nampaknya fungsi pengarsipan yang mudah ini sebenarnya cukup mudah untuk salah dan telah memupuk diskusi yang bagus mengenai efisiensi memori. Saya senang memiliki perut kembung jika itu berarti mengetahui bahwa ada sesuatu yang telah dilakukan dengan benar Richard 20 September pukul 19 23.NumPy Kurangnya fungsi spesifik domain tertentu mungkin karena disiplin Tim Inti dan kesetiaan pada arahan utama NumPy memberikan tipe array N-dimensi dan juga fungsi untuk membuat, dan mengindeks array tersebut Seperti banyak tujuan mendasar, yang satu ini Tidak kecil, dan NumPy melakukannya dengan cemerlang. SciPy yang jauh lebih besar berisi koleksi perpustakaan spesifik domain yang jauh lebih banyak yang disebut subpackages oleh SciPy devs - misalnya optimasi numerik, signal processsing signal, dan integral kalkulus. Saya kira adalah Bahwa fungsi yang Anda cari setidaknya ada di antara subpack SciPy, namun, saya akan melihat dulu koleksi SciPy scikits mengidentifikasi scikit s yang relevan dan mencari Fungsi yang menarik di sana. Scikits adalah paket yang dikembangkan secara independen berdasarkan NumPy SciPy dan diarahkan ke disiplin teknis tertentu misalnya scikits-image scikits-learn etc Beberapa di antaranya adalah khususnya, OpenOpt yang mengagumkan untuk pengoptimalan numerik sangat dihargai, proyek yang matang panjang Sebelum memilih untuk berada di bawah rubrik scikits yang relatif baru Beranda Scikits menyukai daftar di atas sekitar 30 suntikan seperti itu meskipun setidaknya beberapa di antaranya tidak lagi berada dalam pengembangan aktif. Setelah mengikuti saran ini, akan membawa Anda ke scams-timeseries, paket itu tidak Lebih lama dalam perkembangan aktif Akibatnya, Pandas telah menjadi, AFAIK, perpustakaan seri waktu de facto NumPy. Pedia memiliki beberapa fungsi yang dapat digunakan untuk menghitung rata-rata bergerak yang paling sederhana ini mungkin adalah rollingmean yang Anda gunakan seperti sekarang. , Panggil saja fungsi rollingmean yang lewat di objek Seri dan ukuran jendela yang dalam contoh saya di bawah ini adalah 10 hari. Orked - misalnya membandingkan nilai 10 - 15 dalam seri aslinya versus Seri baru yang dihaluskan dengan mean rolling. Fungsi pengguliran, bersamaan dengan sekitar selusin fungsi lainnya dikelompokkan secara informal dalam dokumentasi Pandas di bawah fungsi jendela geser rubrik kedua , Kelompok fungsi yang terkait di Pandas disebut sebagai fungsi tertimbang secara eksponensial misalnya manusia yang menghitung rata-rata tertimbang bergerak secara eksponensial Fakta bahwa kelompok kedua ini tidak termasuk dalam fungsi jendela bergerak pertama mungkin karena transformasi yang tertimbang secara eksponensial bergantung pada Sebuah jendela fixed-length. Diberikan 14 Januari 13 di 6 38. Mengumpulkan Crossover Rata-rata Bergerak dengan Python dengan panda. Pada artikel sebelumnya tentang Lingkungan Backtesting Penelitian Dengan Python Dengan Pandas, kami menciptakan lingkungan backtesting berdasarkan penelitian berbasis objek dan mengujinya. Pada strategi peramalan acak Pada artikel ini kita akan menggunakan mesin yang kita perkenalkan untuk melakukan penelitian tentang str sebenarnya Ategy, yaitu Moving Average Crossover pada AAPL. Moving Average Crossover Strategy. Teknik Moving Average Crossover adalah strategi momentum sederhana yang sangat terkenal. Hal ini sering dianggap sebagai contoh Hello World untuk perdagangan kuantitatif. Strategi yang digariskan disini adalah long-only Dua filter rata-rata bergerak sederhana yang terpisah dibuat, dengan periode penampakan yang berbeda, dari rangkaian waktu tertentu Sinyal untuk membeli aset terjadi ketika rata-rata moving average yang lebih pendek melebihi rata-rata moving average yang lama. Jika rata-rata yang lebih lama kemudian melebihi rata-rata yang lebih pendek, aset tersebut Dijual kembali Strategi ini berjalan dengan baik ketika sebuah deret waktu memasuki periode tren yang kuat dan kemudian perlahan membalikkan trennya. Untuk contoh ini, saya telah memilih Apple, Inc AAPL sebagai rangkaian waktu, dengan tampilan singkat 100 hari dan tampilan balik yang panjang. Dari 400 hari Ini adalah contoh yang diberikan oleh perpustakaan perdagangan algoritma zipline Jadi, jika kita ingin menerapkan backtester kita sendiri, kita perlu memastikan t Topi itu sesuai dengan hasil di zipline, sebagai sarana dasar validasi. Pastikan mengikuti tutorial sebelumnya di sini yang menjelaskan bagaimana hirarki objek awal untuk backtester dibangun, jika kode di bawah ini tidak akan berhasil Untuk implementasi khusus ini saya gunakan Perpustakaan berikut. Persyaratan implementasi dari tutorial sebelumnya Langkah pertama adalah mengimpor modul dan objek yang diperlukan. Seperti pada tutorial sebelumnya, kita akan mengelompokkan kelas dasar Strategi abstrak untuk menghasilkan MovingAverageCrossStrategy yang berisi semua rincian tentang bagaimana Untuk menghasilkan sinyal ketika rata-rata bergerak AAPL saling silang satu sama lain. Objek memerlukan shortwind dan longwindow untuk dioperasikan Nilai telah ditetapkan ke default masing-masing 100 hari dan 400 hari, yang merupakan parameter yang sama yang digunakan pada Contoh utama dari zipline. Rata-rata bergerak dibuat dengan menggunakan fungsi rollingmanan panda di palang tutup harga penutupan Saham AAPL Setelah rata-rata pergerakan individu telah dibangun, Seri sinyal dihasilkan dengan menetapkan kolom sebesar 1 0 bila rata-rata bergerak pendek lebih besar dari rata-rata bergerak yang panjang, atau 0 0 sebaliknya Dari sini, posisi pesanan dapat dihasilkan ke Mewakili sinyal perdagangan. MarketOnClosePortfolio dikelompokkan dari Portofolio yang ditemukan di dalamnya hampir sama dengan penerapan yang dijelaskan di tutorial sebelumnya, kecuali bahwa perdagangan sekarang dilakukan secara Close-to-Close, bukan Open - untuk-Terbuka Untuk rincian tentang bagaimana objek Portofolio didefinisikan, lihat tutorial sebelumnya, saya telah meninggalkan kode ini untuk kelengkapan dan untuk menjaga agar tutorial ini tetap terkandung. Sekarang, kelas MovingAverageCrossStrategy dan MarketOnClosePortfolio telah didefinisikan, sebuah fungsi utama Akan dipanggil untuk mengikat semua fungsi bersama Selain itu, kinerja strategi akan diperiksa melalui sebidang kurva ekuitas. DataR pandas Objek eader mendownload harga OHLCV dari saham AAPL untuk periode 1 Januari 1990 sampai 1 Januari 2002, pada saat mana sinyal DataFrame dibuat untuk menghasilkan sinyal hanya-panjang Kemudian portofolio dihasilkan dengan basis modal awal 100.000 USD dan keuntungannya adalah Dihitung pada kurva ekuitas. Langkah terakhirnya adalah menggunakan matplotlib untuk merencanakan plot dua angka dari harga AAPL, yang dilapisi dengan rata-rata bergerak dan sinyal jual beli, serta kurva ekuitas dengan sinyal jual beli yang sama. Kode plotting Diambil dan dimodifikasi dari contoh penerapan zipline. Output grafis dari kode ini adalah sebagai berikut. Saya menggunakan perintah tempel IPython untuk memasukkan ini langsung ke konsol IPython saat berada di Ubuntu, sehingga output grafis tetap terlihat. Upticks merah muda Mewakili pembelian saham, sedangkan downticks hitam mewakili penjualannya kembali. Rata-rata Beralih Rata-rata Bergerak dari 1990-01-01 sampai 2002-01-01. Seperti dapat dilihat strategi kehilangan uang lebih dari Periode, dengan lima perdagangan pulang-pergi Hal ini tidak mengejutkan mengingat perilaku AAPL selama periode tersebut, yang pada tren sedikit menurun, diikuti oleh kenaikan yang signifikan yang dimulai pada tahun 1998 Periode turnback dari sinyal rata-rata bergerak agak besar dan Hal ini berdampak pada keuntungan perdagangan akhir, yang sebaliknya mungkin telah membuat strategi tersebut menguntungkan. Pada artikel selanjutnya, kita akan menciptakan cara yang lebih canggih untuk menganalisis kinerja, serta menggambarkan bagaimana mengoptimalkan periode turnback dari sinyal rata-rata pergerakan individu. Memulai dengan Quantitative Trading. Contoh berikut menghasilkan rata-rata bergerak dari nilai WINDOW sebelumnya Kami memotong nilai WINDOW -1 pertama karena kita tidak dapat menemukan rata-rata sebelumnya. Perilaku default untuk konvolusi adalah mengasumsikan bahwa nilai sebelum awal Urutan adalah 0 Secara lebih formal, kita membuat urutan y untuk urutan x dimana yi xi xi 1 xin n. Ini menggunakan konsep konvolusi numpy s Ini adalah tujuan umum operasi rata-rata bergerak. Membentuk bobot membuat beberapa nilai lebih penting mengimbangi dengan tepat memungkinkan Anda melihat rata-rata seperti di sekitar titik daripada sebelum titik. Dari pada memotong nilai, kita dapat memperbaiki nilai awal di tempat, seperti yang digambarkan pada contoh ini. .

No comments:

Post a Comment