财经

诺奖法学家:政党将“取缔”并长久打击比特币

9 3月 , 2019  

要做量化投资,数据是基础,正所谓“巧妇难为无米之炊”

一分钟吐槽:点一首《浮夸》送给吴忌寒和江卓尔,“你当自家是浮夸吧
夸张只因小编很怕~”

在免费数据方面,各大网站的金融板块其实已提供相应的api,如乐乎、雅虎、天涯论坛。。。能够由此urlopen相应格式的网址获取数据

1 澳大尼斯联邦(Commonwealth of Australia)中央银行正透过发行数字货币来达成遏制比特币等加密货币的指标

而TuShare便是那样二个免费、开源的python财政和经济数据接口包,已将各种数据整理为dataframe类型供大家选择。

亚洲中央银行(ECB:European Central
Bank)呼吁商银实行新消除方案以抑制比特币的连忙增加,他们正在研讨,恐怕即将发行日元数字货币ECB-Coin。发行ECB-Coin是澳洲中央银行“双重攻击”加密数字货币的一部分。很醒目,第贰重攻击正是在政策和法律上限制比特币;而随之而来的第3重攻击,便是要发行日元数字货币ECB-Coin,同时也说不定会让商银发行自身的虚拟货。

重点选用的函数:

趣评:前些天刚分析过,中华夏族民共和国或者发行主权数字货币来取代我们对待特币的须要,看来不止国内,澳国也在考虑既然比特币难以禁锢,干脆发行法定数字货币来替代。可是,笔者觉得最大的难题应有是禁止贸易方今主流的数字货币后,大家对法定数字货币是或不是买账?

1.实时市价获取

而终极难点是,大家毕竟是亟需数字货币,依旧去主旨化的数字货币?

tushare.get_today_all()

2 风暴公司生产“沙暴播控云”,出售价格4999元/台,对标迅雷玩客云

三遍性获得当前交易全部股票的盘子数据(要是是节日,即为上一交易日,结果显示速度取决于网速)

根据台风官网显示,台风公司即将公布一款叫做“台风播控云”(BFC)的成品,其官网介绍那款产品的表征为:智能硬件、矿机、区块链,价格为4999元,并称将要公布。业爱妻士估计,那是在迅雷公司成功运维玩客云之后,龙卷风公司生产的另一款看似于“玩客云”的产品。“玩客云”价格涨了几十倍,迅雷的股票价格也在四个月之内涨了4倍。龙卷风播控云官网地址bfc.baofeng.com
,近来早就有19322人预定。

2.历史数据获得

趣评:前有玩客云还在全力以赴撇清与ICO的涉及,后有台风播控云要趟一趟浑水,看来专注互联网下载的卖家要从头通过区块链技术来转型和谋求发展了。不知风暴是不是有迅雷那么幸运,通过一款产品就能让自己股票价格打鸡血一样飙升。

tushare.get_hist_data(code, start,
end,ktype,
retry_count,pause)

玩客云当初公布时价格399,尽管被黄牛炒到了几千块,但台风播控云4999的价钱或许会遮掩一部分想“玩着试试”的人。

参数表达:

3诺Bell军事学家:比特币侵扰了守旧的金融

  • code:股票代码,即陆位数字代码,大概指数代码(sh=上证指数
    sz=布拉迪斯拉发成指 hs300=沪深300指数 sz50=上证50 zxb=中型小型板
    cyb=创业板)
  • start:早先日期,格式YYYY-MM-DD
  • end:甘休日期,格式YYYY-MM-DD
  • ktype:数据类型,D=日k线 W=周 M=月
    5=肆秒钟 15=1四秒钟 30=三十几分钟 60=60分钟,暗中认可为D
  • retry_count:当网络尤其后重试次数,私下认可为3
  • pause:重试时刹车秒数,暗许为0

