头寸函数
 
 
AUTOCLEARSIG 自动清除信号
LASTSIG 判断最近一个信号
AUTOFILTER 自动过滤信号 LONG_VOL 模组多头可用持仓
BARSBK 上一次买开信号位置 LONG_PRICE 模组多头持仓开仓均价
BARSSK 上一次卖开信号位置 MONO_SIGNAL 限制信号
BKPRICE 买开信号位置的买开信号价位 MYVOL 读取下单手数
BKPRICE1 模组中交易合约的买开信号位置的买开信号价位 MARGIN 合约保证金
BARSBP 上一次买平信号位置 MONEYRATIO 资金使用率
BARSSP 上一次卖平信号位置 MONEYTOT 模组权益
BKHIGH 买开仓以来的最高价 MONEY模组资金余额
BKLOW 买开仓以来的最低价 OFFSETPROFIT 当前模组平仓盈亏
BKVOL 模组信号多头持仓 PROFIT 模组逐笔浮盈
CONDITION_ORDER 条件单模组关键字 SETDEALPERCENT 设置下单的模组资金使用比例
FEE 合约手续费 SETSIGPRICETYPE 不同的信号设置不同的价格方式
GROUPBKVOL 模型分组信号模组多头持仓 SETSIGMAXNUM 设置一根K线最大信号个数
GROUPSKVOL 模型分组信号模组空头持仓 SKPRICE 卖开信号位置的卖开信号价位
GROUPBKPRICE
分组指令中买开信号位置的买开信号价位
SKPRICE1 模组中交易合约的卖开信号位置的卖开信号价位
GROUPSKPRICE
分组指令中卖开信号位置的卖开信号价位
SKHIGH 卖开仓以来的最高价
ISLASTCLOSEOUT
判断上一个信号是否CLOSEOUT
SKLOW 卖开仓以来的最低价
ISLASTBK 判断上一个信号是否BK SKVOL 模组信号空头持仓
ISLASTSK 判断上一个信号是否SK SHORT_VOL 模组空头可用持仓
ISLASTBP 判断上一个信号是否BP SHORT_PRICE 模组空头开仓均价
ISLASTSP 判断上一个信号是否SP UNITLIMIT 取交易合约限制拥有持仓数
ISLASTBPK 判断上一个信号是否BPK VOLMARGIN 持仓保证金
ISLASTSPK 判断上一个信号是否SPK  
 
 

 
 
AUTOCLEARSIG
自动清除信号
一根K线上信号满60个时,自动对前面的信号进行删除。
清除规则:
1、仅作用于信号执行方式选择为不复核的模型
2.仅作用于模组运行过程中,效果测试及模组加载的历史信号不受该关键字影响。
例:
CLOSE>OPEN,BK;
CLOSE<BKPRICE+2||CLOSE<BKPRICE-1,SP;
AUTOFILTER;
AUTOCLEARSIG;
加入了AUTOCLEARSIG关键字,在大周期上一根K线上反复出现信号,满60个时删掉历史所有信号 只保留最后的60个信号;
若不加入AUTOCLEARSIG关键字,当信号满60个时,模组自动停止运行
AUTOFILTER
自动过滤信号
对模型信号进行过滤。
过滤规则:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易指令必须先开后平配对出现(例如:出现BK指令,下一个指令只允许出现SP指令;反手则是SPK和BPK交叉出现)。
例:
CLOSE>OPEN,BK;
CLOSE<OPEN,SP;
AUTOFILTER; 注意如果使用自动过滤函数建议就不要在代码中再使用其它的语句进行过滤的编写。
BARSBK
上一次买开信号位置
上一次买开信号位置
用法:
BARSBK返回上一次买开仓的K线距离当前K线的周期数(不包含出现BK信号的那根K线);发出BK信号的当根k线BARSBK返回空值
如果取包含BK信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSBK+1;由于发出BK信号的当根k线BARSBK返回空值,则BARSBK+1在发出BK信号当根k线返回空值。
注:
1、若当前K线之前无BK信号,则函数返回值为空值
2、BK信号当根K线信号固定后BARSBK返回为空值
例:
1、BARSBK>10,SP;上一次买开仓(不包含出现买开信号的那根K线)距离当前K线的周期数大于10,卖平;
2、HHV(H,BARSBK+1);上一次买开仓(包含开仓信号出现的当根k线)到当前的最高价的最大值。
当根K线出现BK信号,AA返回为空值,如果需要返回当根K线上最高价,模型需要修改为:
AA:IFELSE(BARSBK>=1,HHV(H,BARSBK+1),H);
(1)当根K线出现BK信号,BARSBK返回为空值,不满足BARSBK>=1的条件,则取值为当根K线的最高价H
(2)发出BK信号之后K线BARSBK返回买开仓的K线距离当前K线的周期数,满足BARSBK>=1的条件,则取值为HHV(H,BARSBK+1),即买开仓(包含开仓信号出现的当根k线)到当前的最高价的最大值。
修改后如果平仓条件中用到了AA的值,当根K线满足了平仓条件,可以出现平仓信号
3、AA:IFELSE(BARSBK>=1,REF(C,BARSBK),C);//取最近一次买开仓K线的收盘价
(1)发出BK信号的当根k线BARSBK返回空值,则当根K线不满足BARSBK>=1的条件,AA返回当根k线的收盘价;
(2)发出BK信号之后的k线BARSBK返回买开仓的K线距离当前K线的周期数,则AA返回REF(C,BARSBK),即开仓k线的收盘价;
(3)例:1、2、3三根k线,1 K线为开仓信号的当根k线,则返回当根k线的收盘价,2、3 K线AA返回值为 1 K线的收盘价。
BARSSK
上一次卖开信号位置
上一次卖开信号位置
用法:
BARSSK返回上一次卖开仓的K线距离当前K线的周期数(不包含出现SK信号的那根K线);发出SK信号的当根k线BARSSK返回空值
如果取包含SK信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSSK+1;由于发出SK信号的当根k线BARSSK返回空值,则BARSSK+1在发出SK信号当根k线返回空值。
注:
1、若当前K线之前无SK信号,则函数返回值为空值
2、SK信号当根K线信号固定后BARSSK返回为空值r\n例:
1、BARSSK>10,BP;上一次卖开仓(不包含出现买开信号的那根K线)距离当前K线的周期数大于10,买平;
2、LLV(L,BARSSK+1);上一次卖开仓(包含开仓信号出现的当根k线)到当前的最低价的最小值。
当根K线出现SK信号,AA返回为空值,如果需要返回当根K线上最低价,模型需要修改为:
AA:IFELSE(BARSSK>=1,LLV(L,BARSSK+1),L);
(1)当根K线出现SK信号,BARSSK返回为空值,不满足BARSSK>=1的条件,则取值为当根K线的最低价L
(2)发出SK信号之后K线SARSBK返回卖开仓的K线距离当前K线的周期数,满足BARSSK>=1的条件,则取值为LLV(L,BARSSK+1),即卖开仓(包含开仓信号出现的当根k线)到当前的最低价的最小值。
修改后如果平仓条件中用到了AA的值,当根K线满足了平仓条件,可以出现平仓信号。
3、AA:IFELSE(BARSSK>=1,REF(C,BARSSK),C);//取最近一次卖开仓K线的收盘价
(1)发出SK信号的当根k线BARSSK返回空值,则当根K线不满足BARSSK>=1的条件,AA返回当根k线的收盘价;
(2)发出SK信号之后的k线BARSSK返回卖开仓的K线距离当前K线的周期数,则AA返回REF(C,BARSSK),即开仓k线的收盘价;
(3)例:1、2、3三根k线,1 K线为开仓信号的当根k线,则返回当根k线的收盘价,2、3 K线AA返回值为 1 K线的收盘价。
BKPRICE
买开信号位置的买开信号价位
模型买开信号位置的买开信号价位。

