Advertisement
Guest User

Untitled

a guest
May 25th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. from WindPy import w
  2. w.start()
  3. from datetime import datetime
  4. dt=datetime.now()
  5.  
  6. #连接WIND数据库 execute内要用三个引号
  7. import pymysql #python2要使用其他接口
  8. conn = pymysql.connect(host='localhost',user='root',password='1235', db='wind',charset="utf8")
  9. cursor = conn.cursor()
  10. cursor.execute("""
  11. CREATE TABLE stockprice
  12. (secid VARCHAR(20) NOT NULL,
  13. tradedate VARCHAR(50),
  14. openprice VARCHAR(50),
  15. highprice VARCHAR(50),
  16. lowprice VARCHAR(50),
  17. closeprice VARCHAR(50),
  18. volume VARCHAR(50),
  19. amt VARCHAR(50)
  20. );
  21. """)
  22. sql = "INSERT INTO stockprice VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"#格式一定要全设置为string 否则会报错
  23.  
  24. # 通过wset来取数据集数据
  25.  
  26. print('\n\n'+'-----通过wset来取数据集数据,获取全部A股代码列表-----'+'\n')
  27. a=w.wset("sectorconstituent","date=2017-05-25;sectorid=0305030100000000")#a.Data[1]是所有A股代码
  28. print(a)
  29.  
  30. for j in range(0,len(a.Data[1])):#j为所有A股数量
  31. # 通过wsd来提取时间序列数据,比如取开高低收成交量,成交额数据
  32. ipo=w.wss(str(a.Data[1][j]),'ipo_date')
  33. print(ipo)
  34. ohlc=w.wsd(str(a.Data[1][j]), "open,high,low,close,volume,amt",ipo.Data[0][0],dt,"PriceAdj=F" ,"Fill=Previous")
  35. print(ohlc)
  36. if ohlc.ErrorCode!=0:
  37. continue
  38.  
  39. for i in range(0,len(ohlc.Data[0])):#i为个股的日期长短
  40. sqllist=[]
  41. sqltuple=()
  42. sqllist.append(str(a.Data[1][j]))
  43. if len(ohlc.Times)>1:
  44. sqllist.append(ohlc.Times[i].strftime('%Y%m%d'))#添加时间
  45. for k in range(0, len(ohlc.Fields)):#k为提取个股的Ohlc等指标的数量
  46. sqllist.append(ohlc.Data[k][i])#提取k个数据的i时间长度的数据
  47.  
  48. sqltuple=tuple(sqllist)
  49. print('成功取得并添加%d的数据' %(j))
  50. cursor.execute(sql,sqltuple)
  51. conn.commit()
  52. conn.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement