环球网校是美国纳斯达克上市企业欢聚时代(NASDAQ:YY)旗下品牌 | 住房和城乡建设部 建筑人才培训合作单位
您现在的位置在: > 财会考试 > 注册会计师 > 考试动态 >

A股做量化的大部分使用教程,基本没见有教怎么用程序下单

2022-12-18 来源:网络 作者:佚名

目前不少在A股做量化的大部分使用,优矿,米筐,聚宽等等,无论教程,还是实际操作,基本没见有教怎么用程序下单,实盘交易的。

#

而退而求其次使用按键精灵,模拟点击交易软件进行点击下单,非常不稳定,无法判断下单后是否成交,也无法实时获取行情数据。如果使用或者新浪接口数据,扫描一次全市场的行情用时很久且不稳定,等扫描结束,再下单,此时价格可能已经是几分钟前的了,且此类接口调用次数多是会被封IP的。

#

笔者使用的是券商提供的量化软件:。是恒生电子研发的提供给机构使用的程序化交易软件。提供策略回测,下单API接口a股交易费,实时行情获取,并且使用的开发语言,易于上手。 #

策略回测与实盘交易

#

研究页面

#

研究页面,熟悉 的朋友对这个界面肯定很熟悉。 #

研究的页面实际就运行你逐行输出调试程序,了解每个函数的具体使用,或者你策略的中途结果调试。 #

回测策略 #

实际代码需要在回测策略里面写,写完后确定无误a股交易费,就可以放在仿真环境下真实运行。如果你运行得到的结果很满意,那么就可以直接部署到实盘服务器上。实盘服务器是在券商那边,不需要个人购买服务器,也不需要本地开着这个,就是说不需要在个人电脑上一直开着跑,你的最终代码和程序是在券商服务器上部署与运行,除非有报错异常停止,不然在你不暂停或者停止的前提下,可以一直运行下去。

#

条件满足后下单

#

可视化量化

#

同时也提供一些常见的现成的量化策略,选中后只要鼠标点点点也能够自动化跑这些策略了,当然里面很多参数都可以用鼠标点点点修改。

#

接口文档也非常详细: #

一些常见策略代码:

#

双均线策略

#

 1def?initialize(context): 
#

2????#?初始化此策略
3????#?设置我们要操作的股票池,?这里我们只操作一支股票
4????g.security?=?'600570.SS' #
5????set_universe(g.security)
6????pass
7
8#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
#

9def?handle_data(context,?data):
10????security?=?g.security #
11
12????#得到十日历史价格
13????df?=?get_history(10,?'1d',?'close',?security,?fq=None,?include=False)

#


14
15????#?得到五日均线价格
16????ma5?=?round(df['close'][-5:].mean(),?3) #
17
18????#?得到十日均线价格
19????ma10?=?round(df['close'][-10:].mean(),?3) #
20
21????#?取得昨天收盘价
22????price?=?data[security]['close']

#


23
24????#?得到当前资金余额
25????cash?=?context.portfolio.cash
26 #
27????#?如果当前有余额,并且五日均线大于十日均线
28????if?ma5?>?ma10:
29????????#?用所有?cash?买入股票
#

30????????order_value(security,?cash)
31????????#?记录这次买入
32????????log.info("Buying?%s"?%?(security))
#

33
34????#?如果五日均线小于十日均线,并且目前有头寸
35????elif?ma5?and?get_position(security).amount?>?0:

#


36????????#?全部卖出
37????????order_target(security,?0)
38????????#?记录这次卖出

#


39????????log.info("Selling?%s"?%?(security))
#
#

 1def?f_expma(N,m,EXPMA1,price): # 
2????a?=?m/(N+1)
3????EXPMA2?=?a?*?price?+?(1?-?a)*EXPMA1
4????return?EXPMA2?#2为后一天值
#

5
6#定义macd函数,输入平滑系数参数、前一日值,输出当日值
7def?macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,price):
#

8????EXPMA12_2?=?f_expma(N1,m,EXPMA12_1,price)
9????EXPMA26_2?=?f_expma(N2,m,EXPMA26_1,price)
10????DIF2?=?EXPMA12_2?-?EXPMA26_2
11????a?=?m/(N3+1)