用法:
BKPRICE返回最近一次模型买开位置的买开信号价位。
(1)当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。
(2)模组运行环境,返回的是BK(BPK)信号发出时的行情的最新价(可以与模组运行界面中“信号记录”中的BK(BPK)信号对应的“当时最新价”比较)。BK信号发出并且已经确认固定后,BKPRICE的值更新为信号发出时的行情的最新价
注意:
a.信号执行方式选择为不进行信号复核或K线走完确认信号下单,则BK委托的时BKPRICE的值更新为信号发出时的行情的最新价;
b.信号执行方式选择为K线走完进行信号复核,则BK信号委托时BKPRICE返回的还是上一次BK信号发出时的行情的最新价;K线走完复核信号确认存在,BKPRICE返回本次BK信号发出时行情的最新价
(3)模组运行环境历史信号取值,返回出信号那根k线的指令价。
(4)含有BKPRICE的模型,模组自动初始化时返回的为上一次买开信号的指令价;手动初始化,如果上一个信号为买开,BKPRICE返回为初始化弹出框中填入的价格(默认填入上一次买开信号位置的指令价);
(5)效果预览环境,信号执行方式选择K线走完确认信号下单,返回的是出信号那根k线的收盘价;信号执行方式选择出信号立即下单,K线走完复核或者出信号立即下单不进行复核,返回指令价。
(6)主图加载运行,BKPRICE返回的买开信号当根的收盘价

写法示例:
BKPRICE-CLOSE>60 && BKPRICE>0 && BKVOL>0, SP;//如果买开价位比当前价位高出60,且多头持仓存在,卖平仓。

BKPRICE1
模组中交易合约的买开信号位置的买开信号价位
模组中交易合约的买开信号位置的买开信号价位。

用法:
(1)当数据合约和交易合约相同时BKPRICE1值和BKPRICE值相等。
(2)当交易合约另外指定时,BKPRICE1历史数据值与BKPRICE值相等取数据合约价格,盘中BKPRICE取数据合约的价格,BKPRICE1取交易合约价格。
(3)当模型自动初始化时,BKPRICE1取最近的BK信号计算的数据合约的指令价;手动初始化时,BKPRICE1取初始化弹出框中填入的持仓价格(默认显示为买开信号的指令价)。

BARSBP
上一次买平信号位置
上一次买平信号位置

用法:
BARSBP返回上一次买平仓的K线距离当前K线的周期数(不包含出现BP信号的那根K线);发出BP信号的当根k线BARSBP返回空值。
如果取包含BP信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSBP+1。由于发出BP信号的当根k线BARSBP返回空值,则BARSBP+1在发出BP信号当根k线返回空值。

注:
若当前K线之前无BP信号,则函数返回值为空值

例:
1、BARSBP>10,BK;上一次买平仓(不包含出现买平信号的那根K线)距离当前K线的周期数大于10,买开。
2、AA:HHV(H,BARSBP+1);上一次买平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。
当根K线出现BP信号,AA返回为空值,如果需要返回当根K线上最高价,模型需要修改为:
AA:IFELSE(BARSBP>=1,HHV(H,BARSBP+1),H);
(1)当根K线出现BP信号,BARSBP返回为空值,不满足BARSBP>=1的条件,则取值为当根K线的最高价H
(2)发出BP信号之后K线BARSBP返回买平仓的K线距离当前K线的周期数,满足BARSBP>=1的条件,则取值为HHV(H,BARSBP+1),即买平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。
3、AA:IFELSE(BARSBP>=1,REF(C,BARSBP),C);//取最近一次买平仓K线的收盘价(
1)发出BP信号的当根k线BARSBP返回空值,则当根K线不满足BARSBP>=1的条件,AA返回当根k线的收盘价;
(2)发出BP信号之后的k线BARSBP返回买平仓的K线距离当前K线的周期数,则AA返回REF(C,BARSBP),即开仓k线的收盘价;
(3)例:1、2、3三根k线,1 K线为平仓信号的当根k线,则返回当根k线的收盘价,2、3 K线AA返回值为 1 K线的收盘价。

BARSSP
上一次卖平信号位置
上一次卖平信号位置

用法:
BARSSP返回上一次卖平仓的K线距离当前K线的周期数(不包含出现SP信号的那根K线);发出SP信号的当根k线BARSSP返回空值。
如果取包含SP信号出现的那根K线到当前K线的周期数,则需要在此函数后+1,即BARSSP+1。由于发出SP信号的当根k线BARSSP返回空值,则BARSSP+1在发出SP信号当根k线返回空值。

注:
若当前K线之前无SP信号,则函数返回值为空值

例:
1、BARSSP>10,BK;上一次卖平仓(不包含出现卖平信号的那根K线)距离当前K线的周期数大于10,买开。
2、AA:HHV(H,BARSSP+1);上一次,卖平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。
当根K线出现SP信号,AA返回为空值,如果需要返回当根K线上最高价,模型需要修改为:
AA:IFELSE(BARSSP>=1,HHV(H,BARSSP+1),H);
(1)当根K线出现SP信号,BARSSP返回为空值,不满足BARSSP>=1的条件,则取值为当根K线的最高价H
(2)发出SP信号之后K线BARSSP返回买平仓的K线距离当前K线的周期数,满足BARSSP>=1的条件,则取值为HHV(H,BARSSP+1),即卖平仓(包含平仓信号出现的当根k线)到当前的最高价的最大值。
3、AA:IFELSE(BARSSP>=1,REF(C,BARSSP),C);//取最近一次卖平仓K线的收盘价
(1)发出SP信号的当根k线BARSSP返回空值,则当根K线不满足BARSSP>=1的条件,AA返回当根k线的收盘价;
(2)发出SP信号之后的k线BARSSP返回卖平仓的K线距离当前K线的周期数,则AA返回REF(C,BARSSP),即开仓k线的收盘价;
(3)1、2、3三根k线,1 K线为平仓信号的当根k线,则返回当根k线的收盘价,2、3 K线AA返回值为 1 K线的收盘价

