


Memvisualisasikan Aliran Pilihan dengan Python: Panduan Langkah demi Langkah
Dalam dunia kewangan yang sentiasa berkembang, visualisasi data boleh menawarkan cerapan yang belum pernah berlaku sebelum ini tentang arah aliran pasaran. Dalam artikel ini, kami akan meneroka cara memanfaatkan Python untuk tugas analisis kewangan tertentu: menggambarkan aliran pilihan untuk saham tertentu menggunakan data sejarah daripada Yahoo Finance. Kami akan menggunakan coretan kod yang mengambil data pilihan, memprosesnya dan menjana plot taburan untuk menggambarkan aliran pilihan panggilan dan letak. Mari selami butirannya.
Bermula
Matlamat kami adalah untuk menganalisis data pilihan untuk saham tertentu dan menggambarkannya dalam plot berselerak. Untuk contoh ini, kami akan menggunakan penanda saham LLY (Eli Lilly and Company). Coretan kod mencapai perkara berikut:
- Mengambil data pilihan terkini untuk stok yang ditentukan.
- Menapis dan membersihkan data.
- Mencipta plot berselerak untuk mewakili pilihan panggilan dan letak dari semasa ke semasa.
Pecahan Langkah demi Langkah
1. Mengimport Perpustakaan
Pertama, kita perlu mengimport perpustakaan yang diperlukan:
import yfinance as yf import os from datetime import datetime, timedelta import matplotlib.pyplot as plt import pandas as pd
- yfinance digunakan untuk mengambil data stok sejarah.
- os mengendalikan operasi direktori dan fail.
- datetime dan timedelta adalah untuk menguruskan tarikh.
- matplotlib.pyplot adalah untuk mencipta visualisasi.
- panda adalah untuk manipulasi dan analisis data.
2. Menyediakan Direktori dan Fail
Kami menyediakan direktori output dan fail di mana kami akan menyimpan data kami:
output_directory = 'output' os.makedirs(output_directory, exist_ok=True) output_file = os.path.join(output_directory, 'output.data')
Di sini, kami memastikan direktori output wujud dan menentukan laluan untuk fail data.
3. Mengambil dan Memproses Data Pilihan
Untuk mendapatkan data pilihan bagi penanda LLY, kami menggunakan yfinance:
ticker = 'LLY' days = 21 populate_data = 'Y' # Set 'N' to use existing file, 'Y' to create new file
Jika populate_data ditetapkan kepada 'Y', kod tersebut mengambil data pilihan baharu. Jika 'N', ia akan menggunakan fail data sedia ada.
Begini cara pengambilan dan pemprosesan data dilakukan:
if populate_data == 'Y': stock = yf.Ticker(ticker) options_dates = stock.options today = datetime.now() fourteen_days_later = today + timedelta(days) with open(output_file, 'w') as file: for date in options_dates: date_dt = datetime.strptime(date, '%Y-%m-%d') if today <= date_dt <= fourteen_days_later: calls = stock.option_chain(date).calls puts = stock.option_chain(date).puts for _, row in calls.iterrows(): if not filter_volume(row['volume']): file.write(f"Call,{date},{row['strike']},{row['volume']}\n") for _, row in puts.iterrows(): if not filter_volume(row['volume']): file.write(f"Put,{date},{row['strike']},{row['volume']}\n") print(f"Data has been written to {output_file}")
Kod ini mengambil data pilihan panggilan dan letak, menapis baris dengan data volum yang tidak diingini dan menulisnya pada fail.
4. Membersih dan Menyediakan Data untuk Visualisasi
Seterusnya, kami membaca data dan membersihkannya:
data = pd.read_csv(output_file, names=['Type', 'Last_Trade_Date', 'Strike', 'Volume']) data.dropna(inplace=True) data['Last_Trade_Date'] = pd.to_datetime(data['Last_Trade_Date']) data = data[data['Volume'].notna()]
Kami memastikan set data kami bebas daripada nilai NaN dan Last_Trade_Date berada dalam format tarikh masa yang betul.
5. Mencipta Plot Scatter
Kami bersedia untuk mencipta plot taburan kami:
extra_days_before = 5 extra_days_after = 5 min_date = data['Last_Trade_Date'].min() - timedelta(days=extra_days_before) max_date = data['Last_Trade_Date'].max() + timedelta(days=extra_days_after) plt.figure(figsize=(12, 8)) calls_data = data[data['Type'] == 'Call'] plt.scatter(calls_data['Last_Trade_Date'], calls_data['Strike'], s=calls_data['Volume'], c='green', alpha=0.6, label='Call') puts_data = data[data['Type'] == 'Put'] plt.scatter(puts_data['Last_Trade_Date'], puts_data['Strike'], s=puts_data['Volume'], c='red', alpha=0.6, label='Put') plt.xlabel('\nLast Trade Date') plt.ylabel('Strike Price\n') plt.title(f'Options Flow for {ticker} ({days} days)\n', fontsize=16) plt.xticks(rotation=45, ha='right') plt.gca().xaxis.set_major_formatter(plt.matplotlib.dates.DateFormatter('%Y-%m-%d')) plt.xlim(min_date, max_date) plt.subplots_adjust(bottom=0.2) plt.grid(True) plt.text(0.5, 0.5, f'{ticker}', color='gray', fontsize=80, alpha=0.5, ha='center', va='center', rotation=15, transform=plt.gca().transAxes) plt.text(0.95, 0.95, 'medium.com/@dmitry.romanoff', color='gray', fontsize=20, alpha=0.5, ha='right', va='top', transform=plt.gca().transAxes) plt.text(0.05, 0.05, 'medium.com/@dmitry.romanoff', color='gray', fontsize=20, alpha=0.5, ha='left', va='bottom', transform=plt.gca().transAxes) plot_file = os.path.join(output_directory, 'options_scatter_plot.png') plt.savefig(plot_file) print(f"Scatter plot has been saved to {plot_file}")
Segmen ini mencipta plot berselerak pilihan panggilan dan letak, dengan harga mogok pada paksi-y dan tarikh dagangan pada paksi-x. Saiz mata mewakili jumlah dagangan, dengan panggilan hijau menunjukkan dan meletakkan tanda merah. Kami juga menambah tera air untuk tujuan penjenamaan dan menyimpan plot pada fail.
Kesimpulan
Membayangkan data pilihan membantu pedagang dan penganalisis memahami sentimen pasaran dan aktiviti perdagangan. Panduan ini menunjukkan cara untuk mengambil, memproses dan memvisualisasikan data pilihan menggunakan Python. Dengan mengikuti langkah ini, anda boleh menyesuaikan kod ini untuk mana-mana saham dan menganalisis aliran pilihannya, memberikan cerapan berharga tentang arah aliran pasaran.
Jangan ragu untuk mengubah suai kod untuk memenuhi keperluan khusus anda dan terokai cara yang berbeza untuk menggambarkan data kewangan.
Atas ialah kandungan terperinci Memvisualisasikan Aliran Pilihan dengan Python: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kunci untuk menangani pengesahan API adalah untuk memahami dan menggunakan kaedah pengesahan dengan betul. 1. Apikey adalah kaedah pengesahan yang paling mudah, biasanya diletakkan dalam tajuk permintaan atau parameter URL; 2. BasicAuth menggunakan nama pengguna dan kata laluan untuk penghantaran pengekodan Base64, yang sesuai untuk sistem dalaman; 3. OAuth2 perlu mendapatkan token terlebih dahulu melalui client_id dan client_secret, dan kemudian bawa bearertoken dalam header permintaan; 4. Untuk menangani tamat tempoh token, kelas pengurusan token boleh dikemas dan secara automatik menyegarkan token; Singkatnya, memilih kaedah yang sesuai mengikut dokumen dan menyimpan maklumat utama adalah kunci.

