返回列表 发布新帖

迅投Python量化建模新手入门01录音笔记

4366 2
发表于 2023-12-20 19:21:38 | 显示全部楼层 阅读模式
面向新人小白上手 迅投  Python 编写策略建模的入门指南。
帮助0基础学员起手操作的课程录音,智能交易*姚主讲。
仅文字版,相关视频课程请咨询其发布者。
----------------------------------------------------------------------------------------------
设置帐号和订阅品种
各位学员,你们好。我是姚老师,既然开始学习量化编程的课程了,那肯定要认真起来,对你自己负责嘛。做为第一节基础课,有些基本概念还是要先说明一下。有编程基础的学员要帮助一下后学的朋友嘛,其实在这个过程中,大家都可以共同进步。

我主持的这套课程,所用到的工具,无非就是 讯投的基础版,券商版,普通版,投研版都可以。当然,只要是迅投QMT也都是通用的,这一点各位就不用纠结了,无需其它的软件。所以,各位应该都已经在自己的电脑上安装好了吧?如果还没有,请回头看看前面那几集《量化交易就那点事儿》bilibili.com 网站(B站)上有。
第二个,课程中用到的文档,其实就是这个链接:

https://zilchyao.github.io/xuntou_yao

建议各位学员收藏,时不时翻看翻看。无论是在看视频学习的过程中,还是以后实际运用。就当是一个使用手册,搜索查找,都是很方便的。这个文档也会不断更新的,加入更多的示例,以帮助更多的朋友。如果各位发现其中有错误的地方,也请一定告诉我啊。有红包奖励。

好,闲言少叙。我们开始今天的课程。我必须强调量化编程是动手操作的课程啊,不是电子榨菜。合着你还就着方便面,边吃边看呢?那不合适啊,一定是在你的电脑上打开自己的迅投QMT,登录好你的帐号。跟着视频一步一步的操作,看到电脑执行的结果。这才是正确的打开方式啊。不然你在这儿玩啥儿呢?

很多朋友一听编程这个词儿就发怵,其实真没必要。说通俗点编程就是把做事的步骤写下来。你平时做事儿没步骤,上手就干,干完拉倒?那你的生活真幸福。
你就算把大象放进冰箱里也得3步吧?
一,把冰箱门打开,
二,把大象放进去,
三,把冰箱门关上。
这一、二、三就是编程。

具体说量化交易这事儿,就是把交易步骤用计算机语言写下来,我们的课程里用的是 Python 语言,当然也可以用别的计算机语言,比如 C++ 啊,比如 VBA 啊。然后交给计算机去运行,就齐活儿了。很多人觉得难,我也打听了一圈,倒底难在哪儿。

有人说难在不懂计算机的语言,其实这不是事儿。那英语难不难?有人说那更难了。哈哈,我吓唬你的,英语那是难,26个字母吧,但单词超过8万个了,常用的也有6000 到  8000 个了,还不说那些短语,句式和语法。汉语才2万字呢,常用的3000到4000个,你要认识6000个以上的汉字,那你高低也是个文学家。

但计算机语言就简单多了。就说 Python 只有 35个保留字,保留字这是个专业术语啊,说白点就是35个单词,(c 语言我记得就 27个),而且都是象 if ,or  ,and ,esle 这样的简单的单词。

到现在 Python 3.11 版,内置的函数也就80来个。再把我们要学习的这个 迅投QMT 中的方法名称也算上,200个,到顶了!200个词你都记不住?那我还是劝退你吧,你真的不适合。关键是,不是每一个你都要用啊?你认识 3000个汉字,你天天都用?你一天说2万个字,最多用了不到800个字,咋的,你不服?文盲。同理,写一个量化程序,不是要把每个指令,每个函数,每个参数都用上啊。你编字典呢?犯不上啊!所以,别自己吓唬自己。

其实量化交易真正的难点在于,你如何把交易策略说清楚,把每一步,做什么动作,写明白了。就用中文写,写通畅了,最后翻译成 Python语言,那都不是事儿。

最怕那种:
“来,给我写个赚钱的......”
我.......的刀呢?放哪儿去了?