BKHIGH
买开仓以来的最高价
买开仓以来的最高价
用法:
BKHIGH返回最近一次模型买开位置到当前的最高价.
(1)模组运行环境,返回bk(bpk)指令发出后到当前的最高价;
a.K线走完确认信号下单,BK(BPK)信号当根K线返回的为信号发出时行情的最新价(即下根K线的开盘价);BK之后的K线返回委托以来的行情的最高价
b.信号执行方式选择K线走完复核,从BK(BPK)信号发出时行情时开始统计行情的最高价;如果信号消失,返回上次买开以来的行情的最高价,如果信号确认存在,返回当根K线记录的行情的最高价
注:如果BK信号发出后,中间出了信号消失,从最后一次信号出现开始统计最高价
c.信号执行方式选择不进行信号复核,BK(BPK)信号的当根K线返回的从信号发出到K线走完时行情的最高价;BK(BPK)信号之后的K线返回信号发出以来行情的最高价
(2)加载模型时历史数据:
a.K线走完确认信号下单,如果当前K线上出现bk(bpk)信号,返回当前bk(bpk)信号所在K线的收盘价,之后K线的最高价与当根k线的收盘价做比较取较大值;
b.其他信号执行方式,BK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较大的值;BK信号以后的K线的最高价与BK信号当根的返回值比较取较大值
(3)效果测试中:
a.K线走完确认信号下单,如果当前K线上出现bk(bpk)信号,返回当前bk(bpk)信号所在K线的收盘价,之后K线的最高价与当根k线的收盘价做比较取较大值;
b.其他信号执行方式,BK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较大的值;BK信号以后K线的最高价与BK信号当根的返回值比较取较大值
例:
C<BKHIGH-5*MD,SP;//买开位置到当前的最高价回撤5个最小变动价位则止损平仓。
(4)加载到主图:如果当前K线上出现bk(bpk)信号,返回当前bk(bpk)信号所在K线的收盘价,之后K线的最高价与当根k线的收盘价做比较取较大值。
BKLOW
买开仓以来的最低价
买开仓以来的最低价
用法:
BKLOW返回最近一次模型买开位置到当前的最低价.
(1)模组运行环境,返回bk(bpk)指令发出后到当前的最低价;
a.K线走完确认信号下单,BK(BPK)信号当根K线返回的为信号发出时行情的最新价(即下根K线的开盘价);BK之后的K线返回委托以来的行情的最低价
b.信号执行方式选择K线走完复核,从BK(BPK)信号发出时行情时开始统计行情的最低价;如果信号消失,返回上次买开以来的行情的最低价,如果信号确认存在,返回当根K线记录的行情的最低价
注:如果BK信号发出后,中间出了信号消失,从最后一次信号出现开始统计最低价
c.信号执行方式选择不进行信号复核,BK(BPK)信号的当根K线返回的从信号发出到K线走完时行情的最低价;BK(BPK)信号之后的K线返回信号发出以来行情的最低价
(2)加载模型时历史数据:
a.K线走完确认信号下单,如果当前K线上出现bk(bpk)信号,返回当前bk(bpk)信号所在K线的收盘价,之后K线的最低价与当根k线的收盘价做比较取较小值;
b.其他信号执行方式,BK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较小的值;BK信号以后的最低价与BK信号当根的返回值比较取较小值
(3)效果测试中:
a.K线走完确认信号下单,如果当前K线上出现bk(bpk)信号,返回当前bk(bpk)信号所在K线的收盘价,之后K线的最低价与当根k线的收盘价做比较取较小值;
b.其他信号执行方式,BK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较小的值;BK信号以后K线的最低价与BK信号当根的返回值比较取较小值
例:
C>BKLOW+5*MD,SP;//买开位置到当前的最低价上涨5个最小变动价位则平仓。
(4)加载到主图:如果当前K线上出现bk(bpk)信号,返回当前bk(bpk)信号所在K线的收盘价,之后K线的最低价与当根k线的收盘价做比较取较小值。
BKVOL
模组信号多头持仓
模组信号多头持仓
用法:
BKVOL返回模组信号多头持仓。
(1)效果测试中
a.信号执行方式选择K线走完确认信号下单或者出信号立即下单,K线走完复核:
BK(BPK)信号出现的当根K线上,BKVOL取值不变,与上根K线上返回值保持一致;
BK(BPK)信号的下根K线上,BKVOL的取值增加开仓手数的数值;
SP(SPK)信号出现的当根K线上,BKVOL取值不变,与上根K线上返回值保持一致;
SP(SPK)信号的下根K线上,BKVOL的取值减少平仓手数的数值;
b.信号执行方式选择出信号立即下单,不进行复核:
BK(BPK)信号出现的当根K线上,BKVOL取值增加开仓手数的数值;
BK(BPK)信号的下根K线上,BKVOL的取值不变,与上根K线上返回值保持一致;
SP(SPK)信号出现的当根K线上,BKVOL取值减少平仓手数的数值;
SP(SPK)信号的下根K线上,BKVOL的取值不变,与上根K线上返回值保持一致;
(2)模组运行中过滤模型初始化上一信号选择买开,并且初始化进来多头持仓为M,BKVOL返回值增加M,选择上一信号为其他信号,BKVOL返回值为0
(3)模组运行中非过滤模型初始化上一信号选择买开或者卖平,并且初始化进来多头持仓为M,BKVOL返回值增加M,选择上一信号为其他信号,BKVOL返回值为0
(4)模组运行过程中BK(BPK)信号出现并且确认固定后,BKVOL的取值增加开仓手数的数值;SP(SPK)信号出现并且确认固定后,BKVOL的取值减少平仓手数的数值
写法示例:
BKVOL=0&&C>O,BK(1);//多头持仓为0并且收盘价大于开盘价时,买开一手
BKVOL>=1&&H>HV(H,5),BK(2); //多头持仓大于等于1,并且当根K线的最高价大于前面5个周期中最高价中最大值时,加仓2手
BKVOL>0&&L<REF(L,5),SP(BKVOL); //多头持仓大于0,并且当根K线的最低价小于5个周期前K线的最低价时,卖平所有多头持仓
注:
1、含有此函数的模型不支持加载到主图及信号预警盒子
2、与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!

CONDITION_ORDER
条件单模组关键字
条件单模组关键字
用法:
编写特殊的条件单模型 需要写关键字“CONDITION_ORDER”
例:
C>O,BK(1);
CONDITION_ORDER;
FEE
合约手续费
合约手续费

用法:
FEE返回当前合约的手续费(用户启动模组时设置的)。
当交易品种手续费为按手数收取,返回值为手续费
当交易品种手续费按比例收取,返回值为手续费比例(小数)。