Noble奖得到者Joseph•斯Teague利茨(Joseph Stiglitz)和罗Bert•希勒(罗BertJ.
Shiller)声称政坛将最终“取缔”并短时间打击比特币。诺Bell奖得到者,首要管艺术学家以及银行家们担心比特币的破坏性和去宗旨化的构造会威吓到中行和天下法定货币种类的存在。

现实可参考官网http://tushare.org/index.html

趣评:对此先不谈比特币的市场股票总值中留存“巨大的泡泡”或人们非理性地投资,对当局来说比特币的去大旨化特质才是最大的恐吓,假使比特币的合法性被承认,很只怕政府要面临整个制度去主题化的立异,这将是不安的,所以该军事学家的预感不容否认。

而只要要拓展完备详细的回测,每一趟在线获取数据无疑作用偏低,因而还索要入库

只是指望全部国家政党在面对去主旨化数字这些硬汉挑衅时,能搞活最合理的答复。

上边是数据库设计某个

4 吴忌寒和江卓尔都疯了?

表1:stocks

吴忌寒怒怼中夏族民共和国囚系比特币

股票表,头名列股票代码,第②列为名称,如果get_today_all()中留存的股票stocks表中没有,则插入之。

接下来廖翔群内开捉弄

表2:hdata_date

接着,江卓尔怼网络好友

日线表,由于分钟线只好得到十13日内的数量,大家先对日线实行切磋。

下一场群内被开嘲笑

字段和get_hist_data再次来到值基本一致,多了stock_code列,并将record_date列本来是dataframe的index

趣评:江卓尔、吴忌寒、廖翔,四个娃他爹一台戏,贵圈真乱。不过也能够知晓,有名气的人不作也不出话题那便是快过气了,宁愿用力到浮夸,也无法因过气而失去影响力。

stock_code,record_date,  //主键
open,high,close,low,    //开盘,最高,收盘,最低
volume,          //成交量
price_change,p_change,  //价差,涨幅
ma5,ma10,ma20     //k日收盘均价
v_ma5,v_ma10,v_财经,ma20,  //(k日volume均值)
turnover        //换手率

5英帝国财政部陈设囚系比特币

 

据每一日电子通讯报电视发表称,United Kingdom财政部正在考虑相比较特币实行禁锢。他们操心加密货币被用来洗钱和骗税。

python工程近年来有三个文本,main.py(主程序),Stocks.py(“股票们”类)以及Hdata.py(历史数据类)

比特币的购买者能够匿名购买比特币。United Kingdom财政部愿意相比较特币进行幽禁,并驱使交易员揭发自个儿的地位,报告质疑的移位。那项规定将与反洗钱和反恐金融立法相平等。

main.py

预期是这几个规则将适用于整个欧洲缔盟,臆想将在当年岁暮或二〇一八年终身效。

 

趣评:关比特币交易的一大优势正是交易双方的匿名保密性,借使交易员必须精晓身份来说,比特币的交易量是或不是会大幅度压缩?那么比特币的价位是还是不是也会惨遭雪崩一般的影响?

import psycopg2 #使用的是PostgreSQL数据库
import tushare as ts
from Stocks import*
from HData import*
import  datetime

stocks=Stocks("postgres","123456")
hdata=HData("postgres","123456")

# stocks.db_stocks_create()#如果还没有表则需要创建
#print(stocks.db_stocks_update())#根据todayall的情况更新stocks表

#hdata.db_hdata_date_create()

nowdate=datetime.datetime.now().date()

codestock_local=stocks.get_codestock_local()

