Python-forex-backtesting

Python-forex-backtesting

Pilihan-trading-hard
Volatilitas-peramalan-option-trading
Pokemon-trading-card-game-online-ep-1


Online-trading-nse-india Warriors-trade-options Trading-system-evaluation-metrics Vcb-forex Jnj-moving-average Online-trading-binary-options

Python Algorithmic Trading Library PyAlgoTrade adalah Python Algorithmic Trading Library dengan fokus pada backtesting dan dukungan untuk perdagangan kertas dan live-trading. Katakanlah Anda memiliki ide untuk strategi trading dan Anda ingin mengevaluasinya dengan data historis dan melihat bagaimana perilaku tersebut. PyAlgoTrade memungkinkan Anda melakukannya dengan sedikit usaha. Fitur utama Dikeluarkan sepenuhnya. Acara didorong Mendukung pesanan Market, Limit, Stop dan StopLimit. Mendukung file Yahoo Finance, Google Finance dan NinjaTrader CSV. Mendukung semua jenis data deret waktu dalam format CSV, misalnya Quandl. Dukungan perdagangan Bitcoin melalui Bitstamp. Indikator teknis dan filter seperti SMA, WMA, EMA, RSI, Bollinger Bands, Hurst eksponen dan lain-lain. Metrik kinerja seperti analisis rasio dan penarikan Sharpe. Menangani acara Twitter secara realtime. Profiler acara Integrasi TA-Lib. Sangat mudah untuk skala horizontal, yaitu menggunakan satu atau lebih komputer untuk mendukung strategi. PyAlgoTrade bebas, open source, dan dilisensikan di bawah Lisensi Apache, Versi 2.0.Trading dengan Python Saya baru saja membaca posting yang bagus oleh blog turinginance tentang bagaimana menjadi sebuah quant. Singkatnya, ini menggambarkan pendekatan ilmiah untuk mengembangkan strategi perdagangan. Bagi saya pribadi, mengamati data, berpikir dengan model dan membentuk hipotesis adalah sifat kedua, sebagaimana mestinya bagi insinyur yang baik. Dalam posting ini saya akan mengilustrasikan pendekatan ini dengan secara eksplisit melalui beberapa langkah (hanya beberapa, tidak semuanya) yang terlibat dalam pengembangan strategi perdagangan. Mari kita lihat instrumen perdagangan yang paling umum, SampP 500 ETF SPY. Aku mulai dengan pengamatan. Pengamatan Terlintas dalam pikiran saya bahwa sebagian besar waktu ada banyak pembicaraan di media tentang pasar yang menabrak (setelah kerugian besar selama beberapa hari), cukup banyak rebound yang signifikan terjadi saat ini. Dulu saya telah melakukan beberapa kesalahan dengan menutup posisi saya untuk mengurangi kerugian, hanya untuk melewatkan pemulihan di hari-hari berikutnya. Teori umum Setelah periode kerugian berturut-turut, banyak pedagang akan melikuidasi posisi mereka karena takut kehilangan yang lebih besar lagi. Sebagian besar perilaku ini diatur oleh rasa takut, bukan risiko yang diperhitungkan. Pedagang yang lebih pintar masuk kemudian untuk penawaran. Hipotesis: Kembalinya SPY akan menunjukkan bias ke atas setelah sejumlah kerugian berturut-turut. Untuk menguji hipotesis tersebut, saya menghitung jumlah hari turun berturut-turut. Semuanya di bawah -0,1 pengembalian harian memenuhi syarat sebagai hari ke bawah. Seri kembalian hampir acak, jadi seperti yang diperkirakan, kemungkinan 5 hari turun berturut-turut turun, sehingga jumlah kejadiannya sangat terbatas. Jumlah kejadian yang rendah akan menghasilkan estimasi statistik yang tidak dapat diandalkan, jadi berhenti di 5. Berikut adalah visualisasi nex-tday returns sebagai fungsi dari jumlah down days. Ive juga merencanakan 90 interval keyakinan pengembalian antara garis. Ternyata rata-rata return berkorelasi positif dengan jumlah down days. Hipotesis dikonfirmasi. Namun, Anda dapat dengan jelas melihat bahwa alpha ekstra ini sangat kecil dibandingkan dengan band hasil pengembalian yang mungkin. Tapi bahkan tepi kecil pun bisa dimanfaatkan (cari keuntungan statistik dan ulangi sesering mungkin). Langkah selanjutnya adalah menginvestigasi apakah edge ini bisa berubah dalam strategi trading. Dengan data di atas, strategi trading bisa menjadi forumlated: Setelah consectutive 3 atau lebih loss, go long. Keluar di tutup berikutnya. Berikut ini adalah hasil dari strategi ini dibandingkan dengan buy-and-hold murni. Ini tidak terlihat buruk sama sekali. Melihat rasio suku bunga, strategi tersebut menentukan angka 2,2 versus 0,44 untuk BampH. Ini sebenarnya cukup bagus (jangan terlalu bersemangat, karena saya tidak memperhitungkan biaya komisi, selip dll). Sementara strategi di atas bukanlah sesuatu yang ingin saya trading hanya karena rentang waktu yang lama, teori itu sendiri memprovokasi pemikiran lebih lanjut yang bisa menghasilkan sesuatu yang bermanfaat. Jika prinsip yang sama berlaku untuk data intraday, diperlukan strategi scalping. Pada contoh di atas, saya terlalu menyederhanakan dunia sedikit dengan hanya menghitung jumlah hari turun, tanpa memperhatikan kedalaman penarikan. Juga, posisi keluar hanya dasar hari depan-dekat. Ada banyak hal yang perlu ditingkatkan, namun esensi menurut saya adalah ini: pengembalian SPY di masa depan dipengaruhi oleh durasi penarikan dan penarikan selama 3 sampai 5 hari sebelumnya. Seorang trader berpengalaman tahu apa perilaku yang diharapkan dari pasar berdasarkan seperangkat indikator dan interpretasi mereka. Yang terakhir ini sering dilakukan berdasarkan ingatannya atau semacam model. Menemukan seperangkat indikator dan pemrosesan informasi mereka merupakan tantangan besar. Pertama, kita perlu memahami faktor apa yang berkorelasi dengan harga di masa depan. Data yang tidak memiliki kualitas prediktif hanya menimbulkan kebisingan dan kompleksitas, menurunkan kinerja strategi. Menemukan indikator yang baik adalah sains tersendiri, seringkali membutuhkan pemahaman mendalam tentang dinamika pasar. Ini bagian dari desain strategi tidak mudah otomatis. Untungnya, sekali seperangkat indikator yang bagus telah ditemukan, para pedagang memori dan intuisi dapat dengan mudah diganti dengan model statistik, yang kemungkinan akan tampil jauh lebih baik karena komputer memiliki memori tanpa cela dan dapat membuat estimasi statistik yang sempurna. Mengenai perdagangan volatilitas, saya membutuhkan beberapa waktu untuk memahami apa yang mempengaruhi pergerakannya. Secara khusus, saya tertarik pada variabel yang memprediksi return VXX dan XIV di masa depan. Saya tidak akan menjelaskan secara lengkap di sini, tapi sampaikan sebuah kesimpulan. Dua indikator saya yang paling berharga untuk volatilitas adalah istilah kemiringan struktur dan harga volatilitas saat ini. Definisi saya dari kedua hal ini adalah: volatilitas premium VIX-awareVol delta (kemiringan struktur awal) VIX-VXV VIX amp VXV adalah volatilitas ke depan 1 dan 3 tersirat dari Sampp 500. consciousVol di sini adalah volatilitas 10 hari yang direalisasikan dari SPY, Dihitung dengan formula Yang-Zhang. Delta telah sering dibahas di blog VixAndMore, sementara premium sudah terkenal dari option trading. Masuk akal untuk mengalami volatilitas singkat saat premium tinggi dan futures berada di contango (delta lt 0). Ini akan menyebabkan tailwind dari roll premium dan daily roll sepanjang struktur istilah di VXX. Tapi ini hanya perkiraan kasar. Strategi trading yang baik akan menggabungkan informasi dari premium dan delta dengan prediksi arah perdagangan di VXX. Ive telah berjuang untuk waktu yang sangat lama untuk datang dengan cara yang baik untuk menggabungkan data bising dari kedua indikator. Saya telah mencoba sebagian besar pendekatan standar, seperti regresi linier, menulis seikat if-thens. Tapi semua dengan perbaikan yang sangat kecil dibandingkan dengan hanya menggunakan satu indikator. Contoh yang baik dari strategi indikator tunggal seperti itu dengan aturan sederhana dapat ditemukan di blog TradingTheOdds. Tidak terlihat buruk, tapi apa yang bisa dilakukan dengan banyak indikator III mulai dengan beberapa data VXX out-of-sample yang saya dapatkan dari MarketSci. Perhatikan bahwa ini adalah data simulasi, sebelum VXX dibuat. Indikator untuk periode yang sama diplot di bawah ini: Jika kita mengambil salah satu indikator (premium dalam kasus ini) dan merencanakannya terhadap imbal hasil VXX di masa mendatang, beberapa korelasi dapat dilihat, namun datanya sangat bising: Tetap saja, jelas Premi negatif tersebut kemungkinan akan memiliki imbal balik VXX positif di hari berikutnya. Menggabungkan kedua premium dan delta menjadi satu model telah menjadi tantangan bagi saya, namun saya selalu ingin melakukan pendekatan statistik. Intinya, untuk kombinasi (delta, premium), Id ingin menemukan semua nilai historis yang paling dekat dengan nilai saat ini dan membuat perkiraan pengembalian masa depan berdasarkannya. Beberapa kali saya mulai menulis algoritma interpolasi tetangga terdekat saya sendiri, tapi setiap kali saya harus menyerah. Sampai aku menemukan regresi tetangga terdekat scikit. Ini memungkinkan saya untuk cepat membangun prediktor berdasarkan dua masukan dan hasilnya sangat bagus, sehingga saya sedikit khawatir bahwa saya telah membuat kesalahan di suatu tempat. Inilah yang saya lakukan: membuat dataset delta, VXX premium pada hari berikutnya kembali (dalam sampel) membuat prediktor tetangga terdekat berdasarkan kumpulan data di atas strategi perdagangan (tidak di luar sampel) dengan aturan: Lanjutkan jika prediksi return gt 0 berjalan lambat jika diprediksi return lt0 Strategi tidak bisa lebih sederhana. Hasilnya nampak sangat bagus dan menjadi lebih baik bila lebih banyak neigbour digunakan untuk estimasi. Pertama, dengan 10 poin, strategi ini sangat baik dalam sampel, namun rata-rata di luar sampel (garis merah pada gambar di bawah adalah titik terakhir dalam sampel) Kemudian, kinerja menjadi lebih baik dengan 40 dan 80 poin: Pada akhirnya Dua plot, strategi tampaknya melakukan hal yang sama dan di luar sampel. Rasio Sharpe sekitar 2,3. Saya sangat senang dengan hasilnya dan memiliki perasaan bahwa saya hanya menggaruk permukaan dari apa yang mungkin dengan teknik ini. Pencarian saya tentang alat backtesting yang ideal (definisi ideal saya dijelaskan di posting dilema Backtesting sebelumnya) tidak menghasilkan sesuatu yang dapat saya gunakan dengan segera. Namun, meninjau opsi yang ada membantu saya untuk memahami dengan lebih baik apa yang sebenarnya saya inginkan. Dari pilihan yang saya lihat, pybacktest adalah yang paling saya sukai karena kesederhanaan dan kecepatannya. Setelah melalui kode sumber, saya punya beberapa ide untuk membuatnya lebih sederhana dan sedikit lebih elegan. Dari situ, hanya ada sedikit langkah untuk menulis backtester saya sendiri, yang sekarang tersedia di perpustakaan TradingWithPython. Saya telah memilih sebuah pendekatan di mana backtester berisi fungsionalitas yang digunakan oleh semua strategi perdagangan dan seringkali disalin copy-paste. Hal-hal seperti menghitung posisi dan pnl, metrik kinerja dan pembuatan plot. Fungsi spesifik strategi, seperti menentukan titik masuk dan keluar harus dilakukan di luar backtester. Alur kerja yang khas adalah: temukan entri dan keluaran -gt hitung pnl dan buat plot dengan data strategi pasca-proses backtester. Pada saat ini modulnya sangat minim (lihat sumbernya di sini), namun di masa depan saya merencanakan Pada penambahan keuntungan dan stop-loss exit dan multi-asset portfolio. Penggunaan modul backtesting ditunjukkan pada contoh notebook ini saya mengatur notebook IPython saya dengan menyimpannya di berbagai direktori. Namun ini membawa ketidaknyamanan, karena untuk mengakses notebook saya perlu membuka terminal dan mengetikkan notebook ipython --pylabinline setiap saat. Saya yakin tim ipython akan menyelesaikan ini dalam jangka panjang, namun sementara itu ada cara yang cukup populer untuk cepat mengakses notebook dari file explorer. Yang perlu Anda lakukan adalah menambahkan menu konteks yang memulai server ipython di direktori yang Anda inginkan: Cara cepat untuk menambahkan item konteks adalah dengan menjalankan patch registri ini. (Perhatikan, patch mengasumsikan bahwa Anda memiliki instalasi python Anda yang terletak di C: Anaconda. Jika tidak, Anda perlu membuka berkas .reg di editor teks dan mengatur jalur yang benar di baris terakhir). Petunjuk untuk menambahkan kunci registri secara manual dapat ditemukan di blog Frolians. Banyak orang berpikir bahwa leveraged etfs dalam jangka panjang dapat mengimbangi tolok ukur mereka. Hal ini berlaku untuk pasar yang berombak, namun tidak dalam kondisi tren, baik naik maupun turun. Leverage hanya berpengaruh pada hasil yang paling mungkin, bukan pada hasil yang diharapkan. Untuk lebih jelasnya silahkan baca posting ini. Tahun 2013 merupakan tahun yang sangat baik untuk saham, yang cenderung meningkat hampir sepanjang tahun. Mari kita lihat apa yang akan terjadi jika kita menjepret beberapa etf leveraged tepat setahun yang lalu dan melindunginya dengan patokan mereka. Mengetahui perilaku etf leveraged, saya berharap bahwa etf yang diadopsi mengungguli tolok ukur mereka, jadi strategi yang akan mencoba mendapatkan keuntungan dari pembusukan akan kehilangan uang. Saya akan mempertimbangkan pasangan ini: SPY 2 SSO -1 SPY -2 SDS -1 QQQ 2 QLD -1 QQQ -2 QID -1 IYF -2 SKF -1 Masing-masing leveraged etf diadakan singkat (-1) dan dilindung nilai dengan 1x Etf Perhatikan bahwa untuk melakukan lindung nilai posisi terbalik berarti negatif berada di etf 1x. Inilah salah satu contohnya: SPY vs SSO. Begitu kita menormalkan harga menjadi 100 pada awal periode backtest (250 hari), jelas bahwa ethernet 2x lebih baik dari 1x etf. Sekarang hasil backtest pada pasangan di atas: Semua 2x etfs (termasuk invers) sudah mengungguli benchmark mereka sepanjang tahun 2013. Menurut harapan, strategi pengeksploitasi peluruhan beta tidak akan menguntungkan. Saya akan berpikir bahwa memainkan etfs leveraged melawan rekan mereka yang tidak cakap tidak memberikan keunggulan apapun, kecuali jika Anda mengetahui kondisi pasar sebelumnya (tren atau batasan jarak). Tapi jika Anda tahu rezim pasar yang akan datang, ada cara yang lebih mudah untuk mendapatkan keuntungan darinya. Sayangnya, belum ada yang benar-benar berhasil memprediksi rezim pasar bahkan dalam waktu yang sangat singkat. Kode sumber lengkap perhitungan tersedia untuk pelanggan kursus Trading With Python. Notebook 307 Inilah tembakan saya di penilaian Twitter. Id ingin memulai dengan disclaimer: pada saat ini sebagian besar portrolio saya terdiri dari posisi TWTR pendek, jadi pendapat saya agak miring. Alasan saya melakukan analisis sendiri adalah bahwa taruhan saya tidak berjalan dengan baik, dan Twitter melakukan langkah parabola pada bulan Desember 2013. Jadi, pertanyaan yang coba saya jawab di sini adalah apakah saya harus kehilangan atau berpegangan pada celana pendek saya? Pada saat penulisan, perdagangan TWTR sekitar 64 mark, dengan market cap 34,7 B. Sampai sekarang perusahaan belum menghasilkan keuntungan, kehilangan 142M pada 3013 setelah menghasilkan 534 juta pendapatan. Dua angka terakhir memberi kita pengeluaran perusahaan tahunan sebesar 676 juta. Harga yang didapat dari nilai pengguna Twitter bisa dibandingkan dengan dengan Facebook, Google dan LinkedIn untuk mendapatkan ide tentang jumlah pengguna dan nilainya. Tabel di bawah merangkum jumlah pengguna per perusahaan dan nilai per pengguna yang berasal dari pangsa pasar. (Sumber untuk jumlah pengguna: Wikipedia, nomor untuk Google didasarkan pada jumlah penelusuran unik) Menjadi jelas bahwa valuasi pasar per pengguna sangat mirip untuk semua perusahaan, namun pendapat pribadi saya adalah bahwa: TWTR saat ini lebih bernilai Per pengguna itu dari FB atau LNKD. Ini tidak logis karena kedua pesaing memiliki data pengguna pribadi yang lebih berharga yang mereka miliki. GOOG telah unggul dalam mengekstrak pendapatan iklan dari penggunanya. Untuk melakukan itu, ia memiliki serangkaian penawaran yang sangat beragam, mulai dari mesin pencari hingga Google. Documents dan Gmail. TWTR tidak ada yang menyerupai itu, sementara nilainya per pengguna hanya 35 persen lebih rendah dari Google. TWTR memiliki ruang terbatas untuk menumbuhkan basis penggunanya karena tidak menawarkan produk yang sebanding dengan penawaran FB atau GOOG. TWTR telah ada selama tujuh tahun sekarang dan kebanyakan orang yang menginginkan sebuah accout mendapat kesempatan mereka. Sisanya tidak peduli. Basis pengguna TWTR bersifat volatile dan kemungkinan akan beralih ke hal panas berikutnya saat akan tersedia. Menurut saya referensi terbaik di sini adalah LNKD, yang memiliki relung yang stabil di pasar profesional. Dengan metrik TWTR ini akan dinilai terlalu tinggi. Menetapkan nilai pengguna pada 100 untuk TWTR akan menghasilkan harga TWTR yang adil dari 46. Harga berasal dari pendapatan masa depan Ada cukup data yang tersedia mengenai perkiraan penghasilan di masa depan. Salah satu yang paling berguna yang saya temukan ada di sini. Menggunakan angka-angka itu sambil mengurangi pengeluaran perusahaan, yang saya anggap tetap konstan. Menghasilkan angka ini: Kesimpulan Berdasarkan informasi yang ada, valuasi TWTR yang optimis harus berada pada kisaran 46-48. Tidak ada alasan yang jelas untuk melakukan perdagangan yang lebih tinggi dan banyak risiko operasional untuk diperdagangkan lebih rendah. Dugaan saya adalah bahwa selama IPO cukup profesional telah meninjau harganya, menetapkannya pada tingkat harga yang wajar. Yang terjadi selanjutnya adalah pergerakan pasar yang tidak rasional yang tidak dibenarkan oleh informasi baru. Lihat saja kegilaan bullish pada stocktwits. Dengan orang yang mengklaim hal seperti burung ini akan terbang sampai 100. Emosi murni, yang tak pernah berhasil dengan baik. Satu-satunya yang ada di tanganku sekarang adalah meletakkan uangku di tempat mulutku dan menempel pada celana pendekku. Waktu akan berbicara. Korslet volatilitas jangka pendek etn VXX mungkin tampak seperti ide bagus saat Anda melihat grafik dari jarak yang cukup jauh. Karena contango di futures volatilitas, etn pengalaman cukup beberapa headwind sebagian besar waktu dan kehilangan sedikit nilainya setiap hari. Hal ini terjadi karena penyeimbangan harian, untuk informasi lebih lanjut silahkan lihat prospeknya. Dalam dunia ideal, jika Anda memegangnya cukup lama, sebuah keuntungan yang dihasilkan oleh pembusukan waktu di masa depan dan penyisihan ulangan akan terjamin, namun dalam jangka pendek, Anda harus melewati beberapa penarikan yang cukup berat. Tengok saja kembali pada musim panas 2011. Saya telah disayangkan (atau bodoh) cukup untuk menahan posisi VXX sesaat sebelum VIX naik. Saya hampir meniup akun saya saat itu: 80 penarikan hanya dalam beberapa hari menghasilkan ancaman margin call oleh broker saya. Panggilan margin berarti menguangkan kerugian. Ini bukan situasi Id yang ingin masuk lagi. Saya tahu tidak mudah untuk selalu bersikap dingin setiap saat, namun mengalami tekanan dan tekanan situasi adalah sesuatu yang berbeda. Untungnya saya tahu bagaimana VXX cenderung berperilaku, jadi saya tidak panik, tapi beralih ke XIV untuk menghindari margin call. Ceritanya berakhir dengan baik, 8 bulan kemudian portofolio saya kembali kuat dan saya telah belajar pelajaran yang sangat berharga. Untuk memulai dengan kata peringatan di sini: jangan memperdagangkan volatilitas kecuali Anda tahu persis berapa banyak risiko yang Anda hadapi. Karena itu, mari kita lihat strategi yang meminimalkan beberapa risikonya dengan mengkonsletkan VXX hanya bila sudah sesuai. Tesis strategi: Pengalaman VXX paling menyeret saat kurva futures berada dalam contango curam. Kurva futures didekati oleh hubungan VIX-VXV. Kami akan VXX pendek saat VXV memiliki premium yang luar biasa tinggi di atas VIX. Pertama, mari kita lihat hubungan VIX-VXV: Bagan di atas menunjukkan data VIX-VXV sejak Januari 2010. Data poin dari tahun lalu ditampilkan dalam warna merah. Saya telah memilih untuk menggunakan kecocokan kuadrat antara keduanya, mendekati VXV f (VIX). F (VIX) diplot sebagai garis biru. Nilai di atas garis mewakili situasi saat futures berada di bawah normal contango. Sekarang saya mendefinisikan indikator delta, yang merupakan penyimpangan dari kecocokan: delta VXV-f (VIX). Sekarang mari kita lihat harga VXX beserta delta: Atas: harga VXX pada skala log. Bawah: delta Tanda hijau menunjukkan delta gt 0. penanda merah deltalt0. Jelas bahwa area hijau sesuai dengan hasil negatif di VXX. Mari kita simulasikan strategi dengan asumsi-asumsi ini: VXX pendek saat delta gt 0 Modal konstan (bertaruh pada setiap hari adalah 100) Tidak ada selip atau biaya transaksi Strategi ini dibandingkan dengan yang diperdagangkan setiap hari, namun tidak memperhitungkan delta . Garis hijau mewakili strategi singkat VXX kami, garis biru adalah saluran yang bodoh. Sharpe dari 1.9 untuk strategi akhir hari yang sederhana tidak buruk sama sekali menurut pendapat saya. Tapi yang lebih penting lagi adalah bahwa penarikan usus besar sebagian besar dihindari dengan memperhatikan kurva futures ke depan. Membangun strategi ini selangkah demi selangkah akan dibahas pada saat mengikuti kursus Trading With Python. Harga aset atau ETF tentu saja merupakan indikator terbaik yang ada, namun sayangnya hanya ada begitu banyak informasi yang terkandung di dalamnya. Beberapa orang tampaknya berpikir bahwa semakin banyak indikator (rsi, macd, moving average crossover dll). Semakin baik, tapi jika semuanya didasarkan pada seri harga dasar yang sama, semuanya mengandung subset dari informasi terbatas yang sama yang terdapat dalam harga. Kami membutuhkan lebih banyak informasi tambahan untuk mengetahui harga yang terkandung dalam perkiraan waktu mengenai apa yang akan terjadi dalam waktu dekat. Contoh bagus untuk menggabungkan semua jenis info ke analisis cerdas dapat ditemukan di The Short Side of Long blog. Memproduksi analisis semacam ini memerlukan sejumlah besar pekerjaan, yang saya tidak punya waktu karena saya hanya melakukan perdagangan paruh waktu. Jadi saya membangun dasbor pasar saya sendiri yang secara otomatis mengumpulkan informasi untuk saya dan menyajikannya dalam bentuk yang mudah dicerna. Dalam posting ini saya akan menunjukkan bagaimana membangun sebuah indikator berdasarkan data volume pendek. Pos ini akan menggambarkan proses pengumpulan dan pengolahan data. Langkah 1: Temukan sumber data. Pertukaran BATS menyediakan data volume harian secara gratis di situs mereka. Langkah 2: Dapatkan data secara manual amp inspect Data volume pendek dari pertukaran BATS terdapat dalam file teks yang di zip. Setiap hari memiliki file zip sendiri. Setelah mendownload dan membuka ritsleting file txt, inilah yang ada di dalamnya (beberapa baris pertama): Secara total sebuah file berisi sekitar 6000 simbol. Data ini perlu beberapa pekerjaan sebelum bisa disajikan dengan cara yang berarti. Langkah 3: Mendapatkan data secara otomatis Yang saya inginkan sebenarnya bukan hanya data untuk satu hari, namun rasio volume pendek terhadap volume total selama beberapa tahun terakhir, dan saya benar-benar tidak ingin mendownload 500 file zip dan menyalinnya di Unggul secara manual Untungnya, otomatisasi penuh hanya beberapa baris kode: Pertama, kita perlu membuat url dari file yang akan diunduh secara dinamis: Sekarang kita bisa mendownload beberapa file sekaligus: Langkah 4. Parse download files Kita bisa menggunakan zip dan panda. Perpustakaan untuk mengurai satu file: Ini mengembalikan rasio Volume Volume Volume Pendek untuk semua simbol dalam file zip: Langkah 5: Buatlah bagan: Sekarang satu-satunya yang tertinggal adalah mengurai semua file yang diunduh dan menggabungkannya ke satu tabel dan plot Hasilnya: Pada gambar di atas saya telah merencanakan rasio volume pendek rata-rata selama dua tahun terakhir. Saya juga bisa menggunakan subset simbol jika saya ingin melihat sektor atau saham tertentu. Gambaran cepat pada data memberi kesan bahwa rasio volume pendek yang tinggi biasanya sesuai dengan pantulan pasar dan rasio rendah tampaknya merupakan titik masuk yang baik untuk posisi yang panjang. Mulai dari sini, rasio volume pendek ini bisa dijadikan dasar pengembangan strategi. Trading Dengan Python course Jika Anda seorang trader atau investor dan ingin memperoleh seperangkat keterampilan trading kuantitatif Anda bisa mempertimbangkan untuk mengambil Trading With Python couse. Kursus online akan memberi Anda alat dan praktik terbaik untuk riset perdagangan kuantitatif, termasuk fungsi dan skrip yang ditulis oleh pedagang kuantitatif ahli. Anda akan belajar bagaimana mendapatkan dan memproses sejumlah besar data, desain dan strategi backtest dan menganalisis kinerja perdagangan. Ini akan membantu Anda membuat keputusan yang penting bagi keberhasilan para pedagang. Klik di sini untuk melanjutkan ke situs kursus Trading With Python Nama saya Jev Kuznetsov, pada siang hari saya adalah seorang peneliti di sebuah perusahaan yang terlibat dalam bisnis percetakan. Sisa waktu saya seorang pedagang. Saya belajar fisika terapan dengan spesialisasi dalam pengenalan pola dan kecerdasan buatan. Pekerjaan sehari-hari saya melibatkan sesuatu dari prototip algoritma cepat di Matlab dan bahasa lainnya untuk pengembangan perangkat keras. Sejak 2009 saya telah menggunakan keahlian teknis saya di pasar keuangan. Sebelum sampai pada kesimpulan bahwa Python adalah alat terbaik yang tersedia, saya bekerja secara ekstensif di Matlab, yang dibahas di blog saya yang lain. Mengumpulkan Crossover Rata-rata Bergerak dengan Python dengan panda. Pada artikel sebelumnya tentang Penelitian Backtesting Environments Dengan Python Dengan Panda kita Menciptakan lingkungan backtesting berdasarkan penelitian berorientasi obyek dan mengujinya dengan strategi peramalan acak. Pada artikel ini kami akan menggunakan mesin yang kami perkenalkan untuk melakukan penelitian mengenai strategi aktual, yaitu Moving Average Crossover on AAPL. Strategi Crossover Average Crossover 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 di sini adalah long-only. Dua filter rata-rata bergerak sederhana yang terpisah dibuat, dengan berbagai periode waktu tunggu, dari rangkaian waktu tertentu. Sinyal untuk membeli aset terjadi ketika moving average moving average yang lebih pendek melebihi rata-rata moving average lookback yang lama. Jika rata-rata yang lebih lama kemudian melebihi rata-rata yang lebih pendek, aset tersebut dijual kembali. Strategi ini berjalan dengan baik saat deret waktu memasuki periode tren kuat dan perlahan membalikkan tren. Untuk contoh ini, saya telah memilih Apple, Inc. (AAPL) sebagai rangkaian waktu, dengan tampilan singkat 100 hari dan tampilan balik 400 hari yang panjang. Ini adalah contoh yang disediakan oleh zipline algorithmic trading library. Jadi jika kita ingin menerapkan backtester kita sendiri, kita perlu memastikan bahwa itu sesuai dengan hasil zipline, sebagai sarana dasar validasi. Implementasi Pastikan mengikuti tutorial sebelumnya disini. Yang menjelaskan bagaimana hirarki objek awal untuk backtester dibangun, jika kode di bawah ini tidak akan berhasil. Untuk implementasi khusus ini saya telah menggunakan library berikut: Implementasi macross.py membutuhkan backtest.py 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 menghasilkan sinyal saat rata-rata bergerak AAPL saling silang. Objek membutuhkan shortwindow dan longwindow untuk beroperasi. Nilai telah ditetapkan ke default masing-masing 100 hari dan 400 hari, yang merupakan parameter yang sama yang digunakan pada contoh utama zipline. Rata-rata bergerak dibuat dengan menggunakan fungsi rollingmanan pandas pada harga tutup bar tutup dari 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 daripada rata-rata bergerak yang panjang, atau 0,0 sebaliknya. Dari posisi inilah pesanan bisa dihasilkan untuk mewakili sinyal trading. MarketOnClosePortfolio adalah subkelas dari Portofolio. Yang ditemukan di backtest.py. Hal ini hampir sama dengan implementasi yang dijelaskan di tutorial sebelumnya, dengan pengecualian bahwa perdagangan sekarang dilakukan secara Close-to-Close, bukan Open-to-Open. Untuk rincian tentang bagaimana objek Portofolio didefinisikan, lihat tutorial sebelumnya. Ive meninggalkan kode untuk kelengkapan dan untuk menjaga agar tutorial ini mandiri: Setelah kelas MovingAverageCrossStrategy dan MarketOnClosePortfolio telah ditetapkan, fungsi utama akan dipanggil untuk mengikat semua fungsi bersama-sama. Selain itu kinerja strategi akan diperiksa melalui sebidang kurva ekuitas. Objek pandas DataReader mendownload harga OHLCV dari saham AAPL untuk periode 1 Januari 1990 sampai 1 Januari 2002, dimana sinyal DataFrame dibuat untuk menghasilkan sinyal lama. Selanjutnya portofolio dihasilkan dengan basis modal awal 100.000 USD dan imbal hasil dihitung pada kurva ekuitas. Langkah terakhir adalah menggunakan matplotlib untuk merencanakan plot dua gambar dari harga AAPL, yang dilapisi dengan rata-rata bergerak dan sinyal buysell, serta kurva ekuitas dengan sinyal buysell yang sama. Kode pemodelan diambil (dan dimodifikasi) dari contoh penerapan zipline. Output grafis dari kode tersebut adalah sebagai berikut. Saya menggunakan perintah paste IPython untuk memasukkan ini langsung ke konsol IPython saat berada di Ubuntu, sehingga output grafis tetap terlihat. The upticks merah muda mewakili pembelian saham, sedangkan downticks hitam mewakili menjual kembali: Seperti dapat dilihat strategi kehilangan uang selama periode, dengan lima perdagangan round-trip. Hal ini tidak mengherankan mengingat perilaku AAPL selama periode tersebut, yang pada tren sedikit menurun, diikuti oleh kenaikan yang signifikan yang dimulai pada tahun 1998. Periode lookback dari sinyal rata-rata bergerak agak besar dan ini berdampak pada keuntungan perdagangan akhir , Yang sebaliknya mungkin telah membuat strategi menguntungkan. Pada artikel selanjutnya kita akan menciptakan cara yang lebih canggih untuk menganalisis kinerja, serta menggambarkan bagaimana mengoptimalkan periode lookback dari sinyal rata-rata bergerak individual. Mulai dengan Trading Kuantitatif
Kapan-apakah-options-trading-close
Optimal-trading-strategies-pdf