首页 » 软件开发 » 量化交易学习——金融分析(收益量化学习分析概率)

量化交易学习——金融分析(收益量化学习分析概率)

雨夜梧桐 2024-07-24 16:53:28 0

扫一扫用手机浏览

文章目录 [+]

本文主要记录量化学习之路,同样也是验证学习成果的方式。

啰哩啰嗦但有用的交代

个人学习方式不太一样,对于量化投资,大部人开头的做法都是对python大学特学,但是python其实只是工具而已,帮助我们提高效率和有可能从数据中发现更多投资方向,但不是量化投资的核心。
更重要的是在策略思想,这是一个长期累积的过程,有了策略思想,才知道量化的目的,需要如何借助用工具实现这些目的,这个时候python等工具就派上用场了。

学习方式:边用边学

所以,我的学习方式是,学一点python基础,比如搞明白数组、元素、对象是什么,他们的区别,常用的一些函数,比如sum、groupy、append、dropna、sort、if等很基础的函数即可,其余的等课程里面有相关的用法再去补课,这样就可以直接学以致用,而不是单纯地学习python,否则会觉得很枯燥。

找一个好老师:chatgpt

当然,补课如何补才比较高效也很重要,此时不得不感慨openai的chatgpt大模型,简直是学习的利器,就像是一位24小时陪伴在身边的好老师,随时随地给你解答问题、纠正错误。
以前,我的python都在网上搜索,同样的也各种出错,老是找同事朋友帮忙,他们也无法很快地给到帮助,但是chatgpt完美地解决了这个问题。
擅用chatgpt!


找一个好课程:bigquant

我此次用的是bigquant的宽客学院教程,同时也用bigquant量化平台:需要的点此注册,顺便我可以挣点宽币用chatgpt。

BigQuant量化交易平台 - AI人工智能量化投资交易平台

金融分析月度效应是否存在?

月度效应:月度效应指的是市场在不同月份中表现出的统计上的显著差异。
根据历史数据的分析,许多市场都存在某些特定月份表现更好或更差的趋势。

一个常见的月度效应是“一月效应”,即一月份市场表现相对较好。
这可能是由于投资者在年末进行资金调整、纳入年度绩效考核和税务规划等因素的影响。
另一个月度效应是“十二月效应”,即十二月份市场通常表现较好,可能与假日季节性需求和年度绩效平仓有关。

除了一月和十二月效应外,其他月份也可能存在一些特定的市场趋势。
例如,股市可能在某些月份中呈现出更大的波动性,或者某些行业在特定月份中表现出更强劲的增长。

需要注意的是,月度效应并非一定会持续或重复出现。
市场是动态变化的,过去的统计趋势并不能完全预测未来的表现。
因此,在制定投资策略时,应该综合考虑多个因素,而不仅仅依赖于月度效应。

这是chatgpt给出的解释,下面就来分析一下这个效应是否真的存在。

第一步:取数据(2022-02-01至2022-12-31)

这里我用的是可视化,代码也可以取,不过我会用部分模块,就

数据结果如下:

第二步:对各条数据进行按月标记

读取出来的数据很多,但对于月度效应的目标只有date、intrument(股票代码)、return_0有用,因此要单独取这几条数据读取出来的数据是每日的,需要将每条收益数据标记是哪个月的

# 统计以上模块读取的数据,并标记其月份df=m13.data.read() #读取数据df1=df[['date','instrument','return_0']] #return_0是收益df1['月份']=df1['date'].dt.month #统计当前收益的月份df1

第三步:计算月度收益期望

月度收益期望=每月的收益平均值=每月收益总和/当月天数

此时,需要用python自定义函数来计算:

def calc_return(df1): #自定义函数,不知道的返回去看python的函数定义课程,还是不明白的问chatgpt mean=df1['return_0'].mean() #计算收益的平均值 df1['收益期望']=mean #新增一个字段,并赋值为平均值 return df1df1=df1.groupby('月份').apply(calc_return) #以月为单位,按照上述平均值计算方式计算每个月的平均值df1.drop_duplicates('月份',inplace=True) #看结果会发现有很多重复值,这个就是去重的df1

第四步:图表表示

看列表可能不是很清楚,数据分析中很重要的是画图,通过图表展示可以让数据结果更清晰。

不知道怎么画图的,请看bigquant的bigcharts文档,抄代码,改一改就行

import bigchartsfrom bigcharts import optsbigcharts.Chart( data=df1[['月份','收益期望']]-1, #收益涨跌=收益率-1,负为跌,正为涨 type_="bar", x="月份" # y=["收益期望"],).render()

从结果看,1月份并不赚钱,但我只取了一年数据,我们把数据量加到5年,看看表现有没有变化?

没什么变化,有空的可以加到10年+试试。

隔夜收益如何?

隔夜收益指的是持有某个金融资产(如股票、债券、货币等)过夜期间所获得的收益。
在股票市场中,如果投资者在当天购买股票并在当天收盘前未出售,那么这些股票将持有过夜,隔夜期间的股价波动将导致投资者获得或损失隔夜收益。
在固定收益市场中,例如债券市场,投资者可能会获得隔夜利息收入。
而在外汇市场中,隔夜收益是指持有某种货币对的头寸过夜所产生的利息。
总的来说,隔夜收益是投资者在持有金融资产过夜期间所获得的盈利或损失。

先理清一下计算步骤:

1.隔夜收益=今日开盘价/昨日收盘价-1=open_0/close_1-1

2.计算高开和低开的概率(即收益为正和收益为负的概率)

第一步,同样的取数据(2017-02-01至2022-12-31)

方法同上,因为要算的收益,所以这里取了因子值open_0、close_1,看看数据的原貌:

第二步,数据处理

根据目标是计算隔夜收益,所以用代码处理一下(也可以直接在特征列表处理,方式多多):

# 隔夜收益计算df=m13.data.read()df1=df[['date','instrument','close_1','open_0']]df1['隔夜收益']=df1['open_0']/df1['close_1']-1df1

第三步,计算高开、低开的概率

方式一:高开概率=高开天数/总天数(低开同)

#计算高开、低开概率import numpy as npdf1['是否高开']=np.where(df1['隔夜收益']>0,1,0)df1['是否低开']=np.where(df1['隔夜收益']<0,1,0)high_=df1['是否高开'].sum()/len(df1)low_=df1['是否低开'].sum()/len(df1)print(f'高开概率{high_}')print(f'低开概率{low_}')

方式二:高开概率=高开平均值(低开同)

#计算高开、低开概率2import numpy as npdf1['是否高开']=np.where(df1['隔夜收益']>0,1,0)df1['是否低开']=np.where(df1['隔夜收益']<0,1,0)high_=df1['是否高开'].mean()low_=df1['是否低开'].mean()print(f'高开概率{high_}')print(f'低开概率{low_}')

看起来低开概率更高,尾盘买、开盘卖恐怕不能带来更好收益,那么反过来开盘买、第二天收盘卖呢?可以自己写一下,我贴个我计算的结果:

还是亏钱的概率大了一点点!

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读5 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0