大智慧自动交易函数

股票自动交易软件助手提供了Order.dll , 扩展了大智慧,飞狐,通达信等公式语言的函数。利用这些函数,可以在公式里精细控制下单逻辑和交易策略。比如读取持仓数据,可用资金,指定下单数量等等。

需要注意的是,一般情况下,并不需要在公式里调用这些函数就能实现股票程序化的交易策略。对于一般用户,或者对大部分常用指标来说,使用公式预警条件单更加方便,简单,而不需要在公式里调用下单函数。只需要建立对应的助手预警条件单,并在大智慧,通达信等软件中设置好预警指标即可。只有在使用股票池自动交易或者图表交易纯公式下单的情况下才需要这些函数。

要使用股票自动交易软件助手提供的交易函数,先把助手安装目录里的 Order.dll复制到大智慧根目录下面。大智慧调用过Order.dll后,助手会在大智慧目录下生成 助手日志 目录,里面有调用函数的日志信息,可以查看这个日志信息来确定调用是否正确,条件是否成立等等。一般条件成立了但是助手没反应,可以看这个日志来找出原因。如果这日志的显示是正常的,你可以进一步去助手的安装目录里查看助手日志进一步确定原因。

如果使用金字塔或者易得软件, 需要下载专用的Order.dll而不能用助手目录下面的。 金字塔专用下载     易得专用下载

重要提示

股票自动交易软件助手提供的有些函数的参数,是 条件和变量的乘积,如 BUY 函数的第二个参数就是 条件*数量。表示在条件为1(即成立的情况下),买入对应数量的股票。比如 条件*1000, 条件成立的情况下,条件就是1,乘以1000结果就是1000股,助手就会买入1000股,在条件不成立的情况下条件的数值就会等于0,乘以1000结果也是0,代表条件不成立,因此助手不会买入。有人会问,为什么需要这样呢,大智慧有if语句,用 if 条件成立 then Buy(1000)这样不就行了吗?答案是大智慧if语句,无论怎么样条件是否成立,语句都会被执行的。因此只能用 条件*量 这种传递参数的办法来解决。注意:条件只能是逻辑判断值,1或者0,不能是其他运算的结果,例如 条件:=C >0;不要条件:=C;或条件:=MA(C,5)这样,前者是逻辑判断值,后面是数值计算。

重要提示2 关于大智慧图表交易注意事项

所谓图表交易是指在大智慧或通达信或飞狐系列软件的K线图或分时图上,编写公式(你的交易策略),在指标运算等一系列判断后符合你的交易条件,调用助手Order.dll进行买入卖出指令的调用

如果你是用大智慧,要注意 如果在大智慧图形上运行,所有条件都要加上BARSTATUS = 2的条件(表示最后一个K线),否则大智慧每根k线都会调用dll一次会很慢,而且会错误下单

重要提示3 关于助手编号

股票自动交易软件助手提供的几乎所有函数的最后一个参数,是 助手编号,默认是0,是可省略的。大部分情况下可以忽略不管。只有在对不同的助手(对应的不同交易软件的交易账户)使用不同的下单数量时才需要用到。如果你从来没改过助手设置里的助手编号,所有助手都会执行下单动作,在这种情况下,即使开了多个助手,也不需理会这个参数

另外,尊贵版助手的助手编号,个位上的数字表示真正的助手编号,而十位数上的数字表示账号编号。比如 10 表示助手编号为0里的第一个账户,20 表示助手编号为0里的第二个账户。账号编号以助手条件单里的显示顺序为准

