Mengambil data Intraday dari Google menggunakan Python

Beranda » Berita Terbaru » Mengambil data Intraday dari Google menggunakan Python
Semua kredit untuk RMIKE

Berikut adalah tutorial python menarik lainnya untuk mengambil data intraday menggunakan API Keuangan Google , simpan data dalam format csv dan juga plot data intraday sebagai format candlestick. Kami menggunakan pustaka plotly untuk memplot grafik candlestick dan pandas untuk mengelola data deret waktu. Untungnya, saya menemukan kode python yang menarik yang mengambil data intraday Google dan menyimpannya dalam format csv. Saya telah melakukan sedikit modifikasi pada kode (exchange ditambahkan ke Google API) sehingga seseorang dapat mengambil data untuk exchange apa pun.
Dalam contoh kami, kami mencoba mengambil data (Tanggal, Waktu, Simbol, Buka, Tinggi, Rendah, Tutup, data Volume) untuk RCOM (Reliance Communication) dan plot sebagai candlestick menggunakan library plotly. Unduh contoh file CSV RCOM diambil dari Google Finance
Contoh IPython Notebook menggunakan Plotly dan pandas untuk memplot Grafik Candlestick Intraday Interaktif menggunakan Google Finance API:


Dalam [1]:
mengimpor permintaan.paket.urllib3
permintaan.paket.urllib3.nonaktifkan_peringatan()

Dalam [2]:
mengimpor secara plotly
secara plotly.__Versi: kapan__
Keluar[2]:
'1.9.0'

Kode untuk Mengambil Data Google Intrday dan Menyimpan dalam Format CSV



Dalam [7]:

# Hak Cipta (c) 2011, Mark Chenoweth
# Hak cipta dilindungi undang-undang.
#
# Distribusi ulang dan penggunaan dalam bentuk sumber dan biner, dengan atau tanpa modifikasi, diizinkan 
# asalkan kondisi berikut terpenuhi:
#
# - Distribusi ulang kode sumber harus mempertahankan pemberitahuan hak cipta di atas, daftar ketentuan ini, dan penyangkalan berikut.
#
# - Distribusi ulang dalam bentuk biner harus mereproduksi pemberitahuan hak cipta di atas, daftar ketentuan ini dan yang berikut ini 
# penyangkalan dalam dokumentasi dan/atau materi lain yang disertakan dengan distribusi.
#
# PERANGKAT LUNAK INI DISEDIAKAN OLEH PEMEGANG HAK CIPTA DAN KONTRIBUTOR "SEBAGAIMANA ADANYA" DAN SEGALA JAMINAN TERSURAT ATAU TERSIRAT, 
# TERMASUK, NAMUN TIDAK TERBATAS PADA, JAMINAN TERSIRAT ATAS KEMAMPUAN UNTUK DIPERDAGANGKAN DAN KESESUAIAN UNTUK TUJUAN TERTENTU 
# DISANGKAL. PEMEGANG HAK CIPTA ATAU KONTRIBUTOR DALAM KEADAAN APAPUN TIDAK BERTANGGUNG JAWAB ATAS SEGALA KERUSAKAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS,
# KERUSAKAN YANG BERSIFAT TELADAN ATAU YANG DISEBABKAN OLEH (TERMASUK NAMUN TIDAK TERBATAS PADA, PENGADAAN BARANG ATAU JASA PENGGANTI; KERUGIAN 
JUMLAH PENGGUNAAN, DATA, ATAU KEUNTUNGAN; ATAU GANGGUAN BISNIS) BAGAIMANA PUN PENYEBABNYA DAN PADA TEORI TANGGUNG JAWAB APAPUN, BAIK DALAM KONTRAK, 
# TANGGUNG JAWAB HUKUM, ATAU TINDAKAN MELAWAN HUKUM (TERMASUK KELALAIAN ATAU LAINNYA) YANG TIMBUL DALAM CARA APAPUN DARI PENGGUNAAN PERANGKAT LUNAK INI, BAHKAN JIKA 
# DIBERITAHUKAN TENTANG KEMUNGKINAN TERJADINYA KERUSAKAN TERSEBUT.

mengimpor urllib,waktu,tanggal Waktu
mengimpor  panda as pd


kelas kutipan(obyek):
  
  TANGGAL_FMT = '%Y-%m-%d'
  WAKTU_FMT = '%H:%M:%S'
  
  def __init__(diri):
    diri.simbol = ''
    diri.tanggal,diri.waktu,diri.membuka_,diri.tinggi,diri.rendah,diri.menutup penjualan,diri.volume = ([] untuk _ in jarak(7))

  def menambahkan(diri,dt,membuka_,tinggi,rendah,menutup penjualan,volume):
    diri.tanggal.menambahkan(dt.tanggal())
    diri.waktu.menambahkan(dt.waktu())
    diri.membuka_.menambahkan(mengapung(membuka_))
    diri.tinggi.menambahkan(mengapung(tinggi))
    diri.rendah.menambahkan(mengapung(rendah))
    diri.menutup penjualan.menambahkan(mengapung(menutup penjualan))
    diri.volume.menambahkan(int(volume))
      
  def ke_csv(diri):
    kembali ''.ikut(["{0},{1},{2},{3:.2f},{4:.2f},{5:.2f},{6:.2f},{7}n".format(diri.simbol,
              diri.tanggal[bar].waktu luang('%Y-%m-%d'),diri.waktu[bar].waktu luang('%H:%M:%S'),
              diri.membuka_[bar],diri.tinggi[bar],diri.rendah[bar],diri.menutup penjualan[bar],diri.volume[bar]) 
              untuk bar in rentang x(len(diri.menutup penjualan))])
    
  def tulis_csv(diri,nama file):
    dengan Buka(nama file,'w') as f:
      f.menulis(diri.ke_csv())
        
  def baca_csv(diri,nama file):
    diri.simbol = ''
    diri.tanggal,diri.waktu,diri.membuka_,diri.tinggi,diri.rendah,diri.menutup penjualan,diri.volume = ([] untuk _ in jarak(7))
    untuk line in Buka(nama file,'R'):
      simbol,ds,ts,membuka_,tinggi,rendah,menutup penjualan,volume = line.strip ulang().membagi(',')
      diri.simbol = simbol
      dt = tanggal Waktu.tanggal Waktu.waktu strp(ds+''+ts,diri.TANGGAL_FMT+''+diri.WAKTU_FMT)
      diri.menambahkan(dt,membuka_,tinggi,rendah,menutup penjualan,volume)
    kembali Benar

  def __repr__(diri):
    kembali diri.ke_csv()

