2024年Python最新2024美赛C题股票投资策略回顾讲解,教你正确打数学建模比赛(1),邮轮面试指南

如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

证明我们上面的策略是最佳策略?那不就是证明我们的策略是最能赚钱的吗,这能怎么证明?应该有一个类似最佳标准。所以目前问题还是主要第一问。

1.3 第三问

读题:

在这里插入图片描述

看到关键词:敏感程度 ,就知道这是一个敏感度分析,因为太常见了,你一定要知道。继续仔细读题,什么的敏感程度?交易成本!交易成本有什么?我们是还不知道那1000美元怎么比例分配的吧,第二问我们就证明出它是个最佳策略了,就是最赚钱的嘛,虽然我们还不知道怎么证明,应该就是控制这个比例,交易成本?是不是还在想把1000美元变成2000,3000?这个没多大意义,跟控制这个比例是一样的。

1.4 第四问

题目说到:传达策略,模型,结果,三点内容。

策略:百度一下股票投资测类,发现是有很多种,我们在第一问应该只是随便选取的一种,投资是有风险的,我们无法证明哪个策略好,风险高的一半回报大,但是亏也有可能大。所以我们可以在这讲一下第一问的策略,在多提出几种方案(百度请)。

模型:再介绍一下模型的优缺点?

结果:把结果贴出来,用自己的语言描述一下。

二、思路和资料查询的正确方法


2.1 思路方法指导

首先给大家说一个产业链坑,很多人一打数学建模比赛就会百度:xx数学建模思路,如果你是小白,那么我建议你可以参考,可以给你提供一个方向,你应该更绝那样的方向去自行搜索更多准确的资料,但是基本都是错误的思路,不要相信它什么985团队,扯犊子的,我们数模圈几乎是没有人有人能给你提供思路,有能力的人不会出来说话,半斤八俩的人就是在网上开始收割韭菜,瞎扯点思路,然后跳转面包多(以后遇到在这里买的,基本都不靠谱),不针对任何人,也不是针对面包多这个产品,我实话实说,所以一定要靠自己,打比赛不要着急,第一天你可能什么思路都没有,你能做的可能都是百度,查到有用的资料就保存起来给团队一起看,大家都觉得好那就一定有用。

上面我说到:百度。我说的百度不是真的让你用百度,这仅仅是因为大多数人用的是百度,百度已经成了搜索的代有名词,我的建议是对你的浏览器换搜索引擎,至少你应该用:bing引擎,最好是使用谷歌引擎。

哪里换浏览器引擎?设置-搜索引擎

在这里插入图片描述

顺便说一下,个人建议浏览器用谷歌浏览器。我一般会怎么搜私聊,如果我是很着急学习一门技术,需要最快时间定位到最好的资料,我会使用谷歌引擎,如果自己没多大需求,我就换回bing引擎。再说一下:谷歌引擎会让你进入全新的学习世界。

比如说我看到这个题就是讲的股票投资,我会如何搜索?

这样?

在这里插入图片描述

不,应该这样:(这是bing引擎)

在这里插入图片描述

这是谷歌搜索:

在这里插入图片描述

看来第一篇很不错,排在越上面,说明质量越好的,多查类似资料,我们可以由此确定方向具体化:量化投资股票。

2.2 第一问思路

根据题目可以看出是要预测,注意预测不要站在上帝视角预测,是根据已有数据预测,所以怎么查资料?

在这里插入图片描述

懂了吧?多参考几篇写得好的,认真阅读,把他们提到的模型拿来改改符合题目要求是不是就可以了?加上股票风险分析之类的,自己搜一下就会了。

2.3 第二问思路

证明策略好坏?那就是对策略好坏做个评价呗。这个确实不知怎么想,所以继续搜索:

在这里插入图片描述

经过多篇文章查询,我们是可以确定到这样一个方法:回测

然后我们会看到这样的标题很符合我们的题目:在这里插入图片描述

认真读一下题,确实很符合,于是我多看了几篇,发现有专门的回测模块,于是就去搜索回测模块,经过查询体验最好的是Backtrader,然后呢就继续学习一下框架吧,就能做出来了,不难的,在这里我给大家展示一个实现代码,会有类似效果:在这里插入图片描述

主要模块安装,其它模块自行安装:

!pip install backtrader

模块导入:

import datetime

from datetime import datetime

import pandas as pd

import pandas_datareader.data as web

import matplotlib.pyplot as plt

import seaborn as sns

sns.set_style(‘whitegrid’)

import backtrader as bt

import backtrader.feeds as btfeeds

获取比特币范围数据:

start = datetime(2016, 9, 11) # or start = ‘9/12/2016’

end = datetime(2021, 9, 12)

df= web.DataReader(‘BTC-USD’, ‘yahoo’, start, end)#雅虎财经获取比特币数据

print(df)

在这里插入图片描述

下面以一个简单的单均线策略为例,展示backtrader的使用过程,即当收盘价上涨突破20日均线买入(做多),当收盘价下跌跌穿20日均线卖出(做空):

class my_strategy1(bt.Strategy):

#全局设定交易策略的参数

params=(

(‘maperiod’,20),

)

def init(self):

#指定价格序列

self.dataclose=self.datas[0].close

初始化交易指令、买卖价格和手续费

self.order = None

self.buyprice = None

self.buycomm = None

#添加移动均线指标,内置了talib模块

self.sma = bt.indicators.SimpleMovingAverage(

self.datas[0], period=self.params.maperiod)

def next(self):

if self.order: # 检查是否有指令等待执行,

return

检查是否持仓

if not self.position: # 没有持仓

#执行买入条件判断:收盘价格上涨突破20日均线

if self.dataclose[0] > self.sma[0]:

#执行买入

self.order = self.buy(size=50)

else:

#执行卖出条件判断:收盘价格跌破20日均线

if self.dataclose[0] < self.sma[0]:

#执行卖出

self.order = self.sell(size=100)

股票数据读取:

#先引入后面可能用到的包(package)

import pandas as pd

from datetime import datetime

import backtrader as bt

import matplotlib.pyplot as plt

%matplotlib inline

#正常显示画图时出现的中文和负号

from pylab import mpl

mpl.rcParams[‘font.sans-serif’]=[‘SimHei’] #使用tushare获取浦发银行(代码:600000)数据。

#使用tushare旧版接口获取数据

import tushare as ts

def get_data(code,start=‘2016-09-11’,end=‘2021-09-09’):

df=ts.get_k_data(code,autype=‘qfq’,start=start,end=end)

df.index=pd.to_datetime(df.date)

df[‘openinterest’]=0

df=df[[‘open’,‘high’,‘low’,‘close’,‘volume’,‘openinterest’]]

return df

dataframe=get_data(‘600000’)

#回测期间

start=datetime(2010, 3, 31)

end=datetime(2020, 3, 31)

加载数据

data = bt.feeds.PandasData(dataname=dataframe,fromdate=start,todate=end)

初始化回测系统:

cerebro = bt.Cerebro()

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值