我们先来看如何获取这类基本面信息,如下图:
这里先是读取外部的TXT文本的基本面文档信息,把它存入变量Mystr1里面,再读取当天运行的股票代码存入变量Mystr2里面,然后获取Mystr2在Mystr1的位置,最后获取当前股票的基本面信息存入变量JZC里面。
如果我们想通过基本面信息筛选股票的话,可以把对应JZC变量的所有信息存入一个数组里面排序,选出我们想要的哪些股票。
下图是对应的TXT文本的数据格式:
上面说了怎样调用基本面信息使用,那下面我们来设想一下交易股票的过程:首先我们可能需要在一堆股票里面选择出一堆我们想要的股票(因为全市场有几千只个股,我们不可能全部同时来交易它们),相当于把全市场的股票做了第一步的筛选,变成了一个更小的股票池;
第二步是针对这个股票池,我们做进一步的买卖交易(这一步其实跟我们做期货模型一样,达到什么情况下买进卖出股票);
最后可能还会牵涉到换股的问题,因为股票标的太多了,而我们交易的资金是有限的,当我们满仓了,有些票没有触发出场,而这个时候又出现了一些更强的票(更符合我们想要做的票),我们希望持有它们,那么就需要我们换股了。
因为股票交易会牵涉到买卖很多股票,而我的资金是有限的,那说明我买卖的标的数量是有上限的,假设这个上限是100个标的,那么每个标的我分配的资金是1%去开仓,而有时候会出现当天满足我们买卖的股票标的超过100个,那哪些股票我们不能买进呢?
而MC的PT投资组合执行我们的程序是从上到下的,可能会出现我不想买进的那个票排在前面,那怎样设置规避这种情况呢,前面说了买卖股票的过程,其实我们可以把这三步化简成两步,就是选股和交易,如下图:
在选股模块里面需要做的动作是:针对在当前这个股票池选择出我想要的票,而且是当前满足买进条件的所有的票,可以把它们存入到一个数组进行排序(这个数组还应该包含从交易模块里面读取到当前持仓的股票和当前符合条件的票,对它们排序选出我最想要的票),使用PMM传递给下面的交易模块。
在交易模块里面需要做的动作是:读取到选股模块需要买进的股票池,不在这个股票池里面,但是当前还有持仓的就需要平掉,也就是换股,然后针对这个股票池买进对应的股票,最后把当前持仓的股票通过PMM传递给上面的选股模块。
这里我举个简单例子:用指标RSI表示当前个股的强弱,然后通过PMM传递给选股模块进行排序,找出当天最想持有的NStocks只个股,进出场模型用Boll_Teach模型,最后就是选股模块和交易模块通过PMM信息传递,把个股名称和对应的强弱互相传递过去,如下图是对应的排序一段代码:
LowestArray(StocksStrength,NStocks)比较,超过它则把当前个股的信息替换掉数组
StocksStrength之前的最小值,并且存入它对应在数组的位置。
下图是对应的这个例子的绩效报告截图:
*本文介绍的方法和代码仅供学习参考,不构成任何投资建议。
代
码
获
取
▼
MC付费会员专属服务
本文代码为MC年会员专属季度代码
MC付费用户可在软件端公告处
/ 如何开通MC年会员 /
1.MC14内盘期货开通
▼
内盘期货:扫码进官网→购买内盘会员→登录/注册账号→付费自动开通
证券服务:扫码添加MC业务经理,咨询开通MC证券服务(5000元/年)
官网链接:www.multicharts.cn
▼