股票自动交易软件助手提供了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)这样,前者是逻辑判断值,后面是数值计算。
所谓图表交易是指在大智慧或通达信或飞狐系列软件的K线图或分时图上,编写公式(你的交易策略),在指标运算等一系列判断后符合你的交易条件,调用助手Order.dll进行买入卖出指令的调用
如果你是用大智慧,要注意 如果在大智慧图形上运行,所有条件都要加上BARSTATUS = 2的条件(表示最后一个K线),否则大智慧每根k线都会调用dll一次会很慢,而且会错误下单
股票自动交易软件助手提供的几乎所有函数的最后一个参数,是 助手编号,默认是0,是可省略的。大部分情况下可以忽略不管。只有在对不同的助手(对应的不同交易软件的交易账户)使用不同的下单数量时才需要用到。如果你从来没改过助手设置里的助手编号,所有助手都会执行下单动作,在这种情况下,即使开了多个助手,也不需理会这个参数
另外,尊贵版助手的助手编号,个位上的数字表示真正的助手编号,而十位数上的数字表示账号编号。比如 10 表示助手编号为0里的第一个账户,20 表示助手编号为0里的第二个账户。账号编号以助手条件单里的显示顺序为准
| 助手函数列表 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 买入函数 | 条件成立时(即 条件:=1),买入指定数量的股票 | ||||||||||
| 卖出函数 | 条件成立时(即 条件:=1),卖出指定数量的股票 | ||||||||||
| 融资买入函数 | 条件成立时(即 条件:=1),融资买入指定数量的股票(仅适用纯公式) | ||||||||||
| 卖券还款函数 | 条件成立时(即 条件:=1),卖出(卖券还款)指定数量的股票(仅适用纯公式) | ||||||||||
| 融券卖出函数 | 条件成立时(即 条件:=1),融券卖出指定数量的股票(仅适用纯公式) | ||||||||||
| 买券还券函数 | 条件成立时(即 条件:=1),买券还券指定数量的股票(仅适用纯公式) | ||||||||||
| 买入可转债函数 | 条件成立时(即 条件:=1),买入正股对应的可转债 | ||||||||||
| 卖出可转债函数 | 条件成立时(即 条件:=1),卖出正股对应的可转债 | ||||||||||
| 查询持仓数量 | 查询当前股票持仓数量,单位(股) | ||||||||||
| 查询可卖数量 | 查询当前股票可卖数量,单位(股) | ||||||||||
| 查询成本价 | 查询当前股票的成本价 | ||||||||||
| 查询盈利金额 | 查询当前股票的盈利金额(元) | ||||||||||
| 查询盈利百分比 | 查询当前股票的盈利百分比(%),盈利5.5%,返回5.5 | ||||||||||
| 查询持仓市值 | 查询当前股票的持仓市值 | ||||||||||
| 下单天数 | 查询当前股票的下单天数,即上次助手下单离现在的天数 | ||||||||||
| 持仓天数 | 查询当前股票的持仓天数 | ||||||||||
| 上次买入价 | 查询当前股票的上次买入价 | ||||||||||
| 查询可撤买单 | 查询当前股票的可撤买单数量(股) | ||||||||||
| 查询可撤买单时间 | 查询当前股票的可撤买单的时间离现在的秒数(秒) | ||||||||||
| 查询可撤卖单 | 查询当前股票的可撤卖单数量(股) | ||||||||||
| 查询可撤卖单时间 | 查询当前股票的可撤卖单的时间离现在的秒数(秒) | ||||||||||
| 撤买单 | 条件成立时撤销当前股票的买入单 | ||||||||||
| 撤卖单 | 条件成立时撤销当前股票的卖出单 | ||||||||||
| 账户总资产 | 查询当前账户的总资产(元) | ||||||||||
| 账户可用资金 | 查询当前账户的可用资金(元) | ||||||||||
| 账户持仓市值 | 查询当前账户的账户持仓总市值(元) | ||||||||||
| 账户总盈利 | 查询当前账户的账户总盈利(元) | ||||||||||
| 持仓个数 | 查询当前账户的持仓股票数量 | ||||||||||
| 可用保证金 | 查询当前账户的可用保证金 | ||||||||||
| 担保比例 | 查询当前账户的担保比例 | ||||||||||
| 融资额度 | 查询当前账户的融资额度 | ||||||||||
| 融券额度 | 查询当前账户的融券额度 | ||||||||||
| 清仓 | 条件成立时执行清仓操作 | ||||||||||
| 清半仓 | 条件成立时执行清半仓操作 | ||||||||||
| 启动交易 | 条件成立时启动助手自动交易,相当于按下启动按钮 | ||||||||||
| 停止交易 | 条件成立时停止助手自动交易,相当于按下停止按钮 | ||||||||||
| 启用条件 | 条件成立时启用当前股票的条件单或止损设置 | ||||||||||
| 禁止条件 | 条件成立时禁用当前股票的条件单或止损设置或删除条件 | ||||||||||
| 设置买入条件 | 仅用于飞狐系列软件图表交易,在调用BUY函数前调用 | ||||||||||
| 设置 卖出条件 | 仅用于飞狐系列软件图表交易,在调用SELL函数前调用 | ||||||||||
| 日志函数 | 把数值写到当前日志文件里,方便调试 | ||||||||||
| MsgBox函数 | 把数值以消息框的形式弹出来,方便调试 | ||||||||||
| 刷新持仓数据 | 条件成立时刷新持仓,撤单等数据 | ||||||||||
| 发送邮件,QQ信息 | 条件成立时(即 条件:=1),以指定的发送方式发送指定类型的消息 | ||||||||||
| 获取交易数据 | 获取交易自定义数据,包括系统类型和自定义类型 | ||||||||||
| 设置交易数据 | 设置交易自定义数据,自定义类型从100开始 | ||||||||||
| 获取全局数据 | 获取交易自定义数据,包括系统类型和自定义类型 | ||||||||||
| 设置全局数据 | 设置全局自定义数据,自定义类型从100开始 | ||||||||||
| 保存到自选股或板块 | 条件满足时保存股票到自选股或板块 | ||||||||||
| 从自选股或板块删除股票 | 条件满足时从自选股或板块删除股票 | ||||||||||
| 获取自选股或板块股票的数量 | 获取自选股或板块股票的数量 | ||||||||||
| 问财函数 | 查询当前股票是否符合问财选股条件 | ||||||||||
| 热股函数 | 查询当前股票是否符合热股选股条件 | ||||||||||
| AI选股函数 | 查询当前股票是否符合AI选股条件 | ||||||||||
| Ai个股评分函数 | 查询当前股票个股评分 | ||||||||||
| Ai市场评分函数 | 查询市场评分 | ||||||||||
条件成立时(即 条件:=1),买入指定数量的股票
| 价格 | 指定买入下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定买入价 |
|---|---|
| 条件*数量 | 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入 |
| 公式编号 | 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同 |
| 助手编号 | 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单 |
{上穿5日均线买入1000股}
条件:Cross(C, MA(C,5));
if 条件 > 0 then
执行买入:"Order@BUY"(c, 条件*1000, 1);
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: BARSTATUS = 2 and Cross(C, MA(C,5));
if 条件 > 0 then
执行买入:"Order@BUY"(c, 条件*1000, 1);
条件成立时(即 条件:=1),卖出指定数量的股票
| 价格 | 指定下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定下单价 |
|---|---|
| 条件*数量 | 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出 |
| 公式编号 | 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同 |
| 助手编号 | 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单 |
{下穿5日均线卖出}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross( MA(C,5), C);
if 条件 > 0 then
执行卖出:"Order@SELL"(c, 条件*1, 2);
条件成立时(即 条件:=1),融资买入指定数量的股票(仅适用纯公式)
| 价格 | 指定买入下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定买入价 |
|---|---|
| 条件*数量 | 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入 |
| 公式编号 | 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同 |
| 助手编号 | 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单 |
{上穿5日均线买入1000股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross(C, MA(C,5));
if 条件 > 0 then
执行买入:"Order@BUY_RZ"(c, 条件*1000, 1);
条件成立时(即 条件:=1),卖出(卖券还款)指定数量的股票(仅适用纯公式)
| 价格 | 指定下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定下单价 |
|---|---|
| 条件*数量 | 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出 |
| 公式编号 | 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同 |
| 助手编号 | 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单 |
{下穿5日均线卖出}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross( MA(C,5), C);
if 条件 > 0 then
执行卖出:"Order@SELL_HK"(c, 条件*1, 2);
条件成立时(即 条件:=1),融券卖出指定数量的股票(仅适用纯公式)
| 价格 | 指定下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定下单价 |
|---|---|
| 条件*数量 | 条件,条件变量;数量,卖出数量,如果填1,按助手条件单里的指定量卖出 |
| 公式编号 | 用来区分是哪个公式或者转移条件卖出的,买入和卖出的编号不要相同 |
| 助手编号 | 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单 |
{下穿5日均线卖出}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross( MA(C,5), C);
if 条件 > 0 then
执行卖出:"Order@SELL_RQ"(c, 条件*1, 2);
条件成立时(即 条件:=1),买入还券指定数量的股票
| 价格 | 指定买入下单价格,如果填0,按助手条件单指定的价格类型或预警股票池全局设置决定买入价 |
|---|---|
| 条件*数量 | 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入 |
| 公式编号 | 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同 |
| 助手编号 | 可选,在多个助手的情况下分别控制不同助手的下单。默认相同编号的会一起下单 |
{上穿5日均线买入1000股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross(C, MA(C,5));
if 条件 > 0 then
执行买入:"Order@BUY_HQ"(c, 条件*1000, 1);
条件成立时(即 条件:=1),买入正股对应的可转债
{这个例子运行在正股中,如果正股金叉5日平均线,买入的是可转债}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross(C, MA(C,5));
if 条件 > 0 then
执行买入:"Order@BuyKzz"(0, 条件*10, 1);
条件成立时(即 条件:=1),卖出正股对应的可转债
{这个例子运行在正股中,如果正股死叉5日平均线,卖出的是可转债}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross( MA(C,5), C);
if 条件 > 0 then
执行卖出:"Order@SellKzz"(0, 条件*1, 2);
查询当前股票的持仓数量(股)
| 类型 | 0,表示查询持仓数,量以股为单位 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
个股持仓股数: "Order@PosInfo"(0);
查询当前股票的可卖数量(股)
| 类型 | 1,表示查询可卖数量,以股为单位 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
个股可卖股数: "Order@PosInfo"(1);
查询当前股票的成本价(元)
| 类型 | 2,表示查询成本价 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
成本价: "Order@PosInfo"(2);
查询当前股票的盈利金额(元)
| 类型 | 3,表示查询盈利金额 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
盈利金额: "Order@PosInfo"(3);
查询当前股票的盈利百分比(%)
| 类型 | 4,查询当前股票的盈利百分比(%),盈利5.5%,返回5.5 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
盈利百分比: "Order@PosInfo"(4);
查询当前股票的持仓市值(元)
| 类型 | 5,查询当前股票的持仓市值(元) |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
持仓市值: "Order@PosInfo"(5);
查询当前股票的下单天数
| 类型 | 6,查询当前股票的下单天数,只对助手下的单有效,并且依赖下单记录 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
下单天数: "Order@PosInfo"(6);
查询当前股票的持仓天数
| 类型 | 7,查询当前股票的持仓天数,只对助手下的单有效(如果设置了下单时间都有效) |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
持仓天数: "Order@PosInfo"(7);
查询当前股票的上次买入价
| 类型 | 8,查询当前股票的上次买入价,只对助手下的单有效 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
上次买入价: "Order@PosInfo"(8);
查询当前股票的可撤买单数量(股)
| 下单类型 | 0,查询买入单,1查询卖出单 |
|---|---|
| 查询类型 | 0,查询数量,1查询时间 |
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
| 公式号 | 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单 |
可撤买单数量: "Order@OrderInfo"(0, 0);
查询当前股票的可撤买单距现在的时间(秒)
| 下单类型 | 0,查询买入单,1查询卖出单 |
|---|---|
| 查询类型 | 0,查询数量,1查询时间 |
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
| 公式号 | 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单 |
买单已过秒数: "Order@OrderInfo"(0,1);
查询当前股票的可撤卖单数量(股)
| 下单类型 | 0,查询买入单,1查询卖出单 |
|---|---|
| 查询类型 | 0,查询数量,1查询时间 |
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
| 公式号 | 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单 |
可撤卖单数量: "Order@OrderInfo"(1, 0);
查询当前股票的可撤卖单距现在的时间(秒)
| 下单类型 | 0,查询买入单,1查询卖出单 |
|---|---|
| 查询类型 | 0,查询数量,1查询时间 |
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
| 公式号 | 可选,仅在关联Qmt交易软件时可用,仅获取此公式号的撤单 |
卖单已过秒数: "Order@OrderInfo"(1,1);
条件成立时撤销当前股票的买单
| 条件*类型 | 类型:1,撤买单;类型:2,撤卖单 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
| 公式号 | 可选,仅在关联Qmt交易软件时可用,仅撤此公式号的单 |
买单已过秒数:= "Order@OrderInfo"(0,1);
条件:买单已过秒数 > 60;
if 条件 then
撤买单 : "Order@CancelOrder"(1*条件);
条件成立时撤销当前股票的卖单
| 条件*类型 | 类型:1,撤买单;类型:2,撤卖单 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的持仓。默认相同编号的只返回第一个的 |
| 公式号 | 可选,仅在关联Qmt交易软件时可用,仅撤此公式号的单 |
卖单已过秒数: "Order@OrderInfo"(1,1);
条件:卖单已过秒数 > 60;
if 条件 then
撤卖单 : "Order@CancelOrder"(2*条件);;
查询当前账号的总资产
| 类型 | 0, 查询当前账号的总资产(元) |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
账户总资产 : "Order@AccountInfo"(0);
查询当前账号的可用资金
| 类型 | 1, 查询当前账号的可用资金(元) |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
账户可用资金 : "Order@AccountInfo"(1);
查询当前账号的总持仓市值
| 类型 | 2, 查询当前账号的总持仓市值(元) |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
账户总持仓市值 : "Order@AccountInfo"(2);
查询当前账号的总盈利金额
| 类型 | 3, 查询当前账号的总盈利金额 (元) |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
账户总盈利金额 : "Order@AccountInfo"(3);
查询当前账号的持仓个数
| 类型 | 4, 查询当前账号的持仓个数 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
持仓个数 : "Order@AccountInfo"(4);
查询当前账号的可用保证金
| 类型 | 5, 查询当前账号的持仓个数 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
保证金: "Order@AccountInfo"(5);
查询当前账号的担保比例
| 类型 | 6, 查询当前账号的担保比例 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
担保比例: "Order@AccountInfo"(6);
查询当前账号的融资额度
| 类型 | 7, 查询当前账号的融资额度 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
融资额度: "Order@AccountInfo"(7);
查询当前账号的融券额度
| 类型 | 8, 查询当前账号的融券额度 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的数据。默认相同编号的只返回第一个的 |
融券额度: "Order@AccountInfo"(8);
条件成立时执行清仓操作
| 条件*类型 | 类型:1,全部清仓;类型:2,清半仓 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别清仓 |
{此例子假定当前股票池只有上证指数一个股票,当上证指数跌破5日均线清仓}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross(MA(C,5), C);
if 条件 then
清仓: "Order@ClearPosition"(1*条件);
条件成立时执行半清仓操作
| 条件*类型 | 类型:1,全部清仓;类型:2,清半仓 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别清仓 |
{此例子假定当前股票池只有上证指数一个股票,当上证指数跌破5日均线清半仓}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross(MA(C,5), C);
if 条件 then
清仓: "Order@ClearPosition"(2*条件);
条件成立时启动助手自动交易,相当于按下助手开始按钮
| 条件*类型 | 类型:1,启动自动交易 |
|---|---|
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
{此例子假定当前股票池只有上证指数一个股票,当上证指数上穿5日均线开启自动交易}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross(C, MA(C,5));
if 条件 then
启动交易: "Order@Start"(1*条件);;
条件成立时停止助手自动交易,相当于按下助手停止按钮
| 条件*类型 | 类型:1,停止自动交易 |
|---|---|
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
{此例子假定当前股票池只有上证指数一个股票,当上证指数下穿5日均线停止自动交易}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:Cross( MA(C,5), C);
if 条件 then
停止交易: "Order@Stop"(1*条件);
条件成立时让当前股票的止损止盈或条件单生效
| 条件*类型 | 类型:1,条件成立时让当前股票的止损止盈或条件单生效 |
|---|---|
| 条件序号 | 可选,指定条件序号(可在助手右键菜单查看) |
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
| 买卖类型,此参数目前仅对区间交易有意义 | 可选,0开启整个条件,1开启买入,2开启卖出 |
{当前股票价格在5日均线之上时让该股票的止损止盈或条件单生效}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:C > MA(C,5);
if 条件 then
启用条件: "Order@Enable"(1*条件);
{当前股票价格在5日均线之下时开启当前股票区间交易买入}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:C < MA(C,5);
if 条件 then
禁止条件: "Order@Enable"(1*条件,0,0,1);
条件成立时禁止当前股票的止损止盈或条件单执行或删除条件
| 条件*类型 | 类型:1(禁止),2(删除),条件成立时禁止当前股票的止损止盈或条件单执行或删除条件 |
|---|---|
| 条件序号 | 可选,指定条件序号(可在助手右键菜单查看) |
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
| 买卖类型,此参数目前仅对区间交易有意义 | 可选,0禁止整个条件,1禁止买入,2禁止卖出 |
{当前股票价格在5日均线之下时禁止当前股票的止损止盈或条件单执行}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:C < MA(C,5);
if 条件 then
禁止条件: "Order@Disable"(1*条件);
{当前股票价格在5日均线之下时停止当前股票区间交易买入}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:C < MA(C,5);
if 条件 then
禁止条件: "Order@Disable"(1*条件,0,0,1);
仅用于飞狐系列软件,设置买入条件
| 条件 | 仅用于飞狐系列软件图表交易,设置买入条件,需在调用买入函数前调用 |
|---|---|
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
{此例子假定在当前日线图上跑图表交易,当该股票上穿5日均线买入1000股}
买入条件:Cross(C, MA(C,5));
设置买入条件:="Order@SetBuyCondition"(买入条件);
买入股票:"Order@BUY"(c, 买入条件*1000, 1);
仅用于飞狐系列软件,设置卖出条件
| 条件 | 仅用于飞狐系列软件图表交易,设置卖出条件,需在调用卖出函数前调用 |
|---|---|
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
{此例子假定在当前日线图上跑图表交易,当该股票下穿5日均线卖出}
卖出条件:Cross( MA(C,5), C);
设置卖出条件:="Order@SetSellCondition"(卖出条件:);
卖出股票:"Order@SELL"(c, 卖出条件*1, 2);
把数值写到当前日志文件里,方便调试
| 数值 | 把数值写到当前日志文件里,方便调试 |
|---|
{此例子把当前最新周期的收盘价写到日志文件,此文件位于大智慧或通达信等软件的助手日志下面}
写日志:="Order@Log"(c);
把数值以消息框的形式弹出来显示,方便调试
| 数值 | 把数值以消息框的形式弹出来显示,方便调试 |
|---|
{此例子把当前最新周期的收盘价弹出消息框}
消息框:="Order@MsgBox"(c);
条件成立时刷新持仓,撤单等数据
| 条件 | 条件成立时刷新持仓,撤单等数据 |
|---|---|
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
{买入前刷新一下持仓信息}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件:C > MA(C,5);
刷新持仓:="Order@Refresh"(条件);
if 条件 then
执行买入:"Order@BUY"(c, 条件*100, 1);
条件成立时发送邮件,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*条件);
获取交易自定义数据
| 类型 | 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);
条件成立时设置交易自定义数据
| 数值 | 任意数字 |
|---|---|
| 类型*条件 | 条件成立时(即 条件:=1),设置指定类型的数据 类型为用户自定义,100到9999表示设置单值类型数据 10000以上表示设置时间序列数据 时间序列数据在公式代码里面大家其实已经很熟悉了 最常用的C就是一个时间序列数据,其他比如开高低收量额等等历史数据都是时间序列 序列值和运行公式所用的时间周期有关,如果是日线,每天记录有一个值。 如果是1分钟线,每一分钟记录一个值 如果成功,函数返回1,否则为0 |
| 公式编号 | 公式号和BUY函数里的意义相同 |
| 助手编号 | 助手编号,可选,多个助手时指定编号,不填默认0 注意,助手编号0到5,如果大于10,这个参数表示需要记录的序列数据周期 默认情况下,当前公式是什么周期运行就是什么周期记录 如果这个参数指定,则以这个周期记录 11到16分别表示分钟,5分钟,15分钟,30分钟,60分钟,日线 |
{类型 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;
获取全局数据
| 类型 | 类型为用户自定义,100到9999表示单值类型数据 10000以上表示时间序列数据 |
|---|---|
| 公式号 | 可选,默认为0,如果不需要区分 可以不用公式号 |
| 助手编号 | 可选,在多个助手的情况指定助手编号 |
{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
条件: c > 10;
if 条件 then begin
SET_OK:"Order@SetGlobal"(c, 101*条件, 1);
GET:"Order@GetGlobal"(101, 1);
end;
条件成立时设置全局自定义数据
| 数值 | 任意数字 |
|---|---|
| 类型*条件 | 条件成立时(即 条件:=1),设置指定类型的数据 类型为用户自定义,100到9999表示设置单值类型数据 10000以上表示设置时间序列数据 如果成功,函数返回1,否则为0 |
| 公式编号 | 公式号和BUY函数里的意义相同 |
| 助手编号 | 助手编号,可选,多个助手时指定编号,不填默认0 注意,助手编号0到5,如果大于10,这个参数表示需要记录的序列数据周期 默认情况下,当前公式是什么周期运行就是什么周期记录 如果这个参数指定,则以这个周期记录 11到16分别表示分钟,5分钟,15分钟,30分钟,60分钟,日线 |
{类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: c > 10;
if 条件 then begin
SET_OK:"Order@SetGlobal"(c, 101*条件, 1);
GET:"Order@GetGlobal"(101, 1);
end;
保存到自选股或板块
| 条件 | 条件成立时(即 条件:=1),保存股票到自选股或板块 |
|---|---|
| ID | 自选股ID,0表示自选股,1表示自选股1以此类推 也可以配置一个order.ini文件指定ID对应的板块名 即完全兼容kingwa的格式 |
| 是否保存到列表最前列 | 1表示增加到自选股或板块的最前面,默认0加到列表后面 |
{例子:当最新价小于10,增加到自选股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: DynaInfo(7) < 10;
if 条件 then begin
选入:="Order@save2blk"(条件);
end;
条件: DynaInfo(7) < 10; if 条件 then begin 选入:="Order@save2blk"(条件,1); end;
从自选股或板块删除股票
| 条件 | 条件成立时(即 条件:=1),从自选股或板块删除股票 |
|---|---|
| ID | 自选股ID,0表示自选股,1表示自选股1以此类推 也可以配置一个order.ini文件指定ID对应的板块名 即完全兼容kingwa的格式 |
{例子:当最新价小于10,删除自选股}
{如在大智慧K图上运行,所有条件都要加上BARSTATUS=2的条件,否则大智慧每根k线都会调用dll一次会很慢}
条件: DynaInfo(7) < 10;
if 条件 then begin
删除:="Order@del2blk"(条件);
end;
条件: DynaInfo(7) < 10; if 条件 then begin 选入:="Order@del2blk"(条件,1); end;
获取自选股或板块股票的数量
| ID | 自选股ID,0表示自选股,1表示自选股1以此类推 也可以配置一个order.ini文件指定ID对应的板块名 即完全兼容kingwa的格式 |
|---|
{例子:获取自选股数量}
自选股数量:"Order@BlkCount"(0);
{例子:获取自选股1数量}
自选股1数量:"Order@BlkCount"(1);
查询当前股票是否满足符合问财编号对应的选股条件
| 问财编号 | 每个问财编号对应一个问财选股条件即问财提问,查询条件 可以在助手建立不同的问财条件你也可以点助手FX按钮直接生成问财选股公式 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的 |
{1代表的问财问题可以在助手里添加,这里1表示 10年roe>15%;pe<10;PB<2}
问财编号:=1;
if BarStatus = 2 then{最后一个bar才调用}
问财:"Order@WenCai"(问财编号);
查询当前股票是否满足符合热点编号对应的选股条件
| 热点编号 | 每个热点编号对应一个热点 可以在助手查看同花顺东财淘股吧的热点编号你也可以点助手FX按钮直接生成热点选股公式 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的 |
{1代表的热股可以在助手里查看,这里1表示 同花顺大家都在看热榜}
热股编号:=1;
if BarStatus = 2 then{最后一个bar才调用}
热股:"Order@Hot"(热股编号);
查询当前股票是否满足符合Ai编号对应的选股条件
| Ai编号 | 每个Ai编号对应一个Ai查询条件 可以在助手查看和建立不同的Ai编号你也可以点助手FX按钮直接生成Ai选股公式 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的 |
{1代表的AI选股可以在助手里查看和建立,这里1表示 根据最新的互联网新闻, 给出热度最高的10个股票, 需要给出选股理由和最终股票代码列表,股票列表以 ',' 分隔,注意答案以纯文本给出,并且在最后面加上 最终答案是:这里给出所有股票代码列表}
AI编号:=1;
if BarStatus = 2 then{最后一个bar才调用}
AI选股:"Order@Ai"(AI编号);
查询当前股票的Ai评分
| 更新条件 | 在条件成立时重新查询ai评分如果评分已经存在,无论更新条件是否成立都会返回上一次的评分 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的 |
{81代表的AI个股情绪打分可以在助手里查看,这里81表示 根据最新的互联网新闻, 给出%s的市场利好或利空情绪, 情绪分从0到10打分,5以上表示偏利好,数值越大利好越大,注意答案以纯文本给出,并且在最后面加上 最终答案是:%s=分数}
AI编号:=81;
更新条件: currenttime > 73000 and currenttime < 73100 and BarStatus = 2 ;
个股情绪分:"Order@AiRating"(更新条件);
查询当前市场的Ai评分
| 更新条件 | 在条件成立时重新查询ai评分如果评分已经存在,无论更新条件是否成立都会返回上一次的评分 |
|---|---|
| 助手编号 | 可选,在多个助手的情况下分别查询不同助手的 |
{80代表的AI市场情绪打分可以在助手里查看,这里80表示 根据最新的互联网新闻, 给出国内A股市场利好或利空情绪, 情绪分从0到10打分,5以上表示偏利好,数值越大利好越大,注意答案以纯文本给出,并且在最后面加上 最终答案是:市场情绪=分数}
AI编号:=80;
更新条件: currenttime > 73000 and currenttime < 73100 and BarStatus = 2 ;
个股情绪分:"Order@AiMarketRating"(更新条件);