好,这节课我们开始量化交易部分,这一部分是日内模型的量化代码展示部分。上节课我们把日内交易的策略的理念给大家沟通了一下,下面的话就是针对代码部分给大家做一个介绍。这部分代码在国内实现的话是在交易开拓者
好,这节课我们开始量化交易部分,这一部分是日内模型的量化代码展示部分。
上节课我们把日内交易的策略的理念给大家沟通了一下,下面的话就是针对代码部分给大家做一个介绍。
这部分代码在国内实现的话是在交易开拓者上实现的,因为我们用的工具是交易开拓者,所以那个代码在这上面的话就会侧重一下。另外后期的话,我们也基本上就是以交易开拓者这个平台为基础给大家展示这些代码。
大家可以看一下,这就是交易开拓者的策略代码部分,首先它会有一个vars就是变量的定义部分,后面的话是一个定义,就针对我们策略之中用到的一些命名。
比方说bar,hh LL就是高低,包括stoploss、take profit这些命名,我们在这其中先进行一个命名,包括以后我们写代码的时候,基本上也是vars部分在前面。
下面是代码的正式的展示,minpoint首先是定义,我们在我们代码部分中针对我们的变量进行一个描述。它这种代码大家看看一下,它的风格类似于C语言,包括命名。
说到C语言,C语言的学习,凡是计算机学科来说是一门很入门的语言。
C语言的好处是它的代码非常规范,而且它是函数形式的,包括括号,包括整个的区分都是很明显的,我个人也是非专业计算机学入手,我个人建议大家学习代码的时候尽量从C语言开始学习。
他就像我们练字的时候一样,从楷书开始练,虽然语言的代码它的命名规则整个的下来是相对来说容易一些的,但是我们最好是养成一个习惯,包括我们在学习他人的代码过程中会免不了会有一个复制黏贴就是copy的过程。
在这过程中由于C语言的代码它是有括号和大括号的区分,所以我们很能够区分我们哪一部分代码是开始和结束,包括每个语句,像交易开拓者它就吸取了C语言的一些优点,它的代码在执行的过程中是编译成函数来执行的,保证了它的运行速度。
从书写上大家可以看一下,我在命名上,包括在整个的定义,也是用C语言这种类似的方式来定义的。
我们在对代码部分,变量进行定义以后,后面进入变量也就是函数的命名,命名以后我们会把我们最终确定的几个变量,比方说高低点,去做一个展示。
后一部分就会对我们的持仓,因为前一部分描述的话,实际上就是我们在做交易的过程中针对的高低点就是K线部分做的描述,我们后边下部分market position就是对我们的持仓进行一个判断。
我们的持仓大家可以明白,我们现在应该是持仓上面应该分三种状态。
第一种,比方说持仓为零,这种情况下我们怎么办?肯定是开仓,那开仓我们是开多仓还是开空仓?这就有一个判断。我们需要有一个逻辑,比方说在什么情况下我们开多仓,我们就把开多仓的条件用这个函数语言描述下来,然后进行一个标记。
函数语言描述完以后,下面是一个开空仓的条件,针对开空仓的条件,我们会有一个函数的形式上的判断,在符合一定情况下,我们会去把空仓的仓位建立起来。
因为现在是高低点突破,我们空仓和多仓基本上是根据高低点突破来建立的,在代码中我们已经体现了。
当我们有了仓位以后,又分两种情况来处理,我们一种情况是多仓,我们会怎么处理?另外一种情况是在有空仓的情况下我们是怎么处理?
因为日内突破它是日内的一个模型,我们大家可以看一下,我们有一个描述,就是我们有一个时间的退出,因为包括有些夜盘,它是到晚上以后才去,整天的交易才结束,我们定义的话,定义在是晚上11:55,我们整个的函数会结束,就是我们仓位会平仓出来,这个是日内模型一个特有的一个表述。
就是我们在当天一个判断就是当天收盘,那么好,我把我的仓位要清出来,不管我当天的是多仓还是空仓,都会有一个退出,退出的时候可能会有一个止盈或者有一个止损,这个是我们一个初步的编写。
我们在止盈的时候,比方说达到我的目标价位,我就止盈出来,针对这个品种我们还会有一个止损,达到我的止损价位的时候,我出来。
它是非常对称的,大家可以看一下这段代码它比较简洁,但是它非常对称。
这是我们在写代码的时候一定要注意的,就是我们要把代码写得比较规范,而且具有对称性的话,我们会很容易发现代码哪些地方出现错误,就可以针对某一项做改进和调整。
比方说止盈这一块我们是有一个省略号,这样的话就是说这段代码在我们现在是注释掉的,因为在交易开拓者之中,它的注释代码是用两个斜杠,就是我们做来进行一个注释,这样的话表明这个代码在现在目前它是处于待编译状态,保证我们这段语句是先不执行。
看完代码部分以后,下面是一个在图表上的展示,我截取了美豆的交易K线图,因为我们国内豆子和国外的豆子它是联动性比较强的。
在图形上大家可以看到,其中的一段交易信号,包括我先开了一下空仓,后面有两个多仓的入场,从信号上看应该是这三个交易都是盈利的。这个是交易开拓者的一个针对历史行情的一个历史统计,其中就是我以前介绍的有几项,比方说净利润,还有总盈利、总亏损,包括我们的胜率。
大家可以看一下我统计的这段时间,我的盈利是8850,我的总盈利是22445,那我的总盈利除以总亏损是1.65,我的胜率是48%,又细分成了多头和空头的一个交易上的一个区分。
大家可以发现,我主要的盈利应该来自于空头,因为空头的话它的胜率占到了65%,整个的利润下来,我的平均利润是88,那么这一段平均盈利比上平均亏损是1.79,也就是说我这段的盈亏比能达到1.8左右。
针对我的净利润和最大亏损是5.4,从统计上来说,把我的整个的这段交易的相关的一个概况基本上都列出来了,而且是以数字化的形式,大家基本上就明白我所做的胜率和我的盈亏比大约都是多少。
针对日内模型它有一个特点,就是胜率一般相对会高一些,统计下来的话应该在50%左右或者比50%多一点,而且这段的空头它就很明显,他的胜率达到了65%,这就是一个我一个胜率上的一个统计。
这个是这段时间的一个交易的回测曲线,从曲线上来说,大家可以看一下,因为它这是整个我的统计上的一部分,因为它包括有震荡部分,因为截图的时候我展示了一下盈利性比较好的这一段。
这段大家可以看一下,基本上是呈震荡趋势向上这么一个状态,针对我的这个模型,从统计上大家可以看出,我的日内模型在这一段时间内通过做空,主要是做空的胜率达到65%,获利是比较可观的,而且在统计过程中也展示了我的盈亏比在1.8左右,不到2。
日内模型它主要的特点,就是刚才我给大家介绍的这些,大家在做日内模型的过程中也会有碰到许多类似的,比方说像非阿里系统,我为什么去展示日内模型量化部分,也是在交易开拓者之上给大家做一个详细的一个代码的体现。
这段代码的话大家可以在盘后把它拷下来,拷下来以后大家去学习,学习的过程中然后遇到有一些问题的话,包括代码编写上,大家也可以去跟我们再继续讨论相关的一些代码具体的知识。
我也希望有很多优秀的学员,他们可能就是编程出身,可能他们认为自己的写的代码更有一些代表性,这个也是我所欢迎,也愿意给大家去共同讨论,或者说也希望能共同学习是这一块。
好,以上就是我们今天的所有内容,欢迎大家关注、点赞和转发!
原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/457696/