مائنڈین نے بہت پہلے تیسرے فریق کے ڈیٹا اکٹھا کرنے کے لئے ایک جے ایس ورژن لکھا تھا ، میں نے اس کی طرح ایک پائیتھون ورژن لکھا تھا ، جو اپنے پیکجوں کو کلاؤڈ سرور پر ڈاؤن لوڈ کرنے کے لئے استعمال کیا جاسکتا ہے ، تاکہ تحقیق کے لئے بھی استعمال کیا جاسکے۔ اپ ڈیٹ 12.01 اور میسج انٹرفیس میں تبدیلیاں ہیں 60 منٹ اور حلقے کے بارے میں مزید معلومات ، اصل ورژن میں 1440 کا انتخاب کریں 60 منٹ کی لائن حاصل کریں گے ، یہاں درست کریں
#coding: utf-8 import urllib2 as url import json import time def hxRecords(instrument,timeFrame=1,size=1,includeLastBar=True,to_df=True): ##从和讯获取期货实时数据 pInst=instrument.lower() if pInst[-4]!='1': pInst=pInst[:-3]+'1'+pInst[-3:] xchg=None for i in instList: if pInst[:-4] in i['inst']: xchg=i['xchg'] if xchg is None: print ("获取K线时发生错误: 找不到合约") return None tfs=[1,5,15,30,60,'D','W'] tf=None for i in range(len(tfs)): if timeFrame==tfs[i]: tf=i if tf is None: print("获取K线时发生错误: K线周期不正确") return None now=time.localtime() timestr=str(now.tm_year+1)+str(12)+str(31)+'000000' resp='http://webftcn.hermes.hexun.com/shf/kline?code=' + xchg + pInst + '&start=' + timestr + '&number=-' + str(size) + '&type=' + str(tf) try: resp=url.urlopen(resp) resp=resp.read()[1:-2] resp=json.loads(resp)['Data'] except: print '获取K线时发生错误: 不完整的JSON数据' return None re=[] pw=float(resp[4]) for i in resp[0]: res=dict(Time=time.mktime(time.strptime(str(i[0]),'%Y%m%d%H%M%S'))*1000,Open=i[2]/pw,High=i[4]/pw ,Low=i[5]/pw,Close=i[3]/pw,Volume=i[6]) re.append(res) if to_df: re=pd.DataFrame(re) col=[] for i in re.columns: if i is 'Time': i='Date' col.append(i.lower()) re.columns=col re['date']=re['date'].map(ts_dt64) return re instList = [{ "xchg": "SHFE", "inst": ["fu", "ru", "wr"] }, { "xchg": "SHFE2", "inst": ["ag", "au"] }, { "xchg": "SHFE3", "inst": ["al", "bu", "cu", "hc", "ni", "pb", "rb", "sn", "zn"] }, { "xchg": "CZCE", "inst": ["cf", "fg", "lr", "ma", "oi", "pm", "ri", "rm", "rs", "sf", "sm", "sr", "ta", "wh", "zc"] }, { "xchg": "DCE", "inst": ["a", "b", "bb", "c", "cs", "fb", "i", "j", "jd", "jm", "l", "m", "p", "pp", "v", "y"] }] def main(): Log(exchange.GetAccount())
صفریہ بہت مفید ہے ، اور اس کے باوجود ، یہ اعداد و شمار زیادہ مستند ہیں ، اوپن سورس کی حمایت کرتے ہیں!!!