注:
1、FEE为资金管理函数,不能加载到主图使用
2、效果测试中FEE取值为载入数据中,对手续费的设置
3、模组运行中FEE取值为模组加载中保证金参数中手续费的设置
(保证金参数中手续费的设置同样作用于模组运行列表中对手续费成本的计算)
注意
1、不能与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等
2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
GROUPBKVOL
模型分组信号模组多头持仓
取模型分组后的模组多头持仓。
用法:
GROUPBKVOL('A')返回模型组A的多头模组持仓。
参数可以取从A-I
注:
相应组的买开信号后,GROUPBKVOL('A')增加,即BK(‘A’),BPK(‘A’),BK(‘A’,1)后GROUPBKVOL('A')增加,其他组的开仓信号,GROUPBKVOL('A')取值不变
相应组的卖平信号后,GROUPBKVOL('A')取值相应的减少,即SP(‘A’),SPK(‘A’),SP(‘A’,1)后,GROUPBKVOL('A')取值减少,其他组的平仓信号后,GROUPBKVOL('A')取值不变
全清信号后,GROUPBKVOL('A')取值减为0
例:
MA1:MA(C,5);
C>MA1,BK(‘A’,1);
C>O,BK(‘B’,1);
GROUPBKVOL('A')>0&&C>REF(H,1),BK(‘A’,1);//A组多头持仓大于0并且最新价大于前一周前最高价,再买开一手
C<MA1,SP(‘A’,GROUPBKVOL('A'));//最新价小于5日均线,卖平所有的A组的多头持仓
C<O,SP(‘B’,GROUPBKVOL('B'));//阴线收阴线,卖平所有的B组多头持仓
注意
1、与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差。2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
GROUPSKVOL
模型分组信号模组空头持仓
取模型分组后的模组空头持仓。
用法:
GROUPSKVOL('A')返回模型组A的空头模组持仓。
参数可以取从A-I
注:
相应组的卖开信号后,GROUPSKVOL('A')增加,即SK(‘A’),SPK(‘A’),SK(‘A’,1)后GROUPSKVOL('A')增加,其他组的开仓信号,GROUPSKVOL('A')取值不变
相应组的买平信号后,GROUPSKVOL('A')取值减少,即BP(‘A’),BPK(‘A’),BP(‘A’,1)后,GROUPSKVOL('A')取值减少,其他组的平仓信号后,GROUPSKVOL('A')取值不变
全清信号后,GROUPBKVOL('A')取值减为0
例:
MA1:MA(C,5);
C<MA1,SK(‘A’,1);
C<O,SK(‘B’,1);
GROUPSKVOL('A')>0&&C<REF(L,1),SK(‘A’,1); //A组空头持仓大于0并且最新价大于前一周前最高价,再卖开一手
C>MA1,BP(‘A’,GROUPSKVOL('A')); //最新价大于5日均线,买平所有的A组的空头持仓
C>O,BP(‘B’,GROUPSKVOL('B')); //阴线收阳线,买平所有的B组空头持仓
注意1、与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差。
2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
GROUPBKPRICE
分组指令中买开信号位置的买开信号价位
模型分组指令中某组买开信号位置的买开信号价位。
用法:
GROUPBKPRICE 返回分组指令中最近一次模型买开位置的买开信号价位。
写法示例:
C>O,BK('A');
BB:GROUPBKPRICE('A');//给BB赋值为A组指令中最近一次模型买开位置的买开信号价位。
GROUPSKPRICE
分组指令中卖开信号位置的卖开信号价位
模型分组指令中某组卖开信号位置的卖开信号价位。
用法:
GROUPSKPRICE 返回分组指令中最近一次模型卖开位置的卖开信号价位。
写法示例:
C<O,SK('B');
SS:GROUPSKPRICE('B');//给SS赋值为B组指令中最近一次模型卖开位置的卖开信号价位。
ISLASTCLOSEOUT
判断上一个信号是否CLOSEOUT
判断上一个信号是否CLOSEOUT 。
用法:
ISLASTCLOSEOUT 如果上一个交易信号是CLOSEOUT则返回1(Yes),否则返回0(No)
(1)主图加载,CLOSEOUT信号当根ISLASTCLOSEOUT返回值为0,CLOSEOUT信号的下根ISLASTCLOSEOUT返回值为1
(2)效果测试及模组运行
a.信号执行方式选择K线走完及K线走完进行信号复核,CLOSEOUT信号当根ISLASTCLOSEOUT返回值为0,CLOSEOUT信号的下根ISLASTCLOSEOUT返回值为1
b.信号执行方式选择不进行信号复核,CLOSEOUT信号当根ISLASTCLOSEOUT返回值为1
ISLASTBK
判断上一个信号是否BK
判断上一个交易信号是否是BK。

用法:
ISLASTBK 如果上一个交易信号是BK则返回1(Yes),否则返回0(No)

注:如果模型中含有BPK条件,且上一个信号为平仓信号时,BPK会自动转化为BK信号发出,此时虽然满足BPK条件,但图中发出的信号为BK信号,所以ISLASTBK返回为1
(1)主图加载,BK信号当根ISLASTBK返回值为0,BK信号的下根ISLASTBK返回值为1
(2)效果测试及模组运行
a.信号执行方式选择K线走完及K线走完进行信号复核,BK信号当根ISLASTBK返回值为0,BK信号的下根ISLASTBK返回值为1
b.信号执行方式选择不进行信号复核,BK信号当根ISLASTBK返回值为1
ISLASTSK
判断上一个信号是否SK
判断上一个交易信号是否是SK。

用法:
ISLASTSK 如果上一个交易信号是SK则返回1(Yes),否则返回0(No)

注:如果模型中含有SPK条件,且上一个信号为平仓信号时,SPK会自动转化为SK信号发出,此时虽然满足SPK条件,但图中发出的信号为SK信号,所以ISLASTSK返回为1
(1)主图加载,SK信号当根ISLASTSK返回值为0,SK信号的下根ISLASTSK返回值为1
(2)效果测试及模组运行
a.信号执行方式选择K线走完及K线走完进行信号复核,SK信号当根ISLASTSK返回值为0,SK信号的下根ISLASTSK返回值为1
b.信号执行方式选择不进行信号复核,SK信号当根ISLASTSK返回值为1
ISLASTBP
判断上一个信号是否BP
判断上一个交易信号是否是BP。

用法:
ISLASTBP 如果上一个交易信号是BP则返回1(Yes),否则返回0(No)
(1)主图加载,BP信号当根ISLASTBP返回值为0,BP信号的下根ISLASTBP返回值为1
(2)效果测试及模组运行
a.信号执行方式选择K线走完及K线走完进行信号复核,BP信号当根ISLASTBP返回值为0,BP信号的下根ISLASTBP返回值为1
b.信号执行方式选择不进行信号复核,BP信号当根ISLASTBP返回值为1
ISLASTSP
判断上一个信号是否SP
判断上一个交易信号是否是SP。

用法:
ISLASTSP 如果上一个交易信号是SP则返回1(Yes),否则返回0(No)
(1)主图加载,SP信号当根ISLASTSP返回值为0,SP信号的下根ISLASTSP返回值为1
(2)效果测试及模组运行
a.信号执行方式选择K线走完及K线走完进行信号复核,SP信号当根ISLASTSP返回值为0,SP信号的下根ISLASTSP返回值为1
b.信号执行方式选择不进行信号复核,SP信号当根ISLASTSP返回值为1
ISLASTBPK
判断上一个信号是否BPK
判断上一个交易信号是否是BPK。

用法:
ISLASTBPK 如果上一个交易信号是BPK则返回1(Yes),否则返回0(No)

注:如果模型中含有BPK条件,且上一个信号为平仓信号时,BPK会自动转化为BK信号发出,此时虽然满足BPK条件,但图中发出的信号为BK信号,所以ISLASTBPK返回为0
(1)主图加载,BPK信号当根ISLASTBPK返回值为0,BPK信号的下根ISLASTBPK返回值为1(
2)效果测试及模组运行
a.信号执行方式选择K线走完及K线走完进行信号复核,BPK信号当根ISLASTBPK返回值为0,BPK信号的下根ISLASTBPK返回值为1
b.信号执行方式选择不进行信号复核,BPK信号当根ISLASTBPK返回值为1
ISLASTSPK
判断上一个信号是否SPK
判断上一个交易信号是否是SPK。

用法:
ISLASTSPK 如果上一个交易信号是SPK则返回1(Yes),否则返回0(No)

注:如果模型中含有SPK条件,且上一个信号为平仓信号时,SPK会自动转化为SK信号发出,此时虽然满足SPK条件,但图中发出的信号为SK信号,所以ISLASTSPK返回为0
(1)主图加载,SPK信号当根ISLASTSPK返回值为0,SPK信号的下根ISLASTSPK返回值为1
(2)效果测试及模组运行
a.信号执行方式选择K线走完及K线走完进行信号复核,SPK信号当根ISLASTSPK返回值为0,SPK信号的下根ISLASTSPK返回值为1
b.信号执行方式选择不进行信号复核,SPK信号当根ISLASTSPK返回值为1
LASTSIG
判断最近一个信号
当前K线前的最近一个信号

用法:
LASTSIG当前K线前的最近一个信号判断。