助手函数列表
买入函数 BUY(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),买入指定数量的股票
卖出函数 SELL(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),卖出指定数量的股票
融资买入函数 BUY_RZ(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),融资买入指定数量的股票(仅适用纯公式)
卖券还款函数 SELL_HK(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),卖出(卖券还款)指定数量的股票(仅适用纯公式)
融券卖出函数 SELL_RQ(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),融券卖出指定数量的股票(仅适用纯公式)
买券还券函数 BUY_HQ(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),买券还券指定数量的股票(仅适用纯公式)
买入可转债函数 BuyKzz(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),买入正股对应的可转债
卖出可转债函数 SellKzz(价格, 条件*数量, 公式编号, 助手编号)
条件成立时(即 条件:=1),卖出正股对应的可转债
查询持仓数量 PosInfo(类型, 助手编号)
查询当前股票持仓数量,单位(股)
查询可卖数量 PosInfo(类型, 助手编号)
查询当前股票可卖数量,单位(股)
查询成本价 PosInfo(类型, 助手编号)
查询当前股票的成本价
查询盈利金额 PosInfo(类型, 助手编号)
查询当前股票的盈利金额(元)
查询盈利百分比 PosInfo(类型, 助手编号)
查询当前股票的盈利百分比(%),盈利5.5%,返回5.5
查询持仓市值 PosInfo(类型, 助手编号)
查询当前股票的持仓市值
下单天数 PosInfo(类型, 助手编号)
查询当前股票的下单天数,即上次助手下单离现在的天数
持仓天数 PosInfo(类型, 助手编号)
查询当前股票的持仓天数
上次买入价 PosInfo(类型, 助手编号)
查询当前股票的上次买入价
查询可撤买单 OrderInfo(下单类型, 查询类型, 助手编号, 公式号)
查询当前股票的可撤买单数量(股)
查询可撤买单时间 OrderInfo(下单类型, 查询类型, 助手编号, 公式号)
查询当前股票的可撤买单的时间离现在的秒数(秒)
查询可撤卖单 OrderInfo(下单类型, 查询类型, 助手编号, 公式号)
查询当前股票的可撤卖单数量(股)
查询可撤卖单时间 OrderInfo(下单类型, 查询类型, 助手编号, 公式号)
查询当前股票的可撤卖单的时间离现在的秒数(秒)
撤买单 CancelOrder(条件*类型, 助手编号, 公式号)
条件成立时撤销当前股票的买入单
撤卖单 CancelOrder(条件*类型, 助手编号, 公式号)
条件成立时撤销当前股票的卖出单
账户总资产 AccountInfo(类型, 助手编号)
查询当前账户的总资产(元)
账户可用资金 AccountInfo(类型, 助手编号)
查询当前账户的可用资金(元)
账户持仓市值 AccountInfo(类型, 助手编号)
查询当前账户的账户持仓总市值(元)
账户总盈利 AccountInfo(类型, 助手编号)
查询当前账户的账户总盈利(元)
持仓个数 AccountInfo(类型, 助手编号)
查询当前账户的持仓股票数量
可用保证金 AccountInfo(类型, 助手编号)
查询当前账户的可用保证金
担保比例 AccountInfo(类型, 助手编号)
查询当前账户的担保比例
融资额度 AccountInfo(类型, 助手编号)
查询当前账户的融资额度
融券额度 AccountInfo(类型, 助手编号)
查询当前账户的融券额度
清仓 ClearPosition(条件*清仓类型, 助手编号)
条件成立时执行清仓操作
清半仓 ClearPosition(条件*清仓类型, 助手编号)
条件成立时执行清半仓操作
启动交易 Start(条件*类型, 助手编号)
条件成立时启动助手自动交易,相当于按下启动按钮
停止交易 Stop(条件*类型, 助手编号)
条件成立时停止助手自动交易,相当于按下停止按钮
启用条件 Enable(条件*类型, 条件序号, 助手编号, 买卖类型)
条件成立时启用当前股票的条件单或止损设置
禁止条件 Disable(条件*类型, 条件序号, 助手编号, 买卖类型)
条件成立时禁用当前股票的条件单或止损设置或删除条件
设置买入条件 SetBuyCondition(条件, 助手编号)
仅用于飞狐系列软件图表交易,在调用BUY函数前调用
设置 卖出条件 SetSellCondition(条件, 助手编号)
仅用于飞狐系列软件图表交易,在调用SELL函数前调用
日志函数 Log(数值)
把数值写到当前日志文件里,方便调试
MsgBox函数 MsgBox(数值)
把数值以消息框的形式弹出来,方便调试
刷新持仓数据 Refresh(条件, 助手编号)
条件成立时刷新持仓,撤单等数据
发送邮件,QQ信息 SendMessages(发送方式, 条件*消息类型, 助手编号)
条件成立时(即 条件:=1),以指定的发送方式发送指定类型的消息
获取交易数据 Get(类型, 公式号, 助手编号)
获取交易自定义数据,包括系统类型和自定义类型
设置交易数据 Set(数值, 类型*条件, 公式编号, 助手编号)
设置交易自定义数据,自定义类型从100开始
获取全局数据 GetGlobal(类型, 公式号, 助手编号)
获取交易自定义数据,包括系统类型和自定义类型
设置全局数据 SetGlobal(数值, 类型*条件, 公式编号, 助手编号)
设置全局自定义数据,自定义类型从100开始
保存到自选股或板块 save2blk(条件, ID, 是否保存到列表最前列)
条件满足时保存股票到自选股或板块
从自选股或板块删除股票 del2blk(条件, ID)
条件满足时从自选股或板块删除股票
获取自选股或板块股票的数量 BlkCount(ID)
获取自选股或板块股票的数量
问财函数 WenCai(问财编号, 助手编号)
查询当前股票是否符合问财选股条件
更多函数将完善      