来,上手,具体操作啊。登录迅投QMT,仿真帐户。注意右下角的2个绿灯,都亮了。这就表示 迅投QMT 可以正常使用了。就在 “我的”这个界面中,直接点击“新建策略”,选择“Python策略" ,这时就打开了 策略编辑器,我们以后写代码,都是在这个界面中操作。所以,就用这一个工具就齐活儿,我们不用什么 PyCharm  啊,不用什么  vs code 啊,连 Jupyter Note 我们都不用,麻烦。还安装,还配置,还插件什么玩儿的,乱七八糟,闹心。

先来看左侧这个面板,底部有个标签,“函数”,我们要学习的全部内容,就都在这儿了。有学员一看就晕过去了,至于吗?我们只看 PY 开头的这些,对了,PY代表的就是 Python ,下面这些都是传统股票软件中的公式,其实就是 VBA 语言,这不是我们讨论的范围啊。很多老股民喜欢这些,因为在通达信啊,大智慧那些软件里很常见。迅投QMT是为了兼容那些公式,才把这些东西都包含了过来。现在主流的量化交易程序都是 Python 语言了,我们要学习的也是用 Python 语言来创建量化交易的模型,说白了就是把交易步骤用 Python 语言写成程序,好交给电脑去执行。

从上往下,这6个小文件夹里,就全都是 Python 语言中会用到的 指令啊、方法啊、函数啊。我们点一下左边这个小三角,就可以展开这个文件夹看到其中的具体内容了。
比如,第一个 PY交易函数,展开,就可以看到包含这么多个具体的函数,你再用鼠标点其中一个,相关的用法、说明,示例,就会显示在下面了,是不是很方便?
什么?又有学员晕过去了?为啥啊?感觉太多了,害怕。这很多吗?来来,我们现场数一数,好不好。 一共也就6个文件夹。

第一个文件夹,PY交易函数,一共 37个;
第二个 PY实时主推函数,9个;
第三个 PY引用函数 7个;
第四个 PY系统函数 71个;
第五个 PY绘图函数 5个;
第六个 22个;

37+9+7+71+5 + 22 = 152  个

重点是,如我刚刚说的,不是每一个你都要用啊?比如,做A股,你用期货的交易指令?你这曹丞相三请诸葛亮?脾气很独特啊?而且看我的文档,我都按“最常用的”,“行情相关”,“品种相关”,“期货相关”,和 “几乎不用”分了类。那很明显,几乎不用的,我们就跳过了嘛。我们以A股市场为例,那期货部分的内容,我们也跳过了嘛。其实你知道了A股的品种如何操作,平移到期货市场上也是一样一样的。触类旁通嘛。

所以各位学员不必害怕,只要你跟随本课程,一步步的认识了这些函数和方法,然后结合你自己的交易策略,打造自己的模型,独立写一个自动运行的交易程序,就是指日可待的事儿。

来,先认识一下,所有模型中必须要用到的3个要素,它们就是 PY系统函数中的 ContextInfo、init() 和 handlebar(),其中这个 ContextInfo 是最重要的对象,没有之一,就是唯一。你看它的释义写的就是:python与底层连接,策略模型全局对象,可以用于存储自定义的全局变量。这句话真是啊~~~可能懂 Python 的学员也觉得很抽象。但基本说了等于没说。

来点具体的,动手。先把中间这问分的代码都清除了,现在用不上。全选,删除。世界一下都干净了,对吧。

第一行,按惯例,我们敲上 #encoding:gbk ,表示以下代码中会用到 中文 字符,这是个好习惯啊,以后我们在 迅投QMT中写代码,第一行都写这个啊,我说的!记住了没有?
我们先写个 def init(ContextInfo):  # 这表示程序一启动,先执行这里的指令

接下来,空4格,这是 Python 语言的格式规范。就象我们写中文的时候,第一段前面要空2格一样,这也是规定啊。这不是我说的,这就是 Python 语言的规范。

再写一个 print(dir(ContextInfo)),表示给我打印输出,ContextInfo 里都有什么东西。

好了,点击左上角这里的 编译、运行 吧。

看到 日志输出 中的内容了吗?可不少呢,点一下鼠标右键,选择 自动换行。好家伙,原来 ContextInfo 里面有这么多东西啊。

有 Python 基础的学员已经看懂了,这不就是个 对象 嘛,这么多东西不就是对象的属性和方法吗?没错。如果你不知道这是在说啥,也别紧张,我们举个例子,你就明白了。比如,我们挑一个 set_account 是啥意思啊,在这里就可搜索一下,你看,你还没敲完,下面的释义就显示了,这个方法或者说是函数的功能就是 设定好交易的帐号。在我的文档里,也写的很明白。