例:AA:LASTSIG=BK;当前K线前最近一个信号为BK信号AA返回值为1,否则返回0.
LASTSIG的不同返回值代表的信号:
BK:200;
SK:201;
BP:202;
SP:203;
BPK:204;
SPK:205;

注意
1、与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差。
2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
LONG_VOL
模组多头可用持仓
模组多头可用持仓

用法:
LONG_VOL取模组的多头可用持仓。
该函数不支持效果测试,只能用于模组运行。
1、模型初始化多头持仓,LONG_VOL取值为初始化多头持仓数量
2、模型发出买开仓信号,并且成交,LONG_VOL取值增加相应的成交数量,开仓委托挂单,LONG_VOL不变
3、模型发出卖平仓信号,LONG_VOL取值减少相应的数量,即使平仓委托挂单,LONG_VOL取值也会发生相应的变化

例:
A,SP(LONG_VOL/2); //满足条件A卖平模组多头持仓的1/2。
LONG_PRICE
模组多头持仓开仓均价
模组多头持仓开仓均价

用法:
该函数不支持效果测试,只能用于模组运行。
1、初始化持仓,LONG_PRICE取值为初始化时该合约的持仓均价,若模型自动初始化,取值为最近的买开指令的指令价;若模型手动初始化,取值为初始化弹出框中的开仓价格(默认填写上一个买开信号的指令价)
2、模组运行过程中,LONG_PRICE取值为多头持仓开仓均价,根据成交价计算得到若BK信号发出后形成挂单,LONG_PRICE取值为0

例:
CLOSE-LONG_PRICE>60 && LONG_PRICE >0 && BKVOL>0, SP;//如果当前价位比多头持仓均价高出60,且多头持仓存在,卖平仓。
MONO_SIGNAL
限制信号
模型写该函数模型一根K线上只支持一个信号,一根K线上信号固定后不会再出其他信号。没写该函数默认模型支持一根K线多个信号。
非过滤模型写该函数支持同一指令行连续发;不写该函数同一根K线上、不同根K线上同一指令行均不可连续发

用法:
过滤模型、非过滤模型、公式条件单模型,如果要实现一根K线上只有一个信号的效果,需要编写中加入MONO_SIGNAL函数。
加入MONO_SIGNAL函数限制的是一根K线上存在的信号个数,一根K线上只能有一个信号;不限制信号忽闪的次数

例:
1、
CLOSE>OPEN,BPK;
CLOSE<OPEN,SPK;
AUTOFILTER;
MONO_SIGNAL;
编写了MONO_SIGNAL的过滤模型,一根K线上只支持一个信号
当根K线上满足了CLOSE>OPEN并且BPK发出,并且已经确认固定,当根K线后续又满足了CLOSE<OPEN的条件也不会再发出SPK信号,需要等到下根K线再查找满足条件的信号
2、
CLOSE>OPEN,BK(1);
CLOSE<OPEN,SP(1);
MONO_SIGNAL;
(1)编写了MONO_SIGNAL的非过滤模型,一根K线上只支持一个信号,例如当根K线上满足了CLOSE>OPEN并且BK信号已经确认固定,即使当根K线后续又满足了CLOSE<OPEN的条件也不会再发出SP信号,需要等到下根K线再查找满足条件的信号
(2)编写了MONO_SIGNAL的非过滤模型,支持同一指令行连续发,即当根K线满足CLOSE>OPEN,发出BK信号,下根K线又满足CLOSE>OPEN的条件,可以继续发出BK信号
3、
CLOSE>OPEN,BK(1);
CONDITION_ORDER;
MONO_SIGNAL;
编写了MONO_SIGNAL的公式条件模型,一根K线上只支持一个信号,且每个指令行只执行一次,全部指令行执行完毕后模型自动停止
注意:不编写MONO_SIGNAL函数,要实现多信号的模型:
(1)在模组加载中需要选择出信号立即下单,不进行信号复核、出信号N秒确认下单,不进行信号复核、K线走完前N秒确认信号下单,不进行复核这三个选项,信号发出并且为稳定信号时查找下一个满足条件的信号
(2)效果测试需要选择出信号立即下单,不进行复核

MYVOL
读取下单手数
取模组界面中的下单手数。
用法:
模组加载过程中,非过滤模型当下单手数设置为3时,BK(2*MYVOL)实现的效果为BK(6)。
例:
C>O,BK(3*MYVOL);
C<O,SP(BKVOL);
MARGIN
合约保证金
合约保证金

用法:MARGIN返回当前合约的保证金比率(用户启动模组时设置的)。
注意
1、不能与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等
2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
MONEYRATIO
资金使用率
资金使用率
用法:
MONEYRATIO返回当前的模组资金的使用率。
注意不能与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!

MONEYTOT
模组权益
模组权益

用法:
MONEYTOT返回当前模组权益(模组可用资金+持仓占用的保证金+浮动盈亏)。

注:
1、持仓占用的保证金=持仓均价*保证金比例*交易单位*手数
2、注意不能与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等
3、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!

MONEY
模组资金余额
模组资金余额

用法:
MONEY返回模组资金余额。
开仓信号:初始资金-持仓占用的保证金(持仓占用的保证金=持仓均价*保证金比例*交易单位*手数)
平仓信号:上一周期可用资金+平仓盈亏+平仓释放的保证金(平仓盈亏=(平仓信号的指令价-持仓均价)*手数*交易单位;平仓释放的保证金=持仓均价*保证金比例*交易单位*手数)

注:持仓均价的计算
(1)初始化的持仓,如果为自动初始化,持仓均价为指令价;如果为手动初始化,持仓均价为初始化框中显示的持仓均价(默认显示上一信号指令价)
(2)模组运行过程中
a.信号执行方式为:K线走完确认信号下单或K线走完进行信号复核,持仓均价为开仓信号当根的收盘价
b.信号执行方式为:不进行信号复核,持仓均价为开仓信号当根的指令价
c.非过滤模型加仓后,持仓均价为收盘价或指令价的均值
(3)效果测试中
a.信号执行方式为:K线走完确认信号下单,持仓均价为开仓信号当根的收盘价
b.信号执行方式为:不进行信号复核或K线走完进行信号复核,持仓均价为开仓信号当根的指令价
c.非过滤模型加仓后,持仓均价为收盘价或指令价的均值
说明:
1、模组运行过程中具体的取值
(1)历史信号,MONEY返回值根据模组起始资金计算
(2)模组初始化持仓后MONEY返回值为初始化框中模组可用资金
(3)模组运行过程中
信号执行方式选择,K线走完或K线走完复核:
a.开仓信号当根,MONEY返回值与上一周期保持不变
b.开仓信号之后,未出现平仓信号时MONEY返回值为开仓信号当根的可用资金-开仓占用的保证金
c.平仓信号当根,MONEY返回值与上一周期保持一致
d.平仓信号持仓为0之后,MONEY返回值为上一周期的可用资金+平仓盈亏+持仓释放的保证金
注:平仓盈亏=(平仓信号的收盘价-持仓均价)*手数*交易单位
信号执行方式选择,不进行信号复核:
a.开仓信号当根,MONEY返回值为上一周期的可用资金-开仓占用的保证金
b.开仓信号之后,未出现平仓信号时MONEY返回值与开仓信号当根保持一致
c.平仓信号当根,持仓减为0,MONEY返回值上一周期的可用资金+平仓盈亏+持仓释放的保证金
注:平仓盈亏=(平仓信号的指令价-持仓均价)*手数*交易单位
2、效果测试中具体的取值
信号执行方式选择,K线走完或K线走完复核:
a.开仓信号当根,MONEY返回值与上一周期保持不变
b.开仓信号之后,未出现平仓信号时MONEY返回值为开仓信号当根的可用资金-开仓占用的保证金
c.平仓信号当根,MONEY返回值与上一周期保持一致
d.平仓信号持仓为0之后,MONEY返回值为上一周期的可用资金+平仓盈亏+持仓释放的保证金
注:信号执行方式选择K线走完确认信号下单时,平仓盈亏=(平仓信号的收盘价-持仓均价)*手数*交易单位;信号执行方式选择出信号立即下单,K线走完复核时,平仓盈亏=(平仓信号的指令价-持仓均价)*手数*交易单位
信号执行方式选择,不进行信号复核:
a.开仓信号当根,MONEY返回值为上一周期的可用资金-开仓占用的保证金
b.开仓信号之后,未出现平仓信号时MONEY返回值与开仓信号当根保持一致
c.平仓信号当根,持仓减为0,MONEY返回值上一周期的可用资金+平仓盈亏+持仓释放的保证金
注:平仓盈亏=(平仓信号的指令价-持仓均价)*手数*交易单位
(1)如果为非过滤模型,减仓信号后(即平仓信号出现,持仓减为0),MONEY计算公式中,持仓均价不变,手数减少。
(2)MONEY为资金管理函数,不支持主图加载
(3)与未来函数等函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差
(4)本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!