函数说明

BUY(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),买入指定数量的股票

参数
价格 指定买入下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定买入价
条件*数量 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入
公式编号 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同
助手编号 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单

例子
 {上穿5日均线买入1000股}
 条件:Cross(C, MA(C,5));
 if 条件 > 0 then 
    执行买入:"Order@BUY"(c, 条件*1000, 1);

如果在大智慧图形上运行,所有条件都要加上BARSTATUS = 2的条件,否则大智慧每根k线都会调用dll一次会很慢
 {如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件: BARSTATUS = 2 and Cross(C, MA(C,5));
 if 条件 > 0 then 
    执行买入:"Order@BUY"(c, 条件*1000, 1);

SELL(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),卖出指定数量的股票

参数
价格 指定下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定下单价
条件*数量 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出
公式编号 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同
助手编号 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单

例子
 {下穿5日均线卖出}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross( MA(C,5), C);
 if 条件 > 0 then 
    执行卖出:"Order@SELL"(c, 条件*1, 2);

BUY_RZ(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),融资买入指定数量的股票(仅适用纯公式)

参数
价格 指定买入下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定买入价
条件*数量 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入
公式编号 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同
助手编号 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单

例子
 {上穿5日均线买入1000股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross(C, MA(C,5));
 if 条件 > 0 then 
    执行买入:"Order@BUY_RZ"(c, 条件*1000, 1);

SELL_HK(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),卖出(卖券还款)指定数量的股票(仅适用纯公式)

参数
价格 指定下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定下单价
条件*数量 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出
公式编号 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同
助手编号 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单

例子
 {下穿5日均线卖出}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross( MA(C,5), C);
 if 条件 > 0 then 
    执行卖出:"Order@SELL_HK"(c, 条件*1, 2);

SELL_RQ(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),融券卖出指定数量的股票(仅适用纯公式)

参数
价格 指定下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定下单价
条件*数量 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出
公式编号 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同
助手编号 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单

例子
 {下穿5日均线卖出}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross( MA(C,5), C);
 if 条件 > 0 then 
    执行卖出:"Order@SELL_RQ"(c, 条件*1, 2);

BUY_HQ(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),买入还券指定数量的股票

参数
价格 指定买入下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定买入价
条件*数量 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入
公式编号 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同
助手编号 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单

例子
 {上穿5日均线买入1000股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross(C, MA(C,5));
 if 条件 > 0 then 
    执行买入:"Order@BUY_HQ"(c, 条件*1000, 1);

BuyKzz(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),买入正股对应的可转债

例子
 {这个例子运行在正股中,如果正股金叉5日平均线,买入的是可转债}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross(C, MA(C,5));
 if 条件 > 0 then 
    执行买入:"Order@BuyKzz"(0, 条件*10, 1);

SellKzz(价格, 条件*数量, 公式编号, 助手编号)

条件成立时(即 条件:=1),卖出正股对应的可转债

例子
 {这个例子运行在正股中,如果正股死叉5日平均线,卖出的是可转债}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross( MA(C,5), C);
 if 条件 > 0 then 
    执行卖出:"Order@SellKzz"(0, 条件*1, 2);

PosInfo(类型, 助手编号)

查询当前股票的持仓数量(股)

参数
类型 0,表示查询持仓数,量以股为单位
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 个股持仓股数: "Order@PosInfo"(0); 

PosInfo(类型, 助手编号)

查询当前股票的可卖数量(股)

参数
类型 1,表示查询可卖数量,以股为单位
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 个股可卖股数: "Order@PosInfo"(1); 

PosInfo(类型, 助手编号)

查询当前股票的成本价(元)

参数
类型 2,表示查询成本价
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 成本价: "Order@PosInfo"(2); 

PosInfo(类型, 助手编号)

查询当前股票的盈利金额(元)

参数
类型 3,表示查询盈利金额
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 盈利金额: "Order@PosInfo"(3); 

PosInfo(类型, 助手编号)

查询当前股票的盈利百分比(%)

参数
类型 4,查询当前股票的盈利百分比(%),盈利5.5%,返回5.5
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 盈利百分比: "Order@PosInfo"(4); 

PosInfo(类型, 助手编号)

查询当前股票的持仓市值(元)

参数
类型 5,查询当前股票的持仓市值(元)
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 持仓市值: "Order@PosInfo"(5); 

PosInfo(类型, 助手编号)

查询当前股票的下单天数

参数
类型 6,查询当前股票的下单天数,只对助手下的单有效,并且依赖下单记录
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 下单天数: "Order@PosInfo"(6); 

PosInfo(类型, 助手编号)

查询当前股票的持仓天数

参数
类型 7,查询当前股票的持仓天数,只对助手下的单有效(如果设置了下单时间都有效)
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 持仓天数: "Order@PosInfo"(7); 

PosInfo(类型, 助手编号)

查询当前股票的上次买入价

参数
类型 8,查询当前股票的上次买入价,只对助手下的单有效
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的

例子
 上次买入价: "Order@PosInfo"(8); 

OrderInfo(下单类型, 查询类型, 助手编号, 公式号)

查询当前股票的可撤买单数量(股)

参数
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的
公式号 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单

例子
 可撤买单数量: "Order@OrderInfo"(0, 0); 

OrderInfo(下单类型, 查询类型, 助手编号, 公式号)

查询当前股票的可撤买单距现在的时间(秒)

参数
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的
公式号 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单

例子
 买单已过秒数: "Order@OrderInfo"(0,1); 

OrderInfo(下单类型, 查询类型, 助手编号, 公式号)

查询当前股票的可撤卖单数量(股)

参数
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的
公式号 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单

例子
 可撤卖单数量: "Order@OrderInfo"(1, 0); 

OrderInfo(下单类型, 查询类型, 助手编号, 公式号)

查询当前股票的可撤卖单距现在的时间(秒)

参数
下单类型 0,查询买入单,1查询卖出单
查询类型 0,查询数量,1查询时间
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的
公式号 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单

例子
 卖单已过秒数: "Order@OrderInfo"(1,1); 

CancelOrder(条件*类型, 助手编号, 公式号)

条件成立时撤销当前股票的买单

参数
条件*类型 类型:1,撤买单;类型:2,撤卖单
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的
公式号 可选,仅在关联Qmt交易软件时可用,仅撤此公式号的单

例子
 买单已过秒数:= "Order@OrderInfo"(0,1);
 条件:买单已过秒数 > 60;
 if 条件 then
    撤买单 : "Order@CancelOrder"(1*条件);
		

CancelOrder(条件*类型, 助手编号, 公式号)

条件成立时撤销当前股票的卖单

参数
条件*类型 类型:1,撤买单;类型:2,撤卖单
助手编号 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的
公式号 可选,仅在关联Qmt交易软件时可用,仅撤此公式号的单

例子
 卖单已过秒数: "Order@OrderInfo"(1,1);
 条件:卖单已过秒数 > 60;
 if 条件 then
    撤卖单 : "Order@CancelOrder"(2*条件);;
		

AccountInfo(类型, 助手编号)

查询当前账号的总资产

参数
类型 0, 查询当前账号的总资产(元)
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 账户总资产 : "Order@AccountInfo"(0);

AccountInfo(类型, 助手编号)

查询当前账号的可用资金

参数
类型 1, 查询当前账号的可用资金(元)
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 账户可用资金 : "Order@AccountInfo"(1);

AccountInfo(类型, 助手编号)

查询当前账号的总持仓市值

参数
类型 2, 查询当前账号的总持仓市值(元)
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 账户总持仓市值 : "Order@AccountInfo"(2);

AccountInfo(类型, 助手编号)

查询当前账号的总盈利金额

参数
类型 3, 查询当前账号的总盈利金额 (元)
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 账户总盈利金额 : "Order@AccountInfo"(3);

AccountInfo(类型, 助手编号)

查询当前账号的持仓个数

参数
类型 4, 查询当前账号的持仓个数
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 持仓个数 : "Order@AccountInfo"(4);

AccountInfo(类型, 助手编号)

查询当前账号的可用保证金

参数
类型 5, 查询当前账号的持仓个数
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 保证金: "Order@AccountInfo"(5);

AccountInfo(类型, 助手编号)

查询当前账号的担保比例

参数
类型 6, 查询当前账号的担保比例
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 担保比例: "Order@AccountInfo"(6);

AccountInfo(类型, 助手编号)

查询当前账号的融资额度

参数
类型 7, 查询当前账号的融资额度
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 融资额度: "Order@AccountInfo"(7);

AccountInfo(类型, 助手编号)

查询当前账号的融券额度

参数
类型 8, 查询当前账号的融券额度
助手编号 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的

例子
 融券额度: "Order@AccountInfo"(8);

ClearPosition(条件*类型, 助手编号)

条件成立时执行清仓操作

参数
条件*类型 类型:1,全部清仓;类型:2,清半仓
助手编号 可选,在多个助手的情况下分别清仓

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数跌破5日均线清仓}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross(MA(C,5), C);
 if 条件 then
    清仓: "Order@ClearPosition"(1*条件);

ClearPosition(条件*类型, 助手编号)

条件成立时执行半清仓操作

参数
条件*类型 类型:1,全部清仓;类型:2,清半仓
助手编号 可选,在多个助手的情况下分别清仓

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数跌破5日均线清半仓}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross(MA(C,5), C);
 if 条件 then
    清仓: "Order@ClearPosition"(2*条件);

Start(条件*类型, 助手编号)

条件成立时启动助手自动交易,相当于按下助手开始按钮

参数
条件*类型 类型:1,启动自动交易
助手编号 可选,在多个助手的情况指定助手编号

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数上穿5日均线开启自动交易}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross(C, MA(C,5));
 if 条件 then
    启动交易: "Order@Start"(1*条件);;