hdata.db_connect()#由于每次连接数据库都要耗时0.0几秒,故获取历史数据时统一连接
for i in range(0,len(codestock_local)):
    nowcode=codestock_local[i][0]

    #print(hdata.get_all_hdata_of_stock(nowcode))

    print(i,nowcode,codestock_local[i][1])

    maxdate=hdata.db_get_maxdate_of_stock(nowcode)
    print(maxdate, nowdate)
    if(maxdate):
        if(maxdate>=nowdate):#maxdate小的时候说明还有最新的数据没放进去
            continue
        hist_data=ts.get_hist_data(nowcode, str(maxdate+datetime.timedelta(1)),str(nowdate), 'D', 3, 0.001)
        hdata.insert_perstock_hdatadate(nowcode, hist_data)
    else:#说明从未获取过这只股票的历史数据
        hist_data = ts.get_hist_data(nowcode, None, str(nowdate), 'D', 3, 0.001)
        hdata.insert_perstock_hdatadate(nowcode, hist_data)

hdata.db_disconnect()

囚系安全与贸易保密性,仿佛鱼与熊掌,一直就不可能兼得。

 

正文由微信公众号“未来经济消息”原创,转发请保留出处

 

Stocks.py

import tushare as ts
import psycopg2
class Stocks(object):#这个类表示"股票们"的整体(不是单元)
    def get_today_all(self):
        self.todayall=ts.get_today_all()

    def get_codestock_local(self):#从本地获取所有股票代号和名称
        conn = psycopg2.connect(database="wzj_quant", user=self.user, password=self.password, host="127.0.0.1",
                                port="5432")
        cur = conn.cursor()
        # 创建stocks表
        cur.execute('''
                select * from stocks;
               ''')
        rows =cur.fetchall()
        conn.commit()
        conn.close()

        return rows
        pass
    def __init__(self,user,password):
        # self.aaa = aaa
        self.todayall=[]
        self.user=user
        self.password=password

    def db_perstock_insertsql(self,stock_code,cns_name):#返回的是插入语句
        sql_temp="insert into stocks values("
        sql_temp+="\'"+stock_code+"\'"+","+"\'"+cns_name+"\'"
        sql_temp +=");"
        return sql_temp
        pass

    def db_stocks_update(self):# 根据gettodayall的情况插入原表中没的。。gettodayall中有的源表没的保留不删除#返回新增行数
        ans=0
        conn = psycopg2.connect(database="wzj_quant", user=self.user, password=self.password, host="127.0.0.1", port="5432")
        cur = conn.cursor()
        self.get_today_all()

        for i in range(0,len(self.todayall)):
            sql_temp='''select * from stocks where stock_code='''
            sql_temp+="\'"+self.todayall["code"][i]+"\';"
            cur.execute(sql_temp)
            rows=cur.fetchall()
            if(len(rows)==0):
                #如果股票代码没找到就插
                ans+=1
                cur.execute(self.db_perstock_insertsql(self.todayall["code"][i],self.todayall["name"][i]))
                pass
        conn.commit()
        conn.close()
        print("db_stocks_update finish")
        return ans

    def db_stocks_create(self):
        conn = psycopg2.connect(database="wzj_quant", user=self.user, password=self.password, host="127.0.0.1", port="5432")
        cur = conn.cursor()
        # 创建stocks表
        cur.execute('''
            drop table if exists stocks;
            create table stocks(stock_code varchar primary key,cns_name varchar);
        ''')
        conn.commit()
        conn.close()
        print("db_stocks_create finish")
        pass

 

HData.py

import  psycopg2
import tushare as ts
import pandas as pd
from time import clock