Di Python, kaedah melintasi tupel dengan gelung termasuk secara langsung melelehkan unsur -unsur, mendapatkan indeks dan elemen pada masa yang sama, dan memproses tuple bersarang. 1. Gunakan gelung untuk terus mengakses setiap elemen dalam urutan tanpa menguruskan indeks; 2. Gunakan penghitungan () untuk mendapatkan indeks dan nilai pada masa yang sama. Indeks lalai adalah 0, dan parameter permulaan juga boleh ditentukan; 3. Di samping itu, tuple tidak berubah dan kandungan tidak dapat diubah suai dalam gelung. Nilai yang tidak diingini boleh diabaikan oleh \ _. Adalah disyorkan untuk memeriksa sama ada tuple kosong sebelum melintasi untuk mengelakkan kesilapan.

Bagaimana cara mengendalikan fail JSON yang besar di Python? 1. Gunakan Perpustakaan IJSON untuk mengalir dan mengelakkan limpahan memori melalui parsing item demi item; 2. Jika dalam format Jsonlines, anda boleh membacanya dengan garis dan memprosesnya dengan json.loads (); 3. Atau memecah fail besar ke dalam kepingan kecil dan kemudian memprosesnya secara berasingan. Kaedah ini dengan berkesan menyelesaikan masalah batasan memori dan sesuai untuk senario yang berbeza.

