大智慧帮助
操作说明大智慧公式语言策略交易平台主要包括如下步骤:
1、开发策略公式在明确投资思路之后,利用大智慧的公式管理开发策略公式,也可以利用任何文本编辑工具,按照公式语言语法先行编制好策略公式。打开大智慧策略投资终端,在报价牌、分时走势图、技术分析图等行情界面环境下按快捷键Ctrl+F进入公式管理器,进入“分组”页,
打开“技术指标”根目录,找到“策略公式”子目录,类似如下图。
如果在技术指标中找不到“策略公式”,可选择技术指标,单机右键,选择“新建公式组”,手工建立子目录“策略公式”。
点击新建按钮,将已经编写好的策略公式,复制到公式编辑器中,定义好公式名称、公式描述,类似如下图。
提醒:“公式加密”选项之前不打勾,如果打勾,当前版本下,在策略启动时,会报“指标公式不规范”的提示。
2、调试策略公式如果策略公式能够正常保存,则没有语法错误,如果不能正常保存,则会有语法错误提示。在语法正确之后,点击工具栏中的“调式”按钮 ,可以对策略公式进行调试。策略公式调试过程样例图如下。
只有大智慧仿真账号登录后,遇到ASendOrder时才会发送委托。
3、策略公式运行准备工作打开策略交易平台,设置策略参数和对应的证券名单,管理策略运行状态等。
3.1 进入策略交易打开含有策略交易平台功能的智能投研平台,在右上角会发现“策略”菜单,类似下图。如果具有权限,而且不能看到“策略”,则可能是首次安装版本,请过几分钟重新启动行情客户端程序,重新启动时会进行自动升级。
点击“在线客服”下的“策略交易简介”,类似下图。
若用户点击右上角“策略”菜单或导航栏中的“交易平台”,则会进入“策略交易平台”,类似下图。
3.2 登录交易账号点击登陆之后,出现如下登陆管理窗口,可以选择一个环境进行测试。
目前支持的环境有:大智慧仿真,券商定制版支持华鑫仿真、华鑫7*24、华鑫实盘现货。
业务系统上方面,目前只支持对接证券现货交易,不支持信用交易和股票期权业务。
券商定制版环境下,如果要选择“华鑫仿真”则需要去华鑫金融科技网站https://n-sight.com.cn/注册个人测试账号。
可以用大智慧仿真进行测试,大智慧仿真测试环境中的账号与大智慧客户端登录账号一致,初始资金为500万元。
登陆成功之后,手工点击刷新图标,会更新资金和持仓信息如下界面。
登录策略交易请务必设置系统时间同步:
3.3 设置策略参数设置策略参数:切换到“策略设置参数”页面,选择已经开发好的策略公式,设置策略公式对应的参数,类似如下界面。
选择“策略公式名称”:
策略公式名称下拉框中的内容来自于“公式管理器”里“技术指标”下的“策略公式”中的公式名称。
选择策略对应的“运行数据周期”:
通常为“Day”或“Tick”,分别表示为策略运行在日K线或逐笔数据。
设置风险控制参数:
每秒钟最多买卖笔数设置为1,是指一个策略中,有多只股票的情况下,一秒钟内最多同时触发1笔买卖委托,
另外的委托单请求会是返回错误。
每秒钟最多撤单笔数设置为1,是指一个策略中,1秒中内触发多笔撤单,只有第1笔会发送,其它的撤单请求会返回错误。
为策略设置关联登录账号:
在关联登录账号处,选择一个拟关联的账号,点击“增加关联”按钮,完成添加策略关联账号。
目前约定一个策略只能关联一个登录账号,如果要更换账号,需要先取消原关联账号,再重新选择要关联的账号。
允许运行过程增加股票:
是指策略在运行过程中是否可以向策略中增加股票名单。
为策略增加证券名单:
策略需要有计划地执行证券名单,在此处为策略添加证券名单上,不在名单中股票,策略不会起作用。
可以添加单个股票,也可以批量导入。
批量导入的文件为TXT文本文件,每行一只股票,格式为市场加代码,比如:SH601519。
可以用“一键清空”按钮清空当前策略的证券名单。
为个别股票设置单独的个性化参数:
如果策略有参数,用户希望股票在执行策略时用到不同的参数值,可以为某只证券设置单独的策略参数。设置前先选择股票,
再点击右侧的“编辑”按钮。比如:网格交易策略中每个股票买卖数量不一致,可以在此设置。
提醒:如果在公式中使用INPUT定义的输入参数,则需要将参数调整到下图界面参数设置中,方可进行个性化设置。
比如:公式中有“INPUT:ALG(21,1,100),MRCS(1,1,5),KSRQ(1210101,700101,1340101);”,
需要注释掉公式中INPUT定义,手工在上图中增加参数名为ALG、MRCS、KSRQ参数。
3.4 加入策略到运行池
我们为策略公式设计了运行池,用户设置好策略参数之后,要点击“加入策略运行池”按钮,将设置好的策略加入到策略运行池,
在策略运行池中管理策略启动、停止等行为。
4、策略平台中启动策略4.1 准备环境数据策略运行之前需要下载完整的数据,选中“常用”菜单下的“下载数据”,会出现类似下图界面,选中左侧所有数据类型。
4.2 启动策略公式准备好数据,将策略加入运行池之后,就可以点击“启动”,开始运行策略,出现类似如下界面。
为了节约系统资源,目前运行状态中的信息没有定时刷新,需要手工点击“刷新”按钮查看策略执行的变化情况。
4.3 查看策略执行日志
在策略运行池中点击“策略名称”可以看到该策略执行日志,日志是由用户通过TWriteLog函数记录的内容,如下图。
4.4 查看策略证券名单在策略运行池中点击“证券个数”可以看出该策略对应的证券名单如下图。
5、策略平台中停止策略请在闭市后,手工停止策略,然后再关闭终端程序。关闭策略的方法,在策略运行池中,点击“停止”按钮,停止对应的策略。
6、手工交易在策略交易平台中为用户提供手工交易功能,包括买入、卖出、撤单操作,请用户谨慎使用,操作界面详见下图。提醒:为了提升操作流畅性,用户点击“买入”、“卖出”按钮时,没有再弹出让用户确认的提示框,请在使用时谨慎操作。
7、退出交易账号点击在策略交易平台右上角的登录链接,打开登录对话框,可以看到“大智慧行情账号”下登录过的各种环境的交易账号和登录状态,在登录状态为“已登录”的操作列上,点击“退出登录”,详见下图。
五、支持业务品种大智慧策略交易平台以交易沪深股票、基金、可转债为主体,支持的业务品种受到行情推送机制、大智慧仿真柜台、券商仿真柜台、券商生产柜台的约束,目前已知支持的业务品种如下,后续会根据用户需求和业务变化更新支持的业务品种。
1、大智慧仿真系统支持的业务范围业务名称 交易类别 大智慧策略交易 沪深普通A股(含创业板) 普通买卖 支持 科创板 普通买卖 支持 上证普通LOF基金 普通买卖 支持 深证普通LOF基金 普通买卖 支持 上证分级基金 普通买卖 支持 深圳分级基金 普通买卖 支持 沪深封闭基金 普通买卖 支持 单市场股票ETF 普通买卖 支持 沪深债券ETF 普通买卖 支持 ST及*ST股票 普通买卖 支持 可转债买卖 普通买卖 支持 2、华鑫定制版支持的业务范围受到几个方面的约束:1、大智慧策略交易模块中支持的范围;2、华鑫证券奇点系统支持的业务范围。
策略交易对接华鑫普通证券柜台系统支持的业务范围预期如下,具体支持内容详见券商官网:
业务名称 交易类别 奇点普通证券 大智慧策略交易 沪深普通A股(含创业板) 普通买卖 支持 支持 科创板 普通买卖 支持 支持 上证普通LOF基金 普通买卖 支持 支持 深证普通LOF基金 普通买卖 支持 支持 上证分级基金 普通买卖 支持 支持 深圳分级基金 普通买卖 支持 支持 沪深封闭基金 普通买卖 支持 支持 单市场股票ETF 普通买卖 支持 支持 沪深债券ETF 普通买卖 支持 支持 ST及*ST股票 普通买卖 买入受限,卖出支持 支持 可转债买卖 普通买卖 支持 支持 六、新增函数说明1、公式用法简述大智慧公式系统使用说明可以查看在线帮助http://help123.dzh.com.cn/help123/中的“公式系统说明”章节。
在公式中支持使用VARIABLE关键字自定义变量,包括字符、数字和一维数组类型,需要放在所有公式语句之前。对变量的定义和赋值样例如下:
{大括号表示注释代码段,不支持嵌套注释}{ := 表示给变量赋值 }{ VARIABLE后跟随的= 表示定义变量时赋予的初始值 }VARIABLE:字符变量='',数字变量=0;字符变量:='大智慧';数字变量:=600;
2、策略交易新增函数注:下列函数在终端中也能够查到,此处描述只是便于用户了解。具体说明和用法以终端中的函数说明为准。
序号 函数名称 中文名称 备注 1 StrSplit 字符串分割 2 TGetMarketStatus 获取行情交易状态 3 ASendOrder 发送委托 4 ACancelOrder 撤销委托 5 AGetFundInfo 查询资金信息 6 AGetHoldInfo 查询持仓信息 7 AGetOrderInfo 查询委托信息 8 TGetAvailCapital 获取可用资金 9 TGetHoldAvailAmount 获取持仓可用量 10 AGetCanBuyQty 获取可买数量 11 TGetOrderStatus 获取委托状态 12 TWriteLog 写入日志 13 TGetHoldAvgPosPrice 获取持仓成本价格 14 TStraStockStop 停止执行某个股票
注:委托状态:0:失败;1:未报;2:已报:3:部分成交;4:全部成交;5:作废;6:全部撤单;7:部成部撤;8:撤单已报。
新增函数详细描述如下:StrSplit 分割字符串阐释:按指定的分割符对目标字符串进行分割,返回第几个索引域的值。参数:string strSource, //源字符串(必填)string strSplit, //分割符(必填)int nPos //字符串位置(必填),从1开始返回:类型:string成功:返回指定位置上的字符串失败:返回'ERROR'例如:temp := StrSplit('123|456|789','|',2);表示用'|'符号分割'123|456|789'字符串,获取第2个位置的字符串'456',并将它赋值给temp。
TGetMarketStatus 获取行情交易状态阐释:获取股票行情交易状态,返回整型数字,意义对应为:1-开市前、2-开盘集合竞价、3-连续交易、4-收盘集合竞价、5-熔断、6-熔断(至闭市)、7-盘中休市、8-盘后交易、9-已闭市。参数:string strProductCode //股票代码(选填),不填则会返回策略对应证券代码的交易状态。返回:类型:int例如:盘中交易时间调用TGetMarketStatus("SH601***"),返回大智慧的交易状态为3,表示当前为连续交易。
ASendOrder 发送委托阐释:向经纪商柜台交易系统发送委托请求。参数:int nBusinessType, //业务类型(必填),1-买入、2-卖出int nPriceType, //价格类型(必填),1-指价、2-市价、3-盘后价float fOrderPrice, //委托价格(必填)int nOrderAmount, //委托数量(必填)string strProductCode //股票代码(选填),不填是用策略对应证券代码发送委托。返回:类型:string成功:返回委托号失败:返回'ERROR'例如:发送一笔委托,并将返回的委托号保存到WTH中。ORDERNO := ASendOrder(1,1,买入价格, 网格买入数量);TSetLocalVar('买委托号1',ORDERNO);
ACancelOrder 撤销委托阐释:向经纪商柜台交易系统发送撤销委托请求。参数:string strOrderNo //委托号(必填)返回:类型:string成功:返回'OK'失败:返回'ERROR'例如:撤销委托号为’1234’的委托。RETCANCELOD := ACancelOrder(‘1234’);IF STRCMP(RETCANCELOD,'OK') = 0 THEN BEGINTSetLocalVar('提示信息','撤单成功');END
AGetFundInfo 查询资金信息阐释:查询策略公式对应登录账号在经纪商柜台系统中的资金信息。参数:无返回:类型:string成功:返回'可用资金|冻结资金|总市值|总资产|期末资金'失败:返回'ERROR'例如:在策略公式中查询资金信息,则使用如下写法。FUNDINFO1 := AGetFundInfo();IF STRCMP(FUNDINFO1,'ERROR') <> 0 THEN BEGIN可用资金 := STRTONUM(STRSPLIT(FUNDINFO1,'|',1));END
AGetHoldInfo 查询持仓信息阐释:查询已经登录账号在经纪商柜台系统中的持仓信息。参数:string strProductCode //股票代码(选填)输出:类型:string成功:返回'持仓编号|代码|名称|持仓量|可用量|持仓成本价|最新价|市值|盈亏金额'失败:返回'ERROR'例如:在策略公式中查询证券代码对应的持仓信息,则使用如下写法。策略证券代码 := MARKETLABEL+STKLABEL;STOCKINFO1 := AGetHoldInfo(策略证券代码);IF STRCMP(STOCKINFO1,'ERROR') <> 0 THEN BEGIN持仓量 := STRTONUM(STRSPLIT(STOCKINFO1,'|',4));可用量 := STRTONUM(STRSPLIT(STOCKINFO1,'|',5));END
AGetOrderInfo查询委托信息阐释:查询已经发生的委托信息。参数:string strOrderNo //委托号(必填)返回:类型:string成功:返回'委托号|委托日期|委托时间|代码|名称|业务类型|价格类型|委托量|委托价格|成交状态|成交量|成交均价',成交状态:未报、已报、部分成交、全部成交、作废、撤单。失败:返回'ERROR'例如:查询一笔委托,并取出成交状态,则使用如下写法。BUY_ORDERINFO := AGetOrderInfo(买委托号);买委托状态 := STRSPLIT(BUY_ORDERINFO,'|',10);
TGetAvailCapital 获取可用资金阐释:查询策略公式对应登录账号在经纪商柜台系统中的可用资金信息。参数:返回:类型:float // 可用资金例如:例如:如果只需要获取可用资金,可用此函数替代AGetFundInfo查询资金信息。可用资金 := TGetAvailCapital();
TGetHoldAvailAmount 获取持仓可用量阐释:查询已经登录账号对应标的在经纪商柜台系统中的可用量信息。参数:string strProductCode //代码(选填),不填则返回策略对应证券的持仓可用量返回:类型:int // 可用数量例如:如果只需要获取可卖数量,可用此函数替代AGetHoldInfo 查询持仓信息。可卖量:=TGetHoldAvailAmount('SH601***');
AGetCanBuyQty 获取可买数量阐释:根据拟用资金、委托价格计算可买数量。参数:float fCapital, //总资金(必填)float fPrice //单价(必填)返回:类型:int //可买数量例如:拟用10万元资金,以8.88元买入大智慧,可以买入多少股,可用此函数。可买量:=AGetCanBuyQty(100000.00, 8.88);
TGetOrderStatus获取委托状态阐释:获取对应委托号的委托状态。参数:string strOrderNo //委托编号(必填)返回:类型:int//委托状态编号,字典如下:// 0:失败;1:未报;2:已报:3:部分成交;4:全部成交;// 5:作废;6:全部撤单;7:部成部撤;8:撤单已报。
TWriteLog 写入日志阐释:将提示信息或错误信息写入日志文件,可以在界面中查询到日志记录。参数:int nShow, //是否显示到日志中 0:不显示(策略执行日志中看不到) 1:显示string strLog //日志字符串(必填)返回:无
TGetHoldAvgPosPrice 获取持仓成本价格阐释:获取持仓中某只股票的成本价格参数:string strProductCode //股票代码(选填) 不填则表示当前执行的股票返回:类型:float // 持仓成本价格
TStraStockStop 停止执行某个股票阐释:停止执行策略池中的某个股票,提升策略执行效率。参数:无返回值:类型:int // 成功返回1,失败返回0
七、注意事项1、复权参数设置由于复权设置会影响公式计算数据,建议在复权设置中使用“前复权”、“等比复权”、“成交量复权”。操作方法:在技术分析图(即K线图)上单击右键,弹出菜单中的“复权设置”,将“前复权”、“等比复权”、“成交量复权”前面打上勾,
详见下图。
八、常见问答问:什么是策略交易?
我们的理解是,在投资过程中,通常涉及到基本面分析和技术面分析,而且两者是相辅相成的,基本面关注上市公司的行业地位,
成长性,偏重管理团队、产品口碑、财务数据等,技术面侧重研究K线图中的价量时空关系,比如:K线形态、价格空间、
成交量的放大与缩小等。将基本面和技术面结合,将投资思想转化到计算机能够执行的策略公式上,
形成符合特定场景的投资策略,这个过程习惯上称为策略交易。
问:如何快速入门?
学习使用策略交易首先要树立一定可以学会的信念,再认真学习大智慧公式语言,特别是前几节基础内容,
然后列出一系列准备解决的场景,带着疑问逐步实现能够解决场景的策略公式。
问:策略交易运行机制是什么样的,支持多线程吗?
大智慧策略交易平台里,会为每个启动的策略单独开辟一个策略执行线程,在线程中会循环执行策略公式下的证券名单,
如果所有证券名单执行完累计耗时不足一秒,会等待到一秒。如果累计耗时超过一秒,则不再等待,执行下一批次。
不同的策略,执行过程之中,相互不影响。
问:怎样提升策略公式执行效率?
大智慧公式体系是采用C++语言实现,基础函数层执行效率非常高。如果用户还能从公式应用层考虑到性能优化需求,
则可以更好地提升公式执行效率。比如:策略公式尽可能简化。比如:将选股公式和日内执行公式分开,
不仅仅可以通过选股减少证券名单数量,也可以简化日内执行公式,提高公式执行效率。在策略允许的情况下,
使用单个股票累计成交量是否增加判断是否有最新行情,如果没有新的行情,则可以跳过公式中的复杂逻辑,降低单个股票执行耗时。
问:目前策略交易已经支持的市场有哪些?
策略交易支持的市场受到几个方面的约束:
1、该市场是否具有行情推送机制。
2、策略交易模块中已经考虑到了哪些市场,目前已经到了的有:上海市场、深圳市场、北京市场部分场内竞价交易品种。
目前只是支持普通交易,不支持信用交易和期权交易业务。
3、策略交易对接的仿真环境或者实盘环境支持的市场。
问:策略交易中支持什么样的数据周期和时间段?
策略公式执行时需要选择数据周期,可以选择的有Tick、分钟、日等级别。
策略公式中有些函数是有能够使用的数据周期约束,需要用户做好测试和验证。
策略公式中有些函数需要历史数据,使用之前需要下载完整的历史数据。
问:行情数据多久推送一次?
大智慧收费版本行情客户端具有行业内独特的行情推送机制,即使用户没有在看某个市场的股票,
会将推送市场范围内的所有股票行情及时推送到客户端。
只要大智慧行情服务器收到交易所发布的行情会及时推送到客户端,不存在多久推送一次的参数控制。
问:提供哪些基本面数据?
在大智慧行情终端中,内嵌了数百种专业财务数据,为每项财务数据单独编制数字编号,通过访问函数和数字编号、
报告期等参数能够方便地获取数据内容。
问:有没有集合竞价数据?
大智慧行情终端中有集合竞价时的行情数据,用户在开发策略时要考虑到此时数据的特殊场景。
大智慧行情终端会提供函数获取当前股票的交易状态,根据交易状态可以判断当初属于集合竞价,还是连续交易等状态。
问:策略公式是否可以回测?
大智慧行情终端中,在“公式管理”菜单有“系统测试平台”,主要用于公式回测,提供测试结果分析。
问:策略下单会上传策略到公司服务器吗?
策略公式是用户按照大智慧公式语法开发的脚本,存放于用户电脑的公式管理器中,策略公式不会上传到公司服务器上。
问:非交易时段, 策略能运行吗?
非交易时间段,策略虽然也可以运行,但是由于闭市之后不会再有行情推送数据,用户需要考虑到此时策略运行之后的效果。
问:同一个账户在不同电脑上登录,是否可以同时交易?
大智慧行情终端账号不能同时登录在多台电脑上,出现多台电脑登录时,后面一次登录会将前一次的登录账号踢出。
交易账户是否能够在不同电脑上同时登录,这受到券商系统的约束,通常是一个账户能够在3台及以下的电脑上登录。
问:策略交易平台连接的是模拟仿真还是连接的实盘?
大智慧策略交易平台中定义了环境,既提供了仿真模拟交易环境,有提供了实盘交易环境。
大智慧仿真环境账号与大智慧行情终端账户一致,并为用户初始化500万模拟交易资金。
其它环境账号需要用户根据文档进行开通,或者致电大智慧销售服务、客户服务热线电话。
问:怎么开通策略交易?
需要向大智慧购买具有策略交易模块功能权限的终端产品,并咨询您的客户经理。
问:哪里学习策略交易,有没有系统推荐的策略参考学习?
策略交易本质是一种数量化投资的思维,互联网上有很多学习资料,用户可以尝试着将自己的想法用公式实现出来,
然后再不断进行迭代完善。我们提供的使用文档中会提供各种学习资料,其中也会有用于学习的策略案例。
就像学习做菜,不仅要看菜谱,更重要的是亲自去做一道菜。
问:使用这个功能如果导致错误是否赔钱?
大智慧为服务投资者提供了策略交易功能,在最终产品交付给用户使用时会经过严格的检测环节,
但还可能是存在隐藏的未发现的风险,请用户正式进入实盘交易时知晓各种风险因素。
问:使用策略交易时,对电脑系统软件、硬件配置有何要求?
策略交易需要同时接收四千多只股票行情,快速运算公式系统,还与用户公式复杂度相关。总体而言,
电脑CPU性能、硬盘读写性能越高,对策略交易越有正面帮助作用。建议电脑配置为64位Windows 10版本及以上操作系统、固态硬盘、8G及以上内存。
问:策略交易能有哪些好处?
大智慧提供的策略交易功能只是一种工具,使用效果取决于使用者。
可以帮助有想法、有需要的用户解决相应的难题。可以不断培养用户使用数量化思维做投资,尽可能地减少投资过程中的非理性行为。
用户可以将投资想法,编制成策略公式用历史数据进行回测,不仅节约了时间成本,还可能会发现数据与日常的感觉存在偏差。
通过回测数据验证想法相对靠谱之后,再使用仿真环境进行验证,避免动用真金白银去市场上试错。
问:策略交易过程中要做什么操作?
策略公式在启动之前需要做好各项准备工作,执行过程中主要会关注一些统计数据和策略执行日志,
观察策略执行是否符合用户预期结果。如果对接生产环境时出现不符合预期结果时,首先要停止执行策略,仔细排查原因,并且在仿真环境中仔细测试之后,方可跑在实盘环境中。
问:交易策略是自己写还是有提供免费交易策略?
大智慧策略交易平台是一套基于容易学习的指标公式基础之上开发出来的策略交易平台,它本身不提供交易策略,
需要用户自行编写符合用户自身需要的策略公式。
策略交易平台相关文档中涉及到的策略公式学习案例,仅作为用户掌握策略公式编制方法的学习材料,不是在向用户提供免费交易策略。