#


12????DEA2?=?a?*?DIF2?+?(1?-?a)*DEA1
13????BAR2=2*(DIF2-DEA2)
14????return?EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2
#

15
16def?initialize(context): #
17????global?init_price
18????init_price?=?None
19????#?获取沪深300股票 #
20????g.security?=?get_index_stocks('000300.SS')
21????#g.security?=?['600570.SS']
22????#?设置我们要操作的股票池,?这里我们只操作一支股票 #
23????set_universe(g.security)
24
25def?handle_data(context,?data):

#


26????#?获取历史数据,这里只获取了2天的数据,如果希望最终MACD指标结果更准确最好是获取
27????#?从股票上市至今的所有历史数据,即增加获取的天数
28????close_price?=?get_history(2,?'1d',?field='close',?security_list=g.security)
#

29????#如果是停牌不进行计算
30????for?security?in?g.security:
31????????if?data[security].is_open?>0: #
32????????????global?init_price,EXPMA12_1,EXPMA26_1,EXPMA12_2,EXPMA26_2,DIF1,DIF2,DEA1,DEA2
33????????????if?init_price?is?None: #
34????????????????init_price?=?close_price[security].mean()#nan和N-1个数,mean为N-1个数的均值
35????????????????EXPMA12_1?=?init_price
36????????????????EXPMA26_1?=?init_price
37????????????????DIF1?=?init_price
#

38????????????????DEA1?=?init_price
39????????????#?m用于计算平滑系数a=m/(N+1)
40????????????m?=?2.0
#

41????????????#设定指数平滑基期数
42????????????N1?=?12
43????????????N2?=?26 #
44????????????N3?=?9
45????????????EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2?=?macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,close_price[security][-1])
46????????????#?取得当前价格

#


47????????????current_price?=?data[security].price
48????????????#?取得当前的现金
49????????????cash?=?context.portfolio.cash
50????????????#?DIF、DEA均为正,DIF向上突破DEA,买入信号参考 #
51????????????if?DIF2?>?0?and?DEA2?>?0?and?DIF1?and?DIF2?>?DEA2:
#

52????????????????#?计算可以买多少只股票
53????????????????number_of_shares?=?int(cash/current_price)
54????????????????#?购买量大于0时,下单 #
55????????????????if?number_of_shares?>?0:
56????????????????????#?以市单价买入股票,日回测时即是开盘价 #
57????????????????????order(security,?+number_of_shares)
58????????????????????#?记录这次买入
59????????????????????log.info("Buying?%s"?%?(security))

#


60????????????#?DIF、DEA均为负,DIF向下突破DEA,卖出信号参考
61????????????elif?DIF2?0?and?DEA2?0?and?DIF1?>?DEA1?and?DIF2?and?get_position(security).amount?>?0:

#


62????????????????#?卖出所有股票,使这只股票的最终持有量为0
63????????????????order_target(security,?0)
64????????????????#?记录这次卖出
#

65????????????????log.info("Selling?%s"?%?(security))
66????????????#?将今日的值赋给全局变量作为下一次前一日的值
67????????????DEA1?=?DEA2
#

68????????????DIF1?=?DIF2
69????????????EXPMA12_1?=?EXPMA12_2
70????????????EXPMA26_1?=?EXPMA26_2
#
#

软件与交易接口开通条件:

#

开通该券商后,存入资金50W放2周即可开通,开通后可取出。

#

券商的交易费率为股票万一且开通量化接口后可免五,可转债沪百万分之二,深十万分之五,基金万0.6 免五,非常厚道,因为不少面向机构的量化交易软件的佣金是万2.5的,且开户门槛高,基本是500W以上,比如华泰matic,开通条件是1000万。 #

所以笔者还是很推荐目前此券商的量化交易接口。 #

需要开通咨询了解的朋友可以扫码联系: #

责编:admin 返回顶部  打印

关于我们联系我们友情链接网站声明网站地图广告服务帮助中心