Stop(条件*类型, 助手编号)

条件成立时停止助手自动交易,相当于按下助手停止按钮

参数
条件*类型 类型:1,停止自动交易
助手编号 可选,在多个助手的情况指定助手编号

例子
 {此例子假定当前股票池只有上证指数一个股票,当上证指数下穿5日均线停止自动交易}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:Cross( MA(C,5), C);
 if 条件 then
    停止交易: "Order@Stop"(1*条件);

Enable(条件*类型, 条件序号, 助手编号, 买卖类型)

条件成立时让当前股票的止损止盈或条件单生效

参数
条件*类型 类型:1,条件成立时让当前股票的止损止盈或条件单生效
条件序号 可选,指定条件序号(可在助手右键菜单查看)
助手编号 可选,在多个助手的情况指定助手编号
买卖类型,此参数目前仅对区间交易有意义 可选,0开启整个条件,1开启买入,2开启卖出

例子
 {当前股票价格在5日均线之上时让该股票的止损止盈或条件单生效}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:C > MA(C,5);
 if 条件 then
    启用条件: "Order@Enable"(1*条件);

例子2
 {当前股票价格在5日均线之下时开启当前股票区间交易买入}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:C < MA(C,5);
 if 条件 then
    禁止条件: "Order@Enable"(1*条件,0,0,1);

