pietrod21

exchanges

Mar 6th, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.12 KB | None | 0 0
  1. import time
  2. import datetime
  3. import threading
  4.  
  5. def importa(url):
  6.     import urllib.request
  7.     prices=urllib.request.urlopen(urllib.request.Request(url)).read()
  8.     data=eval(prices)
  9.     return data
  10.  
  11. def stampa(exchange_name,datatype,dati):
  12.     fill=open('dati/'+exchange_name+'_'+datatype+'.dat','a')
  13.     print(datetime.datetime.utcnow().strftime("%Y""-""%m""-""%d""-""%H""-""%M""-""%S"),int(time.time()/60),dati, file=fill)
  14.     fill.close()
  15.    
  16. def stats(exchange_name,price,exchange):
  17.     ask=0
  18.     bid=0
  19.     print("stats",exchange[1][0][1])
  20.     pressione=[]
  21.     bids=[]
  22.     asks=[]
  23.     pressione_stampa=''
  24.     dati_stampa=''
  25.     for x in range(101):
  26.         pressione+=[[]]
  27.         bids+=[[]]
  28.         asks+=[[]]
  29.     for r in range(5,101,5):
  30.         for x in range(len(exchange[0][0])):
  31.             if float(exchange[0][0][x])>price*(1-r/100):
  32.                 bid+=float(exchange[0][0][x])*float(exchange[0][1][x])
  33.         for x in range(len(exchange[1][0])):
  34.             if float(exchange[1][0][x])<price*(1+r/100):
  35.                 ask+=float(exchange[1][0][x])*float(exchange[1][1][x])
  36.         pressione[r]="%.2f"%(bid/ask)
  37.         bids[r]="%.2f"%bid
  38.         asks[r]="%.2f"%ask
  39.         print(exchange_name,r,pressione[r],bids[r],asks[r])#########################
  40.         pressione_stampa+=str(pressione[r])+' '
  41.         dati_stampa+=str(bids[r])+' '+str(asks[r])+' '
  42.         bid=ask=0
  43.     pressione_name="pressione"
  44.     dati_name="dati"
  45.     pressione_stampa+=str("%.2f"%price)
  46.     dati_stampa+=str("%.2f"%price)
  47.     stampa(exchange_name,pressione_name,pressione_stampa) #c'รจ un modo per non passare l'egormento del nome? tipo eval(str(exchange)+'_dati1'
  48.     stampa(exchange_name,dati_name,dati_stampa)
  49.  
  50.  
  51. ##CONVERT FORMATS IN THE SAME STRUCTURE AND IMPORT DATA!!
  52. ##data format: exchange=[bids[[prices],[amounts]],asks[[prices],[amounts]]]
  53. #prices=[21,51,54] and amount=[41,651,45,654]
  54. #example: exchange[bids=1][price=0][x]
  55. #====bitstamp===================
  56. ##import data
  57. stamp=importa('https://www.bitstamp.net/api/order_book/')
  58. stamp_price=float(importa('https://www.bitstamp.net/api/ticker/')["last"])
  59. #convert formats
  60. bitstamp=[ [[],[]] , [[],[]] ]
  61. for x in range(len(stamp["bids"])):
  62.     bitstamp[0][0]+=[float(stamp["bids"][x][0])]
  63.     bitstamp[0][1]+=[float(stamp["bids"][x][1])]
  64. for x in range(len(stamp["asks"])):
  65.     bitstamp[1][0]+=[float(stamp["asks"][x][0])]
  66.     bitstamp[1][1]+=[float(stamp["asks"][x][1])]
  67. #====mtgox======================
  68. ##import data
  69. gox=importa('http://data.mtgox.com/api/1/BTCUSD/depth/full')
  70. gox_price=float(importa('http://data.mtgox.com/api/1/BTCUSD/ticker_fast')["return"]["last_local"]["value"])
  71. #convert formats
  72. mtgox=[ [[],[]] , [[],[]] ]
  73. for x in range(len(gox["return"]["bids"])):
  74.     mtgox[0][0]+=[gox["return"]["bids"][x]["price"]]
  75.     mtgox[0][1]+=[gox["return"]["bids"][x]["amount"]]  
  76. for x in range(len(gox["return"]["asks"])):
  77.     mtgox[1][0]+=[gox["return"]["asks"][x]["price"]]
  78.     mtgox[1][1]+=[gox["return"]["asks"][x]["amount"]]
  79. bitstamp_name="bitstamp"
  80. mtgox_name="mtgox"
  81. stats(bitstamp_name,stamp_price,bitstamp)
  82. stats(mtgox_name,gox_price,mtgox)
Advertisement
Add Comment
Please, Sign In to add comment