通常写一个自动交易程序,也就是建模。你第一件事起码要告诉电脑 ,你要用哪个帐户进行交易啊?你帐号都不说,让电脑咋下单?下到巴菲特的帐号里去吗?我要那本事儿,还搁这儿玩啥呢?别扯了,所以,第一个最常用的方法,就是 set_account,请你现在就动手啊,用这个方法,设置好你自己的仿真帐号,别设置错了。

第二个常用的方法就是设置股票池罗,说白点就是告诉电脑 ,我准备要买下面这些股票。用的方法是 set_universe() ,可以参考我的文档,把代码复制 粘帖到你自己的策略编辑器的窗口。这就表示 :电脑 ,我要关注这2个品种了啊,一个是沪深300指数 00300,一个是国安科技 000004。给我盯好了!有朋友就说了,那我要盯住多个品种,我还得一个个的打字?我们平时都是选板块的,把我关心的品种,都放在 “我的自选”里。没错,这里也有设置 板块的 函数,就是 get_stock_list_in_sector() ,请看下来这个例子。

这样我们就可以通过 板块 的名称,一次设置好我们关心的多个品种了,是不是很方便?哎,这时候有朋友提问了。不能你说设置好了,就好了。得让我检查一下吧。厉害啊,果然是个高手,这态度,请把 严谨 2个字打在公屏上!这我必须要支持一把!没毛病,为了检查一下,我们刚刚设置的股票池,是不是符合我们的心意,可以用
get_universe()

这个方法,来,看下面这个例子。你看,通过打印输出订阅的品种列表,就可以方便我们用肉眼检查下,是不是设置好了我们关心的品种。此处应该有掌声吧?

那我必须要订阅全市场沪深A股的全部品种,怎么写这个指令呢?给你们3秒思考一下?不能再多了,这问题还用3秒?对了,你看有学员,1秒不到都想到了,把这个板块名称换换不就得了。刚刚我们用的是“我的自选”,现在我们换成 “沪深A股”,齐活儿!

不信,我们运行一下,看看是不是订阅了这么多品种,现在一共有 6000多支股票了吧?你看,结果显示,果然有这么多。

这里我要提示一句啊,有句老话叫 贪多嚼不烂,你一下子订阅这么多品种,后面每个品种的报价啊,成交量啊,在开盘的时候都会不断的跳动的,这还没开始计算各种条件呢,你的电脑受不受得了?有学员说了:没事,我这顶配,CPU,内存杠杠的~~~,那你豪气!只要你的电脑没卡死,那你开心就好。

这一下就介绍了好几个 ContextInfo 当中的属性和方法了。是不是进度太快了点?有没有没跟上的朋友?没关系,参考我的文档,有任何问题,欢迎你随时向我提问。这一章中后面的这3个方法,就留给学员们自己动手试一试,这是个作业啊。要求课后,你自己动手,把示例中的代码输入到你的策略编辑器,然后把运行的结果发给我看。否则,下一节课,就不用参加了,劝退吧,放弃吧。哎,有学员说了,姚老师你咋还劝退人家呢?别家的培训都巴着巴着人家来学习,你倒好,人家来了,你还往外赶?咋?我就这脾气,不服咋的?主打的就是一个个性十足。关键是学习这事儿,确实就得认真对待啊,我们教学双方都得花时间,花精力。学员还花了钱呢。如果学不好,用不上,那咱还不如斗地主,玩两把英雄联盟呢。做人嘛,开心最重要了。

好,今天的课程就到这里,希望各位学员课后多加练习。预习下我的文档,在精神状态饱满、注意力集中,不会被别的事打扰的情况下,进入我们下一节课的学习。我们下次再见。

==========================================================================================
可扫描以下二维码打赏作者,或咨询相关问题。


WX01.jpg ZFB01.jpg




评论2

*******8006
发表于 2023-12-21 10:19:47 | 显示全部楼层
顶你,很多人其实分不清实盘策略和回测策略,还有怎么跑一个完整的策略,比如每天下午2点半,根据数据分析的结果进行调仓,大神可以多讲讲实盘案例
*******7532 发表于 2025-3-3 09:48:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表