Disable(条件*类型, 条件序号, 助手编号, 买卖类型)

条件成立时禁止当前股票的止损止盈或条件单执行或删除条件

参数
条件*类型 类型:1(禁止),2(删除),条件成立时禁止当前股票的止损止盈或条件单执行或删除条件
条件序号 可选,指定条件序号(可在助手右键菜单查看)
助手编号 可选,在多个助手的情况指定助手编号
买卖类型,此参数目前仅对区间交易有意义 可选,0禁止整个条件,1禁止买入,2禁止卖出

例子
 {当前股票价格在5日均线之下时禁止当前股票的止损止盈或条件单执行}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:C < MA(C,5);
 if 条件 then
    禁止条件: "Order@Disable"(1*条件);

例子2
 {当前股票价格在5日均线之下时停止当前股票区间交易买入}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:C < MA(C,5);
 if 条件 then
    禁止条件: "Order@Disable"(1*条件,0,0,1);

SetBuyCondition(条件, 助手编号)

仅用于飞狐系列软件,设置买入条件

参数
条件 仅用于飞狐系列软件图表交易,设置买入条件,需在调用买入函数前调用
助手编号 可选,在多个助手的情况指定助手编号

例子
 {此例子假定在当前日线图上跑图表交易,当该股票上穿5日均线买入1000股}
 买入条件:Cross(C, MA(C,5));
 设置买入条件:="Order@SetBuyCondition"(买入条件);
 买入股票:"Order@BUY"(c, 买入条件*1000, 1);