OFFSETPROFIT
当前模组平仓盈亏
返回当前模组的平仓盈亏。

注:
1、OFFSETPROFIT为资金管理函数,不能加载到主图使用
2、效果测试:
(1)OFFSETPROFIT返回的为效果测试中累计的平仓
(2)若信号执行方式选择为K线走完确认信号下单,则OFFSETPROFIT根据信号的收盘价(或开盘价)计算平仓盈亏,与交易明细中平仓盈亏的计算一致
(3)若信号执行方式选择的为出信号立即下单,K线走完复核,则OFFSETPROFIT根据信号指令价计算平仓盈亏,但是返回的平仓盈亏中未计算信号消失成本
(4)若信号执行方式选择为出信号立即下单不进行复核,则OFFSETPROFIT根据信号指令价计算平仓盈亏,与交易明细中平仓盈亏的计算一致
3、模组运行:
(1)模组历史信号中的平仓盈亏根据效果测试计算的累加值
(2)模组初始化后,OFFSETPROFIT重新计算,从模组加载时刻开始计算平仓盈亏
(3)若信号执行方式选择为K线走完确认信号下单或K线走完复核,则OFFSETPROFIT根据信号的收盘价计算平仓盈亏(日志中记录的平仓盈亏根据成交价计算,两者计算机制不同),本次交易的平仓盈亏再下一根K线统计累加至OFFSETPROFIT
(4)若信号执行方式选择为不进行信号复核,则OFFSETPROFIT根据信号确认时行情的最新价计算平仓盈亏,本次交易的平仓盈亏即时统计累加至OFFSETPROFIT
4、OFFSETPROFIT的计算不包含手续费

例:
OFFSETPROFIT>-5000&&C>O,BK;
//平仓盈亏大于-5000,并且当前K线为阳线时,买开

PROFIT
模组逐笔浮盈
模组逐笔浮盈

用法:
PROFIT返回当前的模组逐笔浮动盈亏。
(最新价-持仓均价)*手数*交易单位

注:持仓均价的计算
(1)初始化的持仓,如果为自动初始化,持仓均价为指令价;如果为手动初始化,持仓均价为初始化框中显示的持仓均价(默认显示上一信号指令价)
(2)模组运行过程中
a.信号执行方式为:K线走完确认信号下单或K线走完进行信号复核,持仓均价为开仓信号当根的收盘价
b.信号执行方式为:不进行信号复核,持仓均价为开仓信号当根的指令价
c.非过滤模型加仓后,持仓均价为收盘价或指令价的均值
(3)效果测试中
a.信号执行方式为:K线走完确认信号下单,持仓均价为开仓信号当根的收盘价
b.信号执行方式为:不进行信号复核或K线走完进行信号复核,持仓均价为开仓信号当根的指令价
c.非过滤模型加仓后,持仓均价为收盘价或指令价的均值
说明:
1、模组运行过程中具体的取值
(1)历史信号,PROFIT返回值根据效果测试计算得到
(2)模组初始化持仓后PROFIT返回值为(最新价-持仓均价)*手数*交易单位
(3)模组运行过程中
信号执行方式选择,K线走完或K线走完复核:
a.开仓信号当根,PROFIT返回值为0
b.开仓信号之后,未出现平仓信号时PROFIT返回值为(最新价-持仓均价)*手数*交易单位
c.平仓信号当根,PROFIT返回值为(最新价-持仓均价)*手数*交易单位
d.平仓信号持仓为0之后,PROFIT返回值为0
信号执行方式选择,不进行信号复核:
a.开仓信号当根,PROFIT返回值为(最新价-持仓均价)*手数*交易单位,盘中PROFIT返回值会根据最新价实时变动,K线走完返回值为(收盘价价-持仓均价)*手数*交易单位
b.开仓信号之后,未出现平仓信号时PROFIT返回值为(最新价-持仓均价)*手数*交易单位
c.平仓信号当根,持仓减为0,PROFIT返回值为0
2、效果测试中具体的取值
信号执行方式选择,K线走完或K线走完复核:
a.开仓信号当根,PROFIT返回值为0
b.开仓信号之后,未出现平仓信号时PROFIT返回值为(收盘价-持仓均价)*手数*交易单位
c.平仓信号当根,PROFIT返回值为(收盘价-持仓均价)*手数*交易单位
d.平仓信号持仓为0之后,PROFIT返回值为0
注:信号执行方式选择K线走完确认信号下单时,持仓均价为收盘价;信号执行方式选择出信号立即下单,K线走完复核时,持仓均价为指令价
信号执行方式选择,不进行信号复核:
a.开仓信号当根,PROFIT返回值为(收盘价-持仓均价)*手数*交易单位
b.开仓信号之后,未出现平仓信号时PROFIT返回值为(收盘价-持仓均价)*手数*交易单位
c.平仓信号当根,持仓减为0,PROFIT返回值为0

注:
(1)如果为非过滤模型,减仓信号后(即平仓信号出现,持仓为减为0),PROFIT计算公式中,持仓均价不变,手数减少。
(2)PROFIT为资金管理函数,不支持主图加载
(3)不能与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等
(4)本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
SETDEALPERCENT
设置下单的模组资金使用比例
设置模型下单用的模组资金比例,以后每次下单都按模组资金的比例下单。

用法:
1、SETDEALPERCENT(fPercent)表示每次按资金的fPercent(范围1~100)下单。
(1)SETDEALPERCENT为资金管理函数,不能加载到主图
(2)效果测试根据效果测试中设置的资金、保证金计算下单手数
(3)模组运行中
如果初始化进来仓位,则根据初始资金+初始化持仓释放为可用资金计算下单手数
如果初始化仓位为0,则根据初始资金为可用资金计算下单手数
(4)fPercent不可以为变量
2、SETDEALPERCENT下单手数计算公式为
(可用资金+平仓释放的保证金+平仓盈亏)*资金比例/(最新价*保证金比例*交易单位)
3、SETDEALPERCENT计算下单手数非整数时,遵循自动向下取整的规则,即:若根据公式计算下单手数为12.9手,则实际按照12手下单;计算手数小于1,不进行开仓操作
3、SETDEALPERCENT只作用于开仓指令,不作用于平仓指令
过滤模型中平仓指令平掉模组所有持仓;非过滤模型中根据平仓根据指令后面编写的手数平仓