kelas Kutipan GoogleIntraday(kutipan):
  ''' Kutipan intraday dari Google. Tentukan interval detik dan jumlah hari '''
  def __init__(diri,simbol,interval_detik=300,jumlah_hari=5):
    super(Kutipan GoogleIntraday,diri).__init__()
    diri.simbol = simbol.atas()
    rangkaian_url = "http://www.google.com/finance/getprices?q={0}".format(diri.simbol)
    rangkaian_url += "&x=NSE&i={0}&p={1}d&f=d,o,h,l,c,v".format(interval_detik,jumlah_hari)
    csv = urllib.buka url(rangkaian_url).garis baca()
    untuk bar in rentang x(7,len(csv)):
      if csv[bar].menghitung(',')!=5: terus
      mengimbangi,menutup penjualan,tinggi,rendah,membuka_,volume = csv[bar].membagi(',')
      if mengimbangi[0]=='A':
        hari = mengapung(mengimbangi[1:])
        mengimbangi = 0
      lain:
        mengimbangi = mengapung(mengimbangi)
      membuka_,tinggi,rendah,menutup penjualan = [mengapung(x) untuk x in [membuka_,tinggi,rendah,menutup penjualan]]
      dt = tanggal Waktu.tanggal Waktu.daristempelwaktu(hari+(interval_detik*mengimbangi))
      diri.menambahkan(dt,membuka_,tinggi,rendah,menutup penjualan,volume)
   
   
if __nama__ == '__utama__':
  q = Kutipan GoogleIntraday('RKOM',300,30)
  #print q # cetak itu
  q.tulis_csv('c://data//rcom.csv')  



Membaca file CSV dan Mengubahnya menjadi Dataframe

Dalam [4]:
penguraian tanggal = lambda x: pd.tanggal Waktu.waktu strp(x, '%Y-%m-%d %H:%M:%S')  
df = pd.baca_csv('c://data//rcom.csv',September=',',Header=None, tanggal_parse={'tanggal waktu': [1, 2Bahasa Indonesia: pengurai_tanggal=penguraian tanggal)
df.kolom = ['Tanggal dan waktu', 'Simbol','Membuka','Tinggi','Rendah','Menutup','Volume']
#df.indeks = df['Tanggal waktu']
#df.index.name = Tidak Ada
df.kepala(5)



Keluar[4]:

Datetime Символ Open High Rendah Penyelesaian Volume
0 2015-10-14 09:20:00 RCOM 77.80 78.50 77.60 78.40 552244
1 2015-10-14 09:25:00 RCOM 78.40 79.05 78.30 78.85 546950
2 2015-10-14 09:30:00 RCOM 78.75 78.85 78.25 78.25 223054
3 2015-10-14 09:35:00 RCOM 78.30 78.50 78.25 78.35 125523
4 2015-10-14 09:40:00 RCOM 78.40 78.65 78.35 78.55 105811



Plot data harian sebagai grafik menggunakan plotly

Dalam [5]:
dari tanggal Waktu mengimpor tanggal
mengimpor plotly.plotly as py
dari plotly.alat mengimpor GambarPabrik as FF
dari tanggal Waktu mengimpor tanggal Waktu

Dalam [9]:
ara = FF.buat_lilin(df.Open, df.High, df.Rendah, df.Penyelesaian, tanggal=df.indeks)
ara['tata letak'].memperbarui({
    'Judul': 'Grafik Intraday RCOM',
    'yaksis': {'Judul': 'Saham RCOM'}})
py.iplot(ara, nama file='keuangan/intraday-candlestick', mengesahkan=Salah)
Waktu pengundian untuk plot ini akan lambat untuk semua klien.

Keluar[9]:



Baca Selengkapnya

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *

Penyedia Baru
binola

Broker yang
Lebih dari 2 juta bisnis
Lihat 10 Pialang Teratas

permainan

Permainan online
Lebih dari 2 juta bisnis
Lihat 10 Game Online Gratis Teratas

Game baru
Kebohongan P

$59.99 Edisi standar
28% Hemat Diskon
Lihat 10 Game Penyedia Teratas

KEPOMPONG

$24.99 Edisi standar
28% Hemat Diskon
Lihat 10 Game Penyedia Teratas

Penawaran Baru
Komisi hingga $1850 untuk pengguna aktif program afiliasi Oleh Exness

Poin Teratas © Hak Cipta 2023 | Oleh Topoin.com Media LLC.
Topoin.info adalah situs review produk, bonus, penawaran, penyedia layanan bisnis dan perusahaan terbaik dan terpercaya sepanjang masa.

Temukan lebih banyak dari Poin Teratas

Berlangganan sekarang untuk terus membaca dan mendapatkan akses ke arsip lengkap.

lanjutkan membaca