SetSellCondition(条件, 助手编号)

仅用于飞狐系列软件,设置卖出条件

参数
条件 仅用于飞狐系列软件图表交易,设置卖出条件,需在调用卖出函数前调用
助手编号 可选,在多个助手的情况指定助手编号

例子
 {此例子假定在当前日线图上跑图表交易,当该股票下穿5日均线卖出}
 卖出条件:Cross( MA(C,5), C);
 设置卖出条件:="Order@SetSellCondition"(卖出条件:);
 卖出股票:"Order@SELL"(c, 卖出条件*1, 2);

Log(数值)

把数值写到当前日志文件里,方便调试

参数
数值 把数值写到当前日志文件里,方便调试

例子
 {此例子把当前最新周期的收盘价写到日志文件,此文件位于大智慧或通达信等软件的助手日志下面}
 写日志:="Order@Log"(c);

MsgBox(数值)

把数值以消息框的形式弹出来显示,方便调试

参数
数值 把数值以消息框的形式弹出来显示,方便调试

例子
 {此例子把当前最新周期的收盘价弹出消息框}
 消息框:="Order@MsgBox"(c);

Refresh(条件, 助手编号)

条件成立时刷新持仓,撤单等数据

参数
条件 条件成立时刷新持仓,撤单等数据
助手编号 可选,在多个助手的情况指定助手编号

