自学量化的成长记录1

讲讲为什么学习期货量化

  • 本科在一个双非的工科学校读完了经济学,发现在就业岗位中并不吃香,身边很多的同学的都投入了考研和考公大军,总人数占据了专业人数的一半以上,可怕吧!!! 但是,成功上岸的人仅仅只有百分25,就是这么残酷。我是一个幸运儿也挺认可自己的判断能力,提前进入了复习,我觉得我一生都比较幸运,考到了我本科学校旁边另外一个双非的研究生,哈哈哈,重庆工商大学。目前正是研一阶段,读的是应用统计专业。起初我并没接触过编程这方面的知识,浅浅的也就学过OFFICE等相关的软件操作以及LOW的大学计算机基础。最初接触的变成语言是R,虽然我现在不怎么用了,但是我觉得这门语言绝对是数据处理方法的number one,python在某些领域都欠缺几分。但是因为专业更多的接触是人工智能以及大数据处理等领域,我就干脆放弃R而只用python。正所谓人生苦短,我用python。
  • 目前正在相关企业实习,从事的是量化领域,老板挺好的,给我明确的规划了一个量化学习的渐进过程。虽然我也知道网上很多,但是这份用心我很感激。

开始正题

量化是什么:链接: https://baike.baidu.com/item/%E9%87%8F%E5%8C%96/8959421

期货量化第一步要做哪些工作

①阅读一些与量化相关的书籍和文献。推荐《以交易为生》《期货市场入门》。
②看看别人都是怎么做的。
③规划下自己要做哪些。是信息推送,还是策略研究,还是回测…

期货量化第二步

①要进行量化研究,你首先得有数据吧。数据的获取来源很多,Tushare,东方财富,新浪财经啥的。数据你可以通过网页下载,也可以使用爬虫抓取,也可以api接口获得数据。
下面我简单展示下我的代码:

import requests

def get_tick(need_tick):
    headers = {'referer': 'http://finance.sina.com.cn'}
    resp = requests.get('http://hq.sinajs.cn/list=nf_' + need_tick, headers=headers, timeout=10)  # 请求网页+a[i6]
    content1 = resp.text
    content_list = content1.split(",")
    return content_list
    
if __name__ == "__name__":
	# 白银
    a = get_tick("ag2212")

上面是我从新浪接口获得的ticks数据,当然你想获得某个期货品种指定秒数的ticks数据也是没问题的,再次之前你得进行数据的简单处理。

 class Recording_of_real_time_data:  # 实时数据的记录

    def __init__(self, need_tick):  # 内置重置
        self.need_tick = need_tick
 	
 	def data_format_record(self, time_step,):  # 数据格式记录(动态的)
        result_df = pd.DataFrame(columns=None, index=[0])

      	for i in range(int(time_step)):
            mid_df = xinlan_api_tick.get_tick(self.need_tick)
            result_df.loc[i, "date"] = ':'.join(re.findall(r'.{2}', mid_df[1]))
            result_df["date"] = pd.to_datetime(result_df["date"], format="%H:%M:%S")
            if i == 0:
                result_df.loc[i, "open"] = 0 # 一般开说获得的第一个ticks数据是没法获得open价格的,设定为0,后面储存数据的时候把他剔除掉就好了
            else:
                result_df.loc[i, "open"] = float(result_df.loc[i - 1, "close"])
            result_df.loc[i, "high"] = float(mid_df[3])
            result_df.loc[i, "low"] = float(mid_df[4])
            result_df.loc[i, "close"] = float(mid_df[8])
            result_df.loc[i, "vol"] = float(mid_df[14])
            time.sleep(1)

获得数据后 当然是存啦 我是存放进sql的,不一样的老铁,可以去其他作者哪儿看看如何操作的。

    def save_data(self, result_df, db, tb):  # 数据保存
        save_second_information = pd.DataFrame(result_df)[1:]  # 把dataframe每次最后一个信息作为我们存入mysql的信息 第一条数据我们不要了
        mysql_data_save.PDTOMYSQL(host='localhost', port='3306', user="root", password="key", db=db, tb=tb,
                                  df=save_second_information)

这里用了一个封装,我也展示出来

class PDTOMYSQL:
    def __init__(self, host, user, password, db, tb, df, port='3306'):
        self.host = host
        self.user = user
        self.port = port
        self.db = db
        self.password = password
        self.tb = tb
        self.df = df

        sql = 'select * from ' + self.tb
        conn = create_engine(
            'mysql+pymysql://' + self.user + ':' + self.password + '@' + self.host + ':' + self.port + '/' + self.db)
        df.to_sql(self.tb, con=conn, if_exists="append", index=False)
        self.pdata = pd.read_sql(sql, conn)

    def show(self):  # 显示数据集
        return print(self.pdata)

今天记录到此。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值