Ya, apythonclasscanhavemulleConstructorsThoughalternetechniques.1.usedefaultargumentsIntheS

Di Python, menggunakan gelung untuk fungsi julat () adalah cara biasa untuk mengawal bilangan gelung. 1. Gunakan apabila anda mengetahui bilangan gelung atau perlu mengakses elemen dengan indeks; 2. Julat (berhenti) dari 0 hingga Stop-1, julat (mula, berhenti) dari awal hingga berhenti-1, julat (mula, berhenti) menambah saiz langkah; 3. Perhatikan bahawa julat tidak mengandungi nilai akhir, dan mengembalikan objek yang boleh diperolehi daripada senarai dalam Python 3; 4. Anda boleh menukar ke senarai melalui senarai (julat ()), dan gunakan saiz langkah negatif dalam urutan terbalik.

Untuk memulakan pembelajaran mesin kuantum (QML), alat pilihan adalah Python, dan perpustakaan seperti Pennylane, Qiskit, Tensorflowquantum atau Pytorchquantum perlu dipasang; Kemudian membiasakan diri dengan proses dengan menjalankan contoh, seperti menggunakan Pennylane untuk membina rangkaian saraf kuantum; kemudian melaksanakan model mengikut langkah -langkah penyediaan set data, pengekodan data, membina litar kuantum parametrik, latihan pengoptimuman klasik, dan lain -lain; Dalam pertempuran sebenar, anda harus mengelakkan mengejar model kompleks dari awal, memberi perhatian kepada batasan perkakasan, mengamalkan struktur model hibrid, dan terus merujuk kepada dokumen terkini dan dokumen rasmi untuk menindaklanjuti pembangunan.

Kunci untuk menggunakan Python untuk memanggil WebAPI untuk mendapatkan data adalah untuk menguasai proses asas dan alat umum. 1. Menggunakan permintaan untuk memulakan permintaan HTTP adalah cara yang paling langsung. Gunakan kaedah GET untuk mendapatkan respons dan gunakan JSON () untuk menghuraikan data; 2. Bagi API yang memerlukan pengesahan, anda boleh menambah token atau kunci melalui tajuk; 3. Anda perlu menyemak kod status tindak balas, disyorkan untuk menggunakan respons.raise_for_status () untuk mengendalikan pengecualian secara automatik; 4. Menghadapi antara muka paging, anda boleh meminta halaman yang berbeza pada gilirannya dan menambah kelewatan untuk mengelakkan batasan kekerapan; 5. Semasa memproses data JSON yang dikembalikan, anda perlu mengekstrak maklumat mengikut struktur, dan data kompleks dapat ditukar kepada data

Onelineifelse Python adalah pengendali ternary, yang ditulis sebagai XifconditionElsey, yang digunakan untuk memudahkan penghakiman bersyarat mudah. Ia boleh digunakan untuk tugasan berubah, seperti status = "dewasa" ifage> = 18else "kecil"; Ia juga boleh digunakan untuk terus mengembalikan hasil fungsi, seperti defget_status (umur): kembali "dewasa" ifage> = 18else "kecil"; Walaupun penggunaan bersarang disokong, seperti hasil = "a" i