例子
 {买入前刷新一下持仓信息}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:C > MA(C,5);
 刷新持仓:="Order@Refresh"(条件);
 if 条件 then
    执行买入:"Order@BUY"(c, 条件*100, 1);

SendMessages(发送方式, 条件*消息类型, 助手编号)

条件成立时发送邮件,QQ,微信信息

参数
发送方式 0,发送邮件;1,发送QQ消息;2,发送微信
条件*消息类型 条件成立时(即 条件:=1),发送指定消息类型的消息
消息类型是自己定的,也可以在行情软件当前目录用Order.ini文件配置消息类型对应的文字
助手编号 可选,在多个助手的情况指定助手编号

例子
 {价格大于10元发送类型为1的邮件,消息类型对应的文字可以在Order.ini配置}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
 条件:C > 10;
 if 条件 then
     发邮件:"Order@SendMessages"(0, 1*条件);

Get(类型, 公式号, 助手编号)

获取交易自定义数据

参数
类型 0-99为系统(助手内部)定义的数据
0,1,2,3,4分别为上次买入时间(格式和大智慧通达信的Date函数相同)
天数,秒数,价格,数量;
5,6,7,8,9分别为上次卖出时间
天数,秒数,价格,数量
公式号 可选,默认为0,如果不需要区分
可以不用公式号
助手编号 可选,默认0,,在多个助手的情况指定助手编号

例子
 
{获取助手系统内置的交易数据,类型<100为助手内置的类型数据如上次买入时间等,
这些数据不需要设置就能获取}
上次买入时间: "Order@Get"(0,1 );
上次买入天数: "Order@Get"(1,1);
上次买入秒数: "Order@Get"(2,1);
上次买入价格: "Order@Get"(3,1);
上次买入数量: "Order@Get"(4,1);

上次卖出时间: "Order@Get"(5,1 );
上次卖出天数: "Order@Get"(6,1);
上次卖出秒数: "Order@Get"(7,1);
上次卖出价格: "Order@Get"(8,1);
上次卖出数量: "Order@Get"(9,1);

Set(数值, 类型*条件, 公式号, 助手编号)

条件成立时设置交易自定义数据

参数
数值 任意数字
类型*条件 条件成立时(即 条件:=1),设置指定类型的数据
类型为用户自定义,100到9999表示设置单值类型数据
10000以上表示设置时间序列数据
时间序列数据在公式代码里面大家其实已经很熟悉了
最常用的C就是一个时间序列数据,其他比如开高低收量额等等历史数据都是时间序列
序列值和运行公式所用的时间周期有关,如果是日线,每天记录有一个值。
如果是1分钟线,每一分钟记录一个值
如果成功,函数返回1,否则为0
公式编号 公式号和BUY函数里的意义相同
助手编号 助手编号,可选,多个助手时指定编号,不填默认0
注意,助手编号0到5,如果大于10,这个参数表示需要记录的序列数据周期
默认情况下,当前公式是什么周期运行就是什么周期记录
如果这个参数指定,则以这个周期记录
11到16分别表示分钟,5分钟,15分钟,30分钟,60分钟,日线

例子:写入并读出用户自定义为100类型的数据