例子:SETDEALPERCENT(20); //每次按资金比例的20%下单
SETSIGPRICETYPE
不同的信号设置不同的价格方式
不同的信号设置不同的价格方式。

用法:
1:SIG:信号类型(BK SK BP SP BPK SPK COLSEOUT)
2、PRICE(价格)
PASSIVE_ORDER 排队价
ACTIVE_ORDER 对价
TRACING_ORDER 自动连续追价
CMPETITV_ORDER 超价
LIMIT_ORDER 市价
SIGPRICE_ORDER 指令价
SIGIMPROVED_ORDER 指令超价

注:如果指令在模型中编写了委托价格方式,以模组编写中为准;若模型编写中未设置该指令委托价格方式,以模组中设置为准

例:
C>O,BK;
C<O,SK;
C>O,BP;
C<O,SP;
SETSIGPRICETYPE(BK,SIGPRICE_ORDER);//买开的委托以指令价委托
SETSIGPRICETYPE(SK,SIGPRICE_ORDER);//卖开的委托以指令价委托
SETSIGPRICETYPE(BP,TRACING_ORDER);//买平的委托以自动连续追价委托
SETSIGPRICETYPE(SP,TRACING_ORDER);//卖平的委托以自动连续追价委托
AUTOFILTER;
MONO_SIGNAL;

SETSIGMAXNUM
设置一根K线最大信号个数
设置一根K线最大信号个数。

用法:
1、N为参数,可以为常量或变量
2、该函数作用于信号执行方式选择为“不进行信号复核”的模型
3、如果模型中写了MONO_SIGNAL函数,SETSIGMAXNUM(N)的设置不起作用,仍然按照一根K线最多出现一个信号执行

例:
AA:HHV(H,20),COLORRED;
BB:LLV(L,20),COLORCYAN;
CROSS(H,REF(AA,1)),BK;
CROSS(REF(BB,1),L),SK;
CROSS(H,REF(AA,1)),BP;
CROSS(REF(BB,1),L),SP;
SETSIGMAXNUM(2);
AUTOFILTER;
//一根K线上最多出现两个信号

SKPRICE
卖开信号位置的卖开信号价位
模型卖开信号位置的卖开信号价位。

用法:
SKPRICE返回最近一次模型卖开位置的卖开信号价位。
(1)当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。
(2)模组运行环境,返回的是SK(SPK)信号发出时的行情的最新价(可以与模组运行界面中“信号记录”中的SK(SPK)信号对应的“当时最新价”比较)。SK信号发出并且已经确认固定后,SKPRICE的值更新为信号发出时的行情的最新价
注意:
a.信号执行方式选择为不进行信号复核或K线走完确认信号下单,则SK委托的时SKPRICE的值更新为信号发出时的行情的最新价;
b.信号执行方式选择为K线走完进行信号复核,则SK信号委托时SKPRICE返回的还是上一次BK信号发出时的行情的最新价;K线走完复核信号确认存在,SKPRICE返回本次SK信号发出时行情的最新价
(3)模组运行环境历史信号取值,返回出信号那根k线的指令价。
注意:
a.信号执行方式选择为不进行信号复核,历史信号清空,所以SKPRICE没有历史信号取值
b.不带AUTOFILTER的非过滤模型,历史信号清空,所以SKPRICE没有历史信号取值
(4)含有SKPRICE的模型,模组自动初始化时返回的为上一次卖开信号的指令价;手动初始化,如果上一个信号为卖开,SKPRICE返回为初始化弹出框中填入的价格(默认填入上一次卖开信号位置的指令价)
(5)效果预览环境,信号执行方式选择K线走完确认信号下单,返回的是出信号那根k线的收盘价;信号执行方式选择出信号立即下单,K线走完复核或者出信号立即下单不进行复核,返回指令价。
(6)主图加载运行,SKPRICE返回的卖开信号当根的收盘价

写法示例:
CLOSE-SKPRICE>60 && SKPRICE>0 && SKVOL>0, BP;//如果卖开价位比当前价位低出60,且空头持仓存在,买平仓。

