1、函数 AMEMDATA1:函数 AMEMDATA2:快速入门:第1步:从A计划软件文件夹里提供的ADLL.dll复制到大智慧或者支持函数接口的行情软件(分析家、飞狐等)的文件夹里。第2步:以大智慧股票池为例:在公式里加入如下示例监控:C10 AND C0 THENBEGINBuy0:=ADllA(1,3000*监控,0,0);END;该DLL的调用如上所示,A计划专用DLL目前提供7个专用的A函数。上例意为当达到买入条件时买入3000元的股票。 相关学习视频及资料链接地址:视频及教程A计划股票自动交易论坛函数调用方法及参数解释:函数 ADllA函数解释从ADLL这个动态链接库中调用A函数,后面
2、跟括号,括号内最小2个参数,最大包含4个参数。每个参数间用半角逗号分隔。参数11 买入 0 卖出 (融资融券:1担保品买入 0担保品卖出 2融瓷买入 3融券卖出 4买券还券 5卖券还款) 参数2买卖资金 该参数用来表示需要买入股票所用的资金以及卖出需要卖出多少资金的股票。(整数和实数均可) 参数3报价 该参数由用户在公式里代入报价,也可以设为0由A计划软件按最新价处理。如果该参数由用户直接给出,则直接按用户的报价进行下单,比如用户可以直接计算好一个优化后的报价,或者直接计算出涨停价。A计划在计算时,如果该参数大于0即表示由用户的报价来报单。如果该参为0,则由A计划按当时股价的最新价以及在A计划
3、软件里设置的报价优化后进行委托报单处理。 注:此参数可以省略,如省略直接由A计划负责报价,如此参数省略则第4个参数也应该省略。参数4发送码 指定由哪个与此发送码相同的接收码的A计划软件接收并交易。(必须为整数)注:此参数可省略,默认值为0。如第3个参数省略,则此参数一定要省略。调用示例假设我们的条件公式为:1、B0:(1,3000*监控) 只使用2个参数 买入3000元的股票由接收码为0的A计划软件负责接收和报价交易。2、B0:(1,3000,DYNAINFO(54)*监控) 使用3个参数 买入3000元的股票,并且用涨停价报价,由接收码为0的A计划软件负责接收。3、B0:(1,3000,0*
4、监控,0) 买入3000元的股票由接收码为0的A计划软件负责接收和报价交易。4、B1:(0,3000,0*监控,1) 卖出3000元的股票由接收码为1的A计划软件负责接收和报价交易。5、B2:(2,10000,最新价*监控,2) 融资买入1万元的股票由接收码为2的A计划软件负责接收和交易,并且报价由大智慧里用户设定的变量“最新价”报单。6、S0:(5,10000,B*监控,0) 卖券还款1万元的股票由接收码为0的A计划软件负责接收和交易,并且报价由大智慧里用户设定的变量“B”报单。注意第3个参数,参数*监控(即为条件变量),变量指满足条件的变量。如 监控: 那么在调用是即为参数*监控,函数中的
5、后面3个参数任何一个参数都可以*变量并且必须要有一个参数*变量。如果后面3个参数中不管哪个参数是由计算或者函数计算的参数变量,均要在调用该参数时*变量。具体见后面示例。函数 ADllAN与A函数用法相同,此函数用于按数量交易。使用方法参考A函数函数 ADllAC清仓函数,调用此函数可向指定的A计划发送清仓命令。A计划收到后即对能读取的仓位可卖数量=100的股票全部清仓卖出。参数4个,第1个参数必须为0;第2个参数为发送码,即让哪个有相同接收码的A计划做清仓;第3个参数为清仓比例,如0.5即为清仓时每个持仓个股只清一半;第4个参数为报价优化,如0.005即报价时按最新价-最新价*0.005做为卖
6、出报价。注:参数3、4均可省略,默认参数3的值为1,参数4的值为0.005;如果按比例清仓时计算卖出股数少于100按100股卖出,如个股可卖数量为100,清仓比例为0.5,计算结果小于100则按100处理,如果参数3为负数或者大于1则自动将此参数设为1。调用示例3000; (假设监控对象为上证指数,当指数在3000点之上即清仓)调用示例:(0,0*监控) 向接收码为0的A计划发送清仓命令。(0,1*监控) 向接收码为1的A计划发送清仓命令。(0,0*监控,0.5) 向接收码为0的A计划发送清仓命令。清仓时只清可卖数量的0.5倍。(0,0*监控,0.3,0.008) 向接收码为0的A计划发送清仓
7、命令。清仓时只清可卖数量的0.3倍,报价时按千分之8优化报价(最新价-最新价*0.008)。(0,0*监控,0.4,0) 向接收码为0的A计划发送清仓命令。清仓时只清可卖数量的0.4倍,报价时不优化直接按最新价报价)。函数ADllASET1、此函数可控制A计划本交易中的启动买入、启动卖出开关。你可以利用这个函数实现风险控制,比如当大盘某个指标出现时,可以控制A计划不再买入,当符合某个条件时,可以打开A计划的启动买入开关,以继续买入符合条件的股票;2、加入或者删除A计划禁止买入或者禁止卖出列表。可以利用该函数在股池中调用将股票代码加入到A计划的禁止买入或者禁止卖出列表。或者从上述列表中移出股票代
8、码。参数为3个,第1个参数 0代表设置启动卖出 1代表设置启动买入;第2个参数0为关闭1为打开;用于增删禁止买卖列表:第1个参数设置为2代表操作禁止买入列表,第2个参数1为加入,0为移出;第1个参数设置为3代表操作禁止卖出列表,第2个参数1为加入,0为移出。参数3发送码(忽略此参数默认为0)。2000 AND C (假设监控对象为上证指数,其在2000-3000之间的点位)1、aa1:ADllASET(1,0*监控) 将接收码0的A计划的启动买入设置为不勾选状态,使该A计划不再具有买入功能。2、aa1:(1,1*监控) 将接收码0的A计划的启动买入设置为勾选状态,使该A计划具有买入功能。3、a
9、a1:(1,1*监控,1) 将接收码1的A计划的启动买入设置为勾选状态,使该A计划具有买入功能。4、aa1:(0,0*监控) 将接收码0的A计划的启动卖出设置为不勾选状态,使该A计划不再具有卖出功能。5、aa1:(0,1*监控) 将接收码0的A计划的启动卖出设置为勾选状态,使该A计划具有卖出功能。6、aa1:(0,0*监控,1) 将接收码1的A计划的启动卖出设置为不勾选状态,使该A计划不再具有卖出功能。增删禁止买卖列表示例代码:1、符合条件加入到A计划的禁止买入列表AA:10 and C0 thenBeginAdd1:(2,1*AA);End;2、符合条件从A计划的禁止买入列表移出(2,0*A
10、A);3、符合条件加入到A计划的禁止卖出列表(3,1*AA);4、符合条件从A计划的禁止卖出列表移出(3,0*AA);函数 ADllASAVE保存自定义数据函数 此函数可以在大智慧存储你想存的数据此函数可以有4个参数,最少要填写2个参数,使用参数4,必须要有参数3。存储在自定义数据的序号XX,XX可以取值范围为大于0的整数 大智慧对应的自定义数据名称应为axx你想存的数据 取值范围 实数。如果此参数2填写值为8888,则表明是获取该自定义数据最后一个数据,如无数据则返回-1(见调用示例)此参数可省略,如省略则覆盖写数据,如填写大于0的数值则按添加方式写数据此参数可省略,如参数3省略,此参数无效
11、。参数填0或者9有效(0代表大盘指数,9代表版块指数),指明该写入是指数数据。仅支持上海和深圳指数函数示例ASAVE1:ADllASAVE(1,50*监控) 存储数据50到名称为a1的自定义数据中 覆盖原数据ASAVE1:(1,C*监控) 存储收盘价到名称为a1的自定义数据中 覆盖原数据ASAVE1:(1,C*监控,1) 存储收盘价到名称为a1的自定义数据中 在原数据后追加ASAVE1:(1,C*监控,0,0) 存储收盘价到名称为a1的自定义数据中 覆盖原数据,且写入的为指数数据Adata1:(1,8888)或者Adata1:(1,8888*监控) 获取自定义数据a1的最后一个数据给变量Ada
12、ta1Adata7:=ADllASAVE(7,8888)或者Adata1:=ADllASAVE(7,8888*监控) 获取自定义数据a7的最后一个数据给变量Adata7函数ADllABLK删除、添加到大智慧自选股、获取板块中股票个数。函数参数2个。0 从自选股中删除 1 添加至自选股 2 返回该版块中的股票品种总数 3清空该自选股的所有股票 6返回股票在该自选股中是否存在(返回值1存在,0不存在)自选股序号 增删自选股1,此参数值为1*条件假设我们的条件变量 预警 为真if 预警 thenbegind2:ADllABLK(1,2*预警);将符合 预警 条件的股票添加至自选股2中end;if 预
13、警 thenbegind3:(0,1*预警);将符合 预警 条件的股票从自选股1中删除end;(2,1*预警);得到自选股1中的股票品种数,如自选股1中有16个股票,返回值为16end;清空自选股1中的所有股票方法1:del1:(3,1);方法2:if 预警 thenbegindel1:(3,1*预警);end;股票在该自选股中是否存在方法1:IN5:(6,5);返回某股票是否存在自选股5中,返回值1存在0不存在方法2:if 预警 thenbeginIN5:(6,5*预警);返回某股票是否存在自选股5中,返回值1存在0不存在end;函数ADllADIR文件操作函数,可以实现往目录里添加、删除股
14、票,判断某个股票是否在某个目录,判断该目录中股票数量等功能参数2个参数1:对哪个以数字命名的目录进行操作参数2:要实现的功能参数值0 从某个目录中删除股票1 往某个目录中添加股票2 返回某个目录中的股票数3 清空某个目录的股票6 某个股票是否在某个文夹中函数读写目录结构 大智慧文件夹UserDateAdata10.5;if AAbeginadddir1:ADllADIR(1,1*AA);把符合条件的股票代码写到目录1deldir1:(1,0*AA);把符合条件的股票代码从目录1里删除indir1:(1,6*AA);符合条件的股票是否在目录1中cleardir1:(1,3*AA);清除目录1中的
15、所有股票代码dirn:(1,2*AA);返回目录1中的股票数量函数ADllAGET参数2个参数1:获取数据类型参数2:发送码。指向具有相同接收码的A计划连接的帐号进行数据请求调用格式a1:ADllAGET(参数1,参数2*条件变量)注意:如果此函数的返回值为-10000或者-10001表示此函数没有获取到数据,使用此函数时可以先检查返回值。参数参数解释可用资金可用资金:(0,0);直接获取接收码为0所关联的委托软件的可用资金1总资产总资产:(1,1);直接获取接收码为1所关联的委托软件的总资产额2持仓品种持仓品种数:(2,0);直接获取接收码为0所关联的委托软件的持仓品种个数3总市值市值:直接
16、获取接收码为1所关联的委托软件的持仓总市值4持仓比持仓比:(4,1);直接获取接收码为1所关联的委托软件的持仓比返回的数值总市值总资产5保留6个股库存数量条件;0 thenBegin库存数量:(6,1*AA);获取接收码为1的A计划所关联的委托软件的符合条件的个股的持仓库存数量。要在条件中进行判断,否则返回结果不正确。也即在满足条件时需要交易时再去获取个股的相关持仓数据7可卖数量0 thenBegin可卖数量:(7,1*AA);获取接收码为1的A计划所关联的委托软件的符合条件的个股的持仓可卖数量。同上8成本价0 thenBegin成本价:(8,1*AA);获取接收码为1的A计划所关联的委托软件
17、的符合条件的个股的持仓成本价。9判断股票是否在禁止买入列表接收码为0的A计划的禁止买入列表中是否有该股票。判断Y1的返回值,如果值为1表示该股票在禁止买入列表,小于1的值代表不在该列表Y1:(9,0);AA:BeginY1:(9,0*AA);10卖出列表接收码为1的A计划的禁止卖出列表中是否有该股票。判断Y1的返回值,如果值为1表示该股票在禁止卖出列表,小于1的值代表不在该列表(10,1);0 thenBeginY1:(10,1*AA);函数ADllAR在股池中调用此函数可向A计划发送刷新指令。0全部刷新,1只刷新仓位。发送码,指令有相同接收码的A计划软件进行刷新。示例代码:1 ar0:ADl
18、lAR(0,0*预警);向接收码为0的A计划发送刷新委托软件指令2 ar1:(1,1*预警);向接收码为1的A计划发送刷新仓位软件仓位指令函数 ADllAMEMBLK在股池中调用此函数,可以在内存中定义全局变量来实现自选股读写等功能,比文件读写型的自选股读写功能速度快,可以用来代替文件操作型的自选股读写。也可以只用来做全局变量来使用。内存变量名称以数字命名,比如你可以定义一个内存全局变量1 可以对变量1进行读写操作,来实现你现要的功能。数字命名的变量名也可以称为内存序号。本函数需要2个参数,参数1:要实现的功能序号(1:内存增加股票 0:从内存中删除股票 2:某只股票是否在某个内存段里 3:获
19、取某个内存段里的股票数量 4:返回所有用此函数存储的股票数量 5:清除所有用此函数存储的股票) 6:求交集(参数2和参数3为内存序号范围) 参数2:内存变量序号 参数3:当参数1为6时需要设置此参数函数调用示例1:往内存中写股票代码(返回值:1成功 0失败 1出错)ADDMEM:ADllAMEMBLK将符合条件的股票代码写到内存变量序号为1的内存变量里面ADDMEM2:将符合条件的股票代码写到内存变量序号为2的内存变量里面示例2:从内存中删除股票代码(返回值:DelMEM1:(0,1*AA);将符合条件的股票代码从内存变量序号为1的内存变量中删除示例3:该股票是否在相应的内存里(返回值:Ok:
20、=”ADllAMEMBLK”(2,1);返回该股票是否在内存序号为1的内存段里,返回值1为存在示例4:某内存序号内存段里存储的股票数量(返回值:1出错)NUM:=”ADllAMEMBLK”(3,1);返回在内存序号1里的内存里存储的股票数量示例5:返回所有的用此函数存储的股票数量(返回值:TNUM:=”ADllAMEMBLK”(4,0);返回所有用此函数存储的股票总数量示例6:清除所有用此函数存储的股票,清空内存段(返回值:DELALL:=”ADllAMEMBLK”(5,0); 示例7:求内存序号范围内交集(返回值:1存在 0不存在 1出错)”ADllAMEMBLK”(6,1,5)0;求内存序
21、号15中都存在的股票示例8:求内存序号范围内交集(如果包含参数4,则表示求满足多个内存)返回值同上”ADllAMEMBLK”(6,1,5,3)求内存序号15中存在3个的股票的交集函数 ADllAMEMDATA1在股池中调用此函数,可以在内存中定义全局变量来实现单值数据读写等功能,也可以只用来做全局变量来使用。内存变量名称以数定命名,比如你可以定义一个内存全局变量1 可以对变量1进行读写操作,来实现你现要的功能。变量的命名以数字命名,也可以称为内存序号。本函数个参数3个,当写数据时必须3个参数,第3个参数为写入的值,读数据只需要2个参数,第3个参数不要填写。本函数最多支持2000个数据读写。为1
22、时表示存数据,不为1时表示读数据。内存序号。参数3:需要存储的数据(存储数据时必须有此参数)函数示例一:存储单值数据 (返回值:data1:ADllAMEMDATA1(1,11,C*AA);把数据写到内存序号为11的内存段里示例二:读取单值数据(返回值:相应序号里的存储值 1出错)Data11:(2,11);读取存储在内存序号11里的数据函数:ADllAMEMDATA2在股池中调用此函数,可以在内存中定义全局变量来实现股票相关数据读写等功能,也可以只用来做全局变量来使用。内存数据包含代码和您存储的相应的数据。本函数个参数3个,当写数据时必须3个参数,第3个参数为写入的值,读数据和其它功能操作时只需要2个参数,第3个参数不需填写。存储股票相关数据c10 and cSAVE2:ADllAMEMDATA2(1,2,c*AA);把数据C写入到内存序号为2的相应内存段,并且对应股票代码读取存储在相应内存段且股名符合的数据(返回值:存储的数据 1出错)Data1:(2,1);从内存序号1 里读取相应股名的数据删除存储在相应内存段且股名符合的数据(返回值:10.15;del3:从内存序号1里删除相应的数据删除存储在相应内存段的所有数据(返回值:Del1:ADllAMEMDATA
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1