{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: c > 10;
if 条件 then begin
	SET_OK:"Order@Set"(c, 100*条件, 1);
	GET:"Order@Get"(100, 1);
	
	{大于10000的表示设置时间序列数据,序列数据和
	运行公式所用的时间周期有关,如果是日线,每天记录有一个值。如果是1分钟线,每一分钟记录一个值
	}
	Series_OK:"Order@Set"(c, 10001*条件, 1);
	GET_Series:"Order@Get"(10001, 1),VOLSTICK;
end;
	 

GetGlobal(类型, 公式号, 助手编号)

获取全局数据

参数
类型 类型为用户自定义,100到9999表示单值类型数据
10000以上表示时间序列数据
公式号 可选,默认为0,如果不需要区分
可以不用公式号
助手编号 可选,在多个助手的情况指定助手编号

例子

{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
条件: c > 10;
if 条件 then begin
	SET_OK:"Order@SetGlobal"(c, 101*条件, 1);
	GET:"Order@GetGlobal"(101, 1);
end;
	 

SetGlobal(数值, 类型*条件, 公式号, 助手编号)

条件成立时设置全局自定义数据

参数
数值 任意数字
类型*条件 条件成立时(即 条件:=1),设置指定类型的数据
类型为用户自定义,100到9999表示设置单值类型数据
10000以上表示设置时间序列数据
如果成功,函数返回1,否则为0
公式编号 公式号和BUY函数里的意义相同
助手编号 助手编号,可选,多个助手时指定编号,不填默认0
注意,助手编号0到5,如果大于10,这个参数表示需要记录的序列数据周期
默认情况下,当前公式是什么周期运行就是什么周期记录
如果这个参数指定,则以这个周期记录
11到16分别表示分钟,5分钟,15分钟,30分钟,60分钟,日线

例子:写入并读出用户自定义为100类型的全局数据

{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: c > 10;
if 条件 then begin
	SET_OK:"Order@SetGlobal"(c, 101*条件, 1);
	GET:"Order@GetGlobal"(101, 1);
end;
	 

save2blk(条件, ID, 是否保存到列表最前列)

保存到自选股或板块

参数
条件 条件成立时(即 条件:=1),保存股票到自选股或板块
ID 自选股ID,0表示自选股,1表示自选股1以此类推
也可以配置一个order.ini文件指定ID对应的板块名
即完全兼容kingwa的格式
是否保存到列表最前列 1表示增加到自选股或板块的最前面,默认0加到列表后面

例子:当最新价小于10,增加到自选股

{例子:当最新价小于10,增加到自选股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: DynaInfo(7) < 10;
if 条件 then begin
	选入:="Order@save2blk"(条件);
end;
	 

例子2:当最新价小于10,增加到自选股1

条件: DynaInfo(7) < 10;
if 条件 then begin
	选入:="Order@save2blk"(条件,1);
end;
	 

del2blk(条件, ID)

从自选股或板块删除股票

参数
条件 条件成立时(即 条件:=1),从自选股或板块删除股票
ID 自选股ID,0表示自选股,1表示自选股1以此类推
也可以配置一个order.ini文件指定ID对应的板块名
即完全兼容kingwa的格式

例子:当最新价小于10,删除自选股

{例子:当最新价小于10,删除自选股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: DynaInfo(7) < 10;
if 条件 then begin
	删除:="Order@del2blk"(条件);
end;
	 

例子2:当最新价小于10,删除自选股1

条件: DynaInfo(7) < 10;
if 条件 then begin
	选入:="Order@del2blk"(条件,1);
end;
	 

BlkCount(ID)

获取自选股或板块股票的数量

参数
ID 自选股ID,0表示自选股,1表示自选股1以此类推
也可以配置一个order.ini文件指定ID对应的板块名
即完全兼容kingwa的格式

例子:获取自选股数量

{例子:获取自选股数量}
自选股数量:"Order@BlkCount"(0);

例子2:获取自选股1数量

{例子:获取自选股1数量}
自选股1数量:"Order@BlkCount"(1);
	 

WenCai(问财编号, 助手编号)

查询当前股票是否满足符合问财编号对应的选股条件

参数
问财编号 每个问财编号对应一个问财选股条件即问财提问,查询条件
可以在助手建立不同的问财条件
你也可以点助手FX按钮直接生成问财选股公式
助手编号 可选,在多个助手的情况下分别查询不同助手的

例子

{1代表的问财问题可以在助手里添加,这里1表示 10年roe>15%;pe<10;PB<2}
问财编号:=1;
if BarStatus = 2 then{最后一个bar才调用}
  问财:"Order@WenCai"(问财编号);