SKPRICE1
模组中交易合约的卖开信号位置的卖开信号价位
SKPRICE 模组中交易合约的卖开信号位置的卖开信号价位。
用法:
(1)当数据合约和交易合约相同时SKPRICE1值和SKPRICE值相等。
(2)当交易合约另外指定时SKPRICE1历史数据值与SKPRICE值相等取数据合约价格,盘中SKPRICE取数据合约的价格,SKPRICE1取交易合约价格。
(3)当模型自动初始化时,SKPRICE1取最近的SK信号计算的数据合约的指令价;手动初始化时,SKPRICE1取初始化弹出框中填入的持仓价格(默认为卖开信号的指令价)
SKHIGH 卖开仓以来的最高价 卖开仓以来的最高价
用法:
SKHIGH返回最近一次模型卖开位置到当前的最高价.
(1)模组运行环境,返回SK(SPK)指令发出后到当前的最高价;
a.K线走完确认信号下单,BK(BPK)信号当根K线返回的为信号发出时行情的最新价(即下根K线的开盘价);SK之后的K线返回委托以来的行情的最高价
b.信号执行方式选择K线走完复核,从SK(SPK)信号发出时行情时开始统计行情的最高价;如果信号消失,返回上次卖开以来的行情的最高价,如果信号确认存在,返回当根K线记录的行情的最高价
注:如果SK信号发出后,中间出了信号消失,从最后一次信号出现开始统计最高价
c.信号执行方式选择不进行信号复核,SK(SPK)信号的当根K线返回的从信号发出到K线走完时行情的最高价;SK(SPK)信号之后的K线返回信号发出以来行情的最高价
(2)加载模型时历史数据:
a.K线走完确认信号下单,如果当前K线上出现SK(SPK)信号,返回当前SK(SPK)信号所在K线的收盘价,之后K线的最高价与当根k线的收盘价做比较取较大值;
b.其他信号执行方式,SK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较大的值;SK信号以后的K线的最高价与SK信号当根的返回值比较取较大值
(3)效果测试中:
a.K线走完确认信号下单,如果当前K线上出现SK(SPK)信号,返回当前SK(SPK)信号所在K线的收盘价,之后的K线的最高价与当根k线的收盘价做比较取较大值;
b.其他信号执行方式,SK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较大的值;SK信号以后K线的最高价与SK信号当根的返回值比较取较大值
例:
C<SKHIGH-5*MD,BP;//卖开位置到当前的最高价回撤5个最小变动价位则平仓。
(4)加载到主图:如果当前K线上出现SK(SPK)信号,返回当前SK(SPK)信号所在K线的收盘价,之后K线的最高价与当根k线的收盘价做比较取较大值;
SKLOW
卖开仓以来的最低价
卖开仓以来的最低价
用法:
SKLOW返回最近一次模型卖开位置到当前的最低价.
(1)模组运行环境,返回SK(SPK)指令发出后到当前的最低价;
a.K线走完确认信号下单,BK(BPK)信号当根K线返回的为信号发出时行情的最新价(即下根K线的开盘价);SK之后的K线返回委托以来的行情的最低价
b.信号执行方式选择K线走完复核,从SK(SPK)信号发出时行情时开始统计行情的最低价;如果信号消失,返回上次卖开以来的行情的最低价,如果信号确认存在,返回当根K线记录的行情的最低价
注:如果SK信号发出后,中间出了信号消失,从最后一次信号出现开始统计最低价
c.信号执行方式选择不进行信号复核,SK(SPK)信号的当根K线返回的从信号发出到K线走完时行情的最低价;SK(SPK)信号之后的K线返回信号发出以来行情的最低价
(2)加载模型时历史数据:
a.K线走完确认信号下单,如果当前K线上出现SK(SPK)信号,返回当前SK(SPK)信号所在K线的收盘价,之后K线的最低价与当根k线的收盘价做比较取较小值;
b.其他信号执行方式,SK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较小的值;SK信号以后的K线的最低价与SK信号当根的返回值比较取较小值
(3)效果测试中:
a.K线走完确认信号下单,如果当前K线上出现SK(SPK)信号,返回当前SK(SPK)信号所在K线的收盘价,之后K线的最低价与当根k线的收盘价做比较取较小值;
b.其他信号执行方式,SK信号当根指令价(根据效果测试计算机制计算得到)与收盘价比较,返回取值较小的值;SK信号以后K线的最低价与SK信号当根的返回值比较取较小值
例:
C>SKLOW+5*MD,BP;//卖开位置到当前的最低价回撤5个最小变动价位则平仓。
(4)加载到主图:如果当前K线上出现SK(SPK)信号,返回当前SK(SPK)信号所在K线的收盘价,之后K线的最低价与当根k线的收盘价做比较取较小值。
SKVOL 模组信号空头持仓 用法:
SKVOL返回模组信号空头持仓。
(1)效果测试中
a.信号执行方式选择K线走完确认信号下单或者出信号立即下单,K线走完复核:
SK(SPK)信号出现的当根K线上,SKVOL取值不变,与上根K线上返回值保持一致;
SK(SPK)信号的下根K线上,SKVOL的取值增加开仓手数的数值;
BP(BPK)信号出现的当根K线上,SKVOL取值不变,与上根K线上返回值保持一致;
BP(BPK)信号的下根K线上,SKVOL的取值减少平仓手数的数值;
b.信号执行方式选择出信号立即下单,不进行复核:
SK(SPK)信号出现的当根K线上,SKVOL取值增加开仓手数的数值;
SK(SPK)信号的下根K线上,SKVOL的取值不变,与上根K线上返回值保持一致;
BP(BPK)信号出现的当根K线上,SKVOL取值减少平仓手数的数值;
BP(BPK)信号的下根K线上,SKVOL的取值不变,与上根K线上返回值保持一致;
(2)模组运行中过滤模型初始化上一信号选择卖开,并且初始化进来空头持仓为M,SKVOL返回值增加M,选择上一信号为其他信号,SKVOL返回值为0
(3)模组运行中非过滤模型初始化上一信号选择卖开或者买平,并且初始化进来空头持仓为M,SKVOL返回值增加M,选择上一信号为其他信号,SKVOL返回值为0
(4)模组运行过程中SK(SPK)信号出现并且确认固定后,SKVOL的取值增加开仓手数的数值;BP(BPK)信号出现并且确认固定后,SKVOL的取值减少平仓手数的数值
写法示例:
SKVOL=0&&C<O,SK(1);//空头持仓为0并且收盘价小于开盘价时,卖开一手
SKVOL>=1&&L>LV(L,5),SK(2); //空头持仓大于等于1,并且当根K线的最低价小于前面5个周期中最低价中最小值时,加仓2手
SKVOL>0&&H<REF(H,5),BP(SKVOL); //空头持仓大于0,并且当根K线的最高价大于5个周期前K线的最高价时,买平所有空头持仓
注:
1、含有此函数的模型不支持加载到主图及信号预警盒子
2、与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!

SHORT_VOL
模组空头可用持仓
模组空头可用持仓

用法:
SHORT_VOL取模组的空头可用持仓。
该函数不支持效果测试,只能用于模组运行。
1、模型初始化空头持仓,SHORT_VOL取值为初始化空头持仓数量
2、模型发出卖开仓信号,并且成交,SHORT_VOL取值增加相应的成交数量,开仓委托挂单,SHORT_VOL不变
3、模型发出买平仓信号,SHORT_VOL取值减少相应的数量,即使平仓委托挂单,SHORT_VOL取值也会发生相应的变化

例:
B,BP(SHORT_VOL/2); //满足条件B买平模组空头持仓的1/2。
SHORT_PRICE
模组空头开仓均价
取模组空头持仓开仓均价
该函数不支持效果测试,只能用于模组运行。
用法:
1、初始化持仓,SHORT_PRICE取值为初始化时该合约的持仓均价,若模型自动初始化,取值为最近的卖开指令的指令价;若模型手动初始化,取值为初始化弹出框中持仓价格(默认填写上一个卖开信号的指令价)
2、模组运行过程中,SHORT_PRICE取值为空头持仓开仓均价,根据成交价计算得到若SK信号发出后形成挂单,SHORT_PRICE取值为0

示例:
SHORT_PRICE-CLOSE>60 && SHORT_PRICE>0 && SKVOL>0, BP;//如果空头持仓均价比当前价位高出60,且空头持仓存在,买平仓。
UNITLIMIT
取交易合约限制拥有持仓数
取交易合约的限制拥有持仓数,自动取交易合约的限制拥有持仓数,取不到时返回100000
用法:
UNITLIMIT表示自动取交易合约的限制拥有持仓数,取不到时返回100000(如指数合约)

例子:(BKVOL+1)<=UNITLIMIT&&C>O,BK(1);//多头持仓再增加一手仍然小于交易合约的限制拥有的持仓数,并且满足收盘价大于开盘价的开仓条件时,买开一手。

VOLMARGIN
持仓保证金
持仓保证金

用法:
VOLMARGIN计算当前的持仓保证金。
注:该保证金为动态的保证金
(1)VOLMARGIN为资金管理函数,不能加载到主图
(2)效果测试
信号执行方式选择K线走完确认信号下单或出信号立即下单,K线走完进行信号复核:
a.开仓信号当根VOLMARGIN返回值不变
b.无信号有持仓K线VOLMARGIN返回值为:当根K线的收盘价*交易单位*手数*保证金比例(效果测试中设置的保证金)
c.平仓信号当根VOLMARGIN返回值不变
d.无信号无持仓K线VOLMARGIN返回值为0
信号执行方式选择出信号立即下单,不进行复核
a.开仓信号当根VOLMARGIN返回值为:当根K线的收盘价*交易单位*手数*保证金比例(效果测试中设置的保证金)
b.有持仓K线VOLMARGIN返回值为:当根K线的收盘价*交易单位*保证金比例*手数(效果测试中设置的保证金)
c.无持仓K线VOLMARGIN返回值为0
(3)模组运行
a.历史信号返回值,根据效果测试计算得到
b.盘中运行,模组理论持仓大于0时,VOLMARGIN返回值为:最新价(若K线走完则为收盘价)*交易单位*手数*保证金比例(模组保证金参数中设置的保证金);模组理论持仓为0时,VOLMARGIN返回值为0

注:
1、模组中手动干预可影响理论持仓,故作用于VOLMARGIN的返回值
2、不能与未来函数同时使用如ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等
3、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用