class HData(object):
    def __init__(self,user,password):
        # self.aaa = aaa
        self.hdata_date=[]
        self.user=user
        self.password=password

        self.conn=None
        self.cur=None


    def db_connect(self):
        self.conn = psycopg2.connect(database="wzj_quant", user=self.user, password=self.password, host="127.0.0.1",
                                port="5432")
        self.cur = self.conn.cursor()

    def db_disconnect(self):

        self.conn.close()

    def db_hdata_date_create(self):
        conn = psycopg2.connect(database="wzj_quant", user=self.user, password=self.password, host="127.0.0.1",
                                port="5432")
        cur = conn.cursor()
        # 创建stocks表
        cur.execute('''
                drop table if exists hdata_date;
                create table hdata_date(stock_code varchar,record_date date,
                    open float,high float,close float,low float,
                    volume float,
                    price_change float,p_change float,
                    ma5 float,ma10 float,ma20 float,
                    v_ma5 float,v_ma10 float,v_ma20 float,
                    turnover float
                );
                alter table hdata_date add primary key(stock_code,record_date);
                ''')
        conn.commit()
        conn.close()
        print("db_hdata_date_create finish")
        pass

    def db_get_maxdate_of_stock(self,stock_code):#获取某支股票的最晚日期
        self.cur.execute("select max(record_date) from hdata_date where stock_code="+"\'"+stock_code+"\'"+";")
        ans=self.cur.fetchall()
        if(len(ans)==0):
            return None
        return ans[0][0]
        self.conn.commit()
        pass

    def insert_perstock_hdatadate(self,stock_code,data):#插入一支股票的所有历史数据到数据库#如果有code和index相同的不重复插入
        t1=clock()

        for i in range(0,len(data)):
            str_temp=""

            str_temp+="\'"+stock_code+"\'"+","
            str_temp+="\'"+data.index[i]+"\'"



            for j in range(0,data.shape[1]):
                str_temp+=","+"\'"+str(data.iloc[i,j])+"\'"
            sql_temp="values"+"("+str_temp+")"
            self.cur.execute("insert into hdata_date "+sql_temp+";")
        self.conn.commit()

        print(clock()-t1)

        print(stock_code+" insert_perstock_hdatadate finish")

    def get_all_hdata_of_stock(self,stock_code):#将数据库中的数据读取并转为dataframe格式返回
        conn = psycopg2.connect(database="wzj_quant", user=self.user, password=self.password, host="127.0.0.1",
                                port="5432")
        cur = conn.cursor()

        sql_temp="select * from hdata_date where stock_code="+"\'"+stock_code+"\';"
        cur.execute(sql_temp)
        rows = cur.fetchall()

        conn.commit()
        conn.close()

        dataframe_cols=[tuple[0] for tuple in cur.description]#列名和数据库列一致
        df = pd.DataFrame(rows, columns=dataframe_cols)
        return df
        pass

 

main.py的主宰台出口示例:

财经 1

 

HData中的函数get_all_hdata_of_stock结果示例:

 stock_code record_date   open   high  close    low     volume  \
0       603999  2015-12-10  14.07  14.07  14.07  14.07     337.00   
1       603999  2015-12-11  15.48  15.48  15.48  15.48     119.00   
2       603999  2015-12-14  17.03  17.03  17.03  17.03     267.00   
3       603999  2015-12-15  18.73  18.73  18.73  18.73     244.00   
..         ...         ...    ...    ...    ...    ...        ...   
397     603999  2017-08-01   9.62   9.97   9.79   9.61   36337.80   
398     603999  2017-08-02   9.80   9.85   9.61   9.59   32135.60   
     price_change  p_change     ma5    ma10    ma20      v_ma5     v_ma10  \
0            4.30     44.01  14.070  14.070  14.070     337.00     337.00   
1            1.41     10.02  14.775  14.775  14.775     228.00     228.00   
2            1.55     10.01  15.527  15.527  15.527     241.00     241.00   
3            1.70      9.98  16.328  16.328  16.328     241.75     241.75   
..            ...       ...     ...     ...     ...        ...        ...   
397          0.16      1.66   9.680   9.709   9.924   36754.46   49436.88   
398         -0.18     -1.84   9.698   9.741   9.863   36513.38   49998.51   
        v_ma20  turnover  
0       337.00      0.06  
1       228.00      0.02  
2       241.00      0.04  
3       241.75      0.04  
..         ...       ...  
397   42602.09      1.58  
398   42114.31      1.39  

 

数据库中的数据示例

stocks表

财经 2

hdata_date表

财经 3

 


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图