当前位置:→ 股海网公式帮助 → 正文
  • wh3中策略编写、下单组件编写新增函数汇总

  • 相关简介:wh3中策略编写、下单组件编写新增函数汇总 一.策略编写新增函数 1、引用、逻辑判断类函数 #IMPORT跨周期调用 引用某品种在某个周期上加载了某个指标的数据。 用法: #IMPORT [CODE, PERIOD, FORMULA] AS VAR。 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。 CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR 定义变量名 注意:1.只能引用

  • 文章来源:股海网作者:股海网发布时间:2015-02-13浏览次数:下载次数:0

wh3中策略编写、下单组件编写新增函数汇总

一.策略编写新增函数
1、引用、逻辑判断类函数

#IMPORT跨周期调用

引用某品种在某个周期上加载了某个指标的数据。
用法:
#IMPORT [CODE, PERIOD, FORMULA] AS VAR。 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。
CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR 定义变量名
注意:1.只能引用 .FML/.XFML文件?
a.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH?
b.只能短周期引用长周期
c.被引用的指标中不能存在引用
d.如果不写文华码,默认引用当前合约
注:目前WH3中支持跨2个周期数据调用,用法如下:
新建指标AA
MA5:=MA(C,5);
在建立指标BB
#IMPORT [,MIN5,AA]AS VAR
MA55:VAR.MA5;
#IMPORT [,MIN30,AA]AS VAR1
MA530:VAR1.MA5;
加载到1分钟周期上调用5、30分钟周期MA5的值。

MINPRICE

返回某品种的最小变动价位。
用法:
MINPRICE(CODE); 返回CODE所对应合约的最小变动价位。
CODE 文华码或交易代码。
例:MINPRICE(‘IF1107’); 表示返回IF1007的最小变动价位。
注:某些合约(如橡胶指数)查不到最小变动价位,返回0。

ISLASTKLINE

用法:?
ISLASTKLINE 如果是收盘前最后一个K线返回1(Yes),否则返回0(No)。
例:ISLASTKLINE=1&&C<O,SP;

IFELSE

根据条件取不同的值。
用法:
IFELSE(X,A,B)若X不为0则返回A,否则返回B。
例:
A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));当MA5>MA10时,取是否满足DIFF上穿DEA,否则(MA5不大于MA10),当K,D死叉时,令A赋值为2,若上述条件都不满足,A赋值为0
A=1,BPK;//当MA5>MA10,以DIFF上穿DEA作为开多仓条件
A=2,SPK;//当MA5不大于MA10,以K D死叉作为开空仓条件

CROSS2

两条线交叉。
用法:
CROSS2(A,B)表示当A从下方向上穿过B两次时返回1(Yes),否则返回0(No)
例:CROSS2(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线两次

PLAYSOUND

条件满足时,播放指定声音。
用法:
PLAYSOUND(COND, 'N')
当条件满足时,播放自定义声音'N'(自定义声音可以在设置菜单的设置声音文件中设置,最多可以设置10组)。
例:PLAYSOUND(CLOSE>OPEN,'A');表示CLOSE>OPEN时播放自定义声音'A'。

2、头寸函数

?

AUTOFILTER

?

对模型的所有信号按照先买后卖,先开后平的顺序过滤。
用法:AUTOFILTER产生的指令将按照如下规则过滤:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);

例:
CLOSE>OPEN,BPK;
CLOSE<OPEN,SPK;
AUTOFILTER;

注意如果使用自动过滤函数建议就不要在代码中再使用其它的语句进行过滤的编写。

ISLASTBK

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

?

ISLASTSK

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

?

ISLASTBP

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

?

ISLASTSP

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

?

ISLASTBPK

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

?

ISLASTSPK

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

?

ISLASTBUYLONG

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

?

ISLASTSELLSHORT

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

?

ISLASTEXITLONG

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

?

ISLASTEXITSHORT

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

?

BKPRICE

买开信号位置的买开信号价位。
用法:
BKPRICE返回最近一次模型买开位置的买开信号价位。
例如:
BKPRICE-CLOSE>60 && BKPRICE>0, SP;//如果买开价位比当前价位高出60,且买开价位存在,卖平仓
请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。
注:BKPRICE 只在加载之后的K线上才返回信号价位,历史K线信号由于无信号价位会返回0,使用时请注意判断BKPRICE>0。效果测试中该函数返回信号位置的收盘价

?

SKPRICE

卖开信号位置的卖开信号价位
用法:
SKPRICE返回最近一次模型卖开位置的卖开信号价位。
例如:
CLOSE-SKPRICE>60 && SKPRICE>0, BP;//如果当前价位高出卖开价位60, 且卖开价位存在, 买平仓
请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。
注:SKPRICE 只在加载之后的K线上才返回信号价位,历史K线信号由于无
信号价位会返回0,使用时请注意判断SKPRICE>0。效果测试中该函数返回信号位置的收盘价

?

BARSBP

上一次买平信号位置
用法:
BARSBP返回上一次买平仓距离当前k线的k线数。

?

BARSSP

上一次卖平信号位置
用法:
BARSSP返回上一次卖平仓距离当前k线的k线数。

?

LASTSIG

判断上一次交易的信号
用法:
LASTSIG返回上一次交易的信号。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

MONEY

虚拟资金余额
用法:
MONEY返回虚拟资金余额。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

BUYVOL

模型虚拟多头持仓
用法:
BUYVOL返回模型虚拟多头持仓。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

SELLVOL

模型虚拟空头持仓
用法:
SELLVOL返回模型虚拟空头持仓。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

MARGIN

合约保证金
用法:
MARGIN返回当前合约的保证金比率(用户启动模组时设置的)。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

FEE

合约手续费
用法:
FEE返回当前合约的手续费(用户启动模组时设置的)。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

VOLMARGIN

模型虚拟空头持仓
用法:
VOLMARGIN计算当前的持仓保证金。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

MONEYRATIO

资金使用率
用法:
MONEYRATIO返回当前的虚拟资金的使用率。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

MONEYTOT

虚拟总资金
用法:
MONEYTOT返回当前虚拟总资金(虚拟资金余额+持仓保证金)。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

PROFIT

虚拟逐笔浮盈
用法:
PROFIT返回当前的虚拟逐笔浮动盈亏。
注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,
TROUGH,TROUGHBARS,REFX等可能会导致误差。

?

SETDEALPERCENT

设置下单的虚拟资金使用比例
用法:
SETDEALPERCENT(fPercent)表示每次按资金的fPercent(范围1~100)下单。
例子:SETDEALPERCENT(20); //每次按资金比例的%20下单
注:应该与AUTOFILTER函数同时使用

?

注:BK、SK、 BP、 SP、 BPK、 SPK是国内期货合约的交易指令。
BUYLONG、SELLSHORT、EXITLONG、EXITSHORT 是外盘合约的交易指令。
详细内容请查看 “插入指令”。

3、日内高频数据引用

L2_BID1

取秒周期末买1价(K线图)或该笔TICK时刻的买1价(Tick图)。
用法:
L2_BID1 K线图时返回当前秒周期最后时刻的买1价。TICK图时返回该笔TICK时刻的买1价。

L2_BID2

取秒周期末买2价(K线图)或该笔TICK时刻的买2价(Tick图)。
用法:
L2_BID2 K线图时返回当前秒周期最后时刻的买2价。TICK图时返回该笔TICK时刻的买2价。

L2_BID3

取秒周期末买3价(K线图)或该笔TICK时刻的买3价(Tick图)。
用法:
L2_BID3 K线图时返回当前秒周期最后时刻的买3价。TICK图时返回该笔TICK时刻的买3价。

L2_BID4

取秒周期末买4价(K线图)或该笔TICK时刻的买4价(Tick图)。
用法:
L2_BID4 K线图时返回当前秒周期最后时刻的买4价。TICK图时返回该笔TICK时刻的买4价。

L2_BID5

取秒周期末买5价(K线图)或该笔TICK时刻的买5价(Tick图)。
用法:
L2_BID5 K线图时返回当前秒周期最后时刻的买5价。TICK图时返回该笔TICK时刻的买5价。

L2_ASK1

取秒周期末卖1价(K线图)或该笔TICK时刻的卖1价(Tick图)。
用法:
L2_ASK1 K线图时返回当前秒周期最后时刻的卖1价。TICK图时返回该笔TICK时刻的卖1价。

L2_ASK2

取秒周期末卖2价(K线图)或该笔TICK时刻的卖2价(Tick图)。
用法:
L2_ASK2 K线图时返回当前秒周期最后时刻的卖2价。TICK图时返回该笔TICK时刻的卖2价。

L2_ASK3

取秒周期末卖3价(K线图)或该笔TICK时刻的卖3价(Tick图)。
用法:
L2_ASK3 K线图时返回当前秒周期最后时刻的卖3价。TICK图时返回该笔TICK时刻的卖3价。

L2_ASK4

取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。
用法:
L2_ASK4 K线图时返回当前秒周期最后时刻的卖4价。TICK图时返回该笔TICK时刻的卖4价。

L2_ASK5

取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。
用法:
L2_ASK5 K线图时返回当前秒周期最后时刻的卖5价。TICK图时返回该笔TICK时刻的卖5价。

L2_BIDVOL1

取秒周期末买1量(K线图)或该笔TICK时刻的买1量(Tick图)。
用法:
L2_BID1 K线图时返回当前秒周期最后时刻的买1量。TICK图时返回该笔TICK时刻的买1量。

L2_BIDVOL2

取秒周期末买2量(K线图)或该笔TICK时刻的买2量(Tick图)。
用法:
L2_BID2 K线图时返回当前秒周期最后时刻的买2量。TICK图时返回该笔TICK时刻的买2量。

L2_BIDVOL3

取秒周期末买3量(K线图)或该笔TICK时刻的买3量(Tick图)。
用法:
L2_BID3 K线图时返回当前秒周期最后时刻的买3量。TICK图时返回该笔TICK时刻的买3量。

L2_BIDVOL4

取秒周期末买4量(K线图)或该笔TICK时刻的买4量(Tick图)。
用法:
L2_BID4 K线图时返回当前秒周期最后时刻的买4量。TICK图时返回该笔TICK时刻的买4量。

L2_BIDVOL5

取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。
用法:
L2_BID5 K线图时返回当前秒周期最后时刻的买5量。TICK图时返回该笔TICK时刻的买5量。

L2_ASKVOL1

取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。
用法:
L2_ASK1 K线图时返回当前秒周期最后时刻的卖1量。TICK图时返回该笔TICK时刻的卖1量。

L2_ASKVOL2

取秒周期末卖2量(K线图)或该笔TICK时刻的卖2量(Tick图)。
用法:
L2_ASK2 K线图时返回当前秒周期最后时刻的卖2量。TICK图时返回该笔TICK时刻的卖2量。

L2_ASKVOL3

取秒周期末卖3量(K线图)或该笔TICK时刻的卖3量(Tick图)。
用法:
L2_ASK3 K线图时返回当前秒周期最后时刻的卖3量。TICK图时返回该笔TICK时刻的卖3量。

L2_ASKVOL4

取秒周期末卖4量(K线图)或该笔TICK时刻的卖4量(Tick图)。
用法:
L2_ASK4 K线图时返回当前秒周期最后时刻的卖4量。TICK图时返回该笔TICK时刻的卖4量。

L2_ASKVOL5

取秒周期末卖5量(K线图)或该笔TICK时刻的卖5量(Tick图)。
用法:
L2_ASK5 K线图时返回当前秒周期最后时刻的卖5量。TICK图时返回该笔TICK时刻的卖5量。

L2_PRICE

取Tick图中该笔TICK的成交价。
用法:
L2_PRICE 返回TICK图中该笔TICK的成交价。

L2_VOLUME

取TICK图中该笔TICK的成交量。
用法:
L2_VOLUME 返回TICK图中该笔TICK的成交量。

ASKBIGVOLPRICE

TICK图中该笔Tick 盘口中空头满足大单条件的与最新价的最近价格。
用法:
ASKBIGVOLPRICE 返回TICK图中该笔Tick 盘口满足大单条件的与最新价的最近价格, 注模型中需调用一次CALVOLPRICELIST函数

BIDBIGVOLPRICE

TICK图中该笔Tick 盘口中多头满足大单条件的与最新价的最近价格。
用法:
BIDBIGVOLPRICE 返回TICK图中该笔Tick 盘口满足大单条件的与最新价的最近价格, 注模型中需调用一次CALVOLPRICELIST函数

CALVOLPRICELIST

TICK图中初始化盘口大单价格表,主要在BIDBIGVOLPRICE 与ASKBIGVOLPRICE 前使用,提供初始化。
用法:
CALVOLPRICELIST

L2_SETBIGVOL

设置大单成交手数阈值?
用法:
L2_SETBIGVOL( nVol ) 成交手数大于nVol的为大单,
例:L2_SETBIGVOL( 10 ); // 大于10手的是大单?
L2_BKBIGCOUNT; // 查看买开的大单成交次数;

L2_BIDVOL

取秒周期主动买的成交量。
用法:
L2_BIDVOL 返回当前秒周期主动买的成交量

L2_ASKVOL

取秒周期主动卖的成交量。
用法:
L2_ASKVOL 返回当前秒周期主动卖的成交量

L2_BIDBIGCOUNT

取秒周期主动买的大单成交次数。
用法:
L2_BIDBIGCOUNT 返回当前秒周期主动买的大单成交次数

L2_ASKBIGCOUNT

取秒周期主动卖的大单成交次数。
用法:
L2_ASKBIGCOUNT 返回当前秒周期主动卖的大单成交次数

L2_BIDBIGTOTVOL

取秒周期主动买的大单成交量。
用法:
L2_BIDBIGTOTVOL 返回当前秒周期主动买的大单成交量

L2_ASKBIGTOTVOL

取秒周期主动卖的大单成交量。
用法:
L2_ASKBIGTOTVOL 返回当前秒周期主动卖的大单成交量

L2_BKVOL

取秒周期买开的成交量。
用法:
L2_BKVOL 返回当前秒周期买开的成交量

L2_SKVOL

取秒周期卖开的成交量。
用法:
L2_SKVOL 返回当前秒周期卖开的成交量

L2_BPVOL

取秒周期买平的成交量。
用法:
L2_BPVOL 返回当前秒周期买平的成交量

L2_SPVOL

取秒周期卖平的成交量。
用法:
L2_SPVOL 返回当前秒周期卖平的成交量

L2_BKBIGCOUNT

取秒周期买开的大单成交次数。
用法:
L2_BKBIGCOUNT 返回当前秒周期买开的大单成交次数

L2_SKBIGCOUNT

取秒周期卖开的大单成交次数。
用法:
L2_SKBIGCOUNT 返回当前秒周期卖开的大单成交次数

L2_BPBIGCOUNT

取秒周期买平的大单成交次数。
用法:
L2_BPBIGCOUNT 返回当前秒周期买平的大单成交次数

L2_SPBIGCOUNT

取秒周期卖平的大单成交次数。
用法:
L2_SPBIGCOUNT 返回当前秒周期卖平的大单成交次数

L2_BKBIGTOTVOL

取秒周期买开的大单成交量。
用法:
L2_BKBIGTOTVOL 返回当前秒周期买开的大单成交量

L2_SKBIGTOTVOL

取秒周期卖开的大单成交量。
用法:
L2_SKBIGTOTVOL 返回当前秒周期卖开的大单成交量

L2_BPBIGTOTVOL

取秒周期买平的大单成交量。
用法:
L2_BPBIGTOTVOL 返回当前秒周期买平的大单成交量

L2_SPBIGTOTVOL

取秒周期卖平的大单成交量。
用法:
L2_SPBIGTOTVOL 返回当前秒周期卖平的大单成交量

二.下单组件编写新增函数
1.
引用数据函数

AvPrice(Code)

某合约当前均价。
用法:
AvPrice(Code)返回合约Code的当前均价,Code为某合约的合约代码
例:VAR avprice;//定义一个变量avpriceavprice=AvPrice("m1109"); //price的值为合约m1109的当前均价

High(Code)

某合约当前最高价。
用法:
High(Code)返回合约Code的当前最高价,Code为某合约的合约代码
例:
VAR high;//定义一个变量high
high=High("m1109"); //high的值为合约m1109的当前最高价

Low(Code)

某合约当前最低价。
用法:
Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码
例:
VAR low;//定义一个变量low
low=Low("m1109"); //low的值为合约m1109的当前最低价

Position(Code,strContent)

某合约的盘口数据。
用法:
Position(Code,strContent) 返回某合约某种盘口数据Code
为某合约的合约代码(字符串), strContent为所要取得内容,
可选以下内容
"bid1","bid2","bid3","bid4","bid5",
"ask1","ask2","ask3","ask4","ask5",
"bidvol1","bidvol2","bidvol3","bidvol4","bidvol5",
"askvol1","askvol2","askvol3","askvol4","askvol5",
分别表示买1-买5 卖1-卖5 买1量-买5量 卖1量-卖5量。
例:
VAR bid1;
bid1=Position("m1109","bid1");//bid1为豆粕1009的当前买1价

Price(Code)

某合约当前价格。
用法:
Price(Code)返回合约Code的当前价格,Code为某合约的合约代码
例:
VAR price;//定义一个变量price
price=Price("m1109"); //price的值为合约m1109的当前价格

Volume(Code)

某合约当前成交量。
用法:
Volume(Code)返回合约Code的当前成交量,Code为某合约的合约代码
例:
VAR volume;//定义一个变量volume
volume=Volume("m1109"); //volume的值为合约m1109的当前成交量

MinPrice

某合约最小变动价位。
用法:
MinPrice(Code)返回合约Code的最小变动价位,Code为某合约的合约代码
例:
VAR minprice;//定义一个变量minprice
minprice=MinPrice("m1009"); //minprice的值为合约m1009的最小变动价位

2.逻辑判断函数

SamePeriod(Code,PeriodStr,T1,T2)

判断两个时间是否是同一个周期。
用法:
SamePeriod(Code,PeriodStr,T1,T2)如果T1,T2是同一个周期返回1,
否则返回0,Code:合约的合约代码,PeriodStr可以取以下值的其中之一:
"min1","min3","min5","min10","min15","min30","1hour","3hour",
"8hour","1day","week","month",T1和T2是以总秒数表示的时间
例:
IF(SamePeriod("m1109","min10",LastOrderTime(),Time("09:00:00"))合约为m1109,周期为10分钟情况下,如果最后一次下单时间与09:00:00在同一个周期内

3.辅助函数

CurrentTime()

当前时间。
用法:
CurrentTime()返回当前时间
例:
VAR CurTime;?
CurTime=CurrentTime(); //定义一个变量CurTime,CurTime的值为当前时间。注意返回值是1970年1月1日至今的总秒数

DateToStr(nSec)

日期转换为字符串。
用法:
DateToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:YY:MM:DD
例:
MessageOut(DateToStr(CurrentTime() ) ); //输出当前日期

Exit()

退出程序。
用法:
Exit()退出程序。
例:Exit(); 退出程序。当组件设置为循环时,遇到Exit将停止循环,请谨慎使用。当组件未设置为循环执行时,应该使用RETURN语句退出。

Itoa(Value)

数字转换为字符。
用法:
Itoa(Value)将Value转换成字符串,Value的为整形数值
例:
VAR str; str="数字"+Itoa(5); //str的值为"数字5"

MessageOut(Content)

输出内容。
用法:MessageOut(Content),输出Content的内容。注意:Content可以是字符串也可以是数字

ReadGlobal(strName)

返回已注册的整形变量的值
用法:ReadGlobal(strName);返回注册的strName的值,strName为已注册的整形变量的注册名称(字符串)。如果strName未被注册过,返回0
例:
WriteGlabal("limit",20);
VAR limitValue;
limitValue=ReadGlobal("limit");limitValue的值为20。

ReadGlobalF(strNameF)

返回已注册的浮点型变量的值
用法:ReadGlobalF(strNameF);返回注册的strNameF的值,strNameF为已注册的浮点型变量的注册名称(字符串),如果strNameF未被注册过,返回0.0f
例:
WriteGlabalF("Rate",0.5);
VAR fRate;
fRate=ReadGlobal(Rate);fRate的值为0.5。

ReadGlobalStr(NameStr)

返回已注册的字符串变量的值
用法:ReadGlobalStr(NameStr);返回注册的NameStr的值,NameStr为已注册的字符串变量的注册名称。如果NameStr未被注册过,返回(空字符串)
例:
WriteGlabalStr("showStr","上升");
VAR str;
str=ReadGlobal(showStr);//str的值为"上升"。

Time(strTime)

转换字符串为时间。
用法:
Time(strTime) 转换字符串strTime为时间(以总秒数表示),strTime的格式应为HH:MM:SS,其中0<=HH<24,0<=MM<60,0<=SS<60,如果不满足此条件,返回0
例:
time:Time("09:15:00")

TimeToStr(nSec)

时间转换为字符串。
用法:
TimeToStr(nSec) 把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:HH:MM:SS
例:
MessageOut(TimeToStr(CurrentTime())),输出当前时间

WriteGlabal(Name,Value)

注册一个整形变量。
用法:
WriteGlabal(Name,Value)。Name为整形变量的注册名称(字符串),Value为整形变量的值
例:
WriteGlabal("Period",5) 注册一个整形变量,注册名称为"Period",值为5。

WriteGlabal(NameF,ValueF)

注册一个浮点形变量
用法:
WriteGlabal(NameF,ValueF)。NameF为浮点形变量的注册名称(字符串),ValueF为浮点形变量的值
例:
WriteGlabalF("Rate",0.5) 注册一个浮点形变量,注册名称为"Rate",值为0.5。

WriteGlabalStr(NameStr,ValueStr)

注册一个字符串变量
用法:WriteGlabalStr(NameStr,ValueStr)。NameStr为字符串变量的注册名称(字符串),ValueStr为字符串变量的值
例:
WriteGlabalStr("showStr","上升") 注册一个字符串变量,注册名称为"showStr",值为"上升"。

4.数学运算函数

ABS(Value)

取整形绝对值。
用法:
ABS(Value)返回Value的绝对值,Value是整形值
例:
VAR X;
X=ABS(5);//X的值为5

ABSF(ValueF)

取浮点型的绝对值。
用法:
ABSF(ValueF)返回ValueF的绝对值,ValueF是浮点值
例:
VAR X;?
X=ABSF(-1.5); //X的值为1.5

5、指令状态函数

F_BuyPosition

模型某合约多头持仓。
用法:
F_BuyPosition()返回模型的多头持仓
例:
VAR fmlBVol;?
fmlBVol=F_BuyPosition(); //定义一个变量fmlBVol,fmlBVol为模型的多头持仓。

F_SellPosition

模型某合约空头持仓。
用法:
F_SellPosition()返回模型的空头持仓
例:
VAR fMLSVol;
fmlSVol=F_SellPosition(); 定义一个变量fmlSVol,fmlSVol为模型的空头持仓。

F_BuyAvgPrice

模型某合约多头持仓成本价。
用法:
F_BuyAvgPrice()返回模型多头持仓成本价
例:
VAR price;
price=F_BuyAvgPrice(); 定义一个变量price,price的值为值为模型多头持仓

F_SellAvgPrice

模型某合约空头持仓成本价。
用法:
F_SellAvgPrice()返回模型空头持仓成本价
例:
VAR price;
price=F_SellAvgPrice() 定义一个变量price,price的值为模型空头持仓成本价

F_DealCode

取得当前模型的合约编码。
用法:
F_DealCode()返回模型所加载K图表的合约的合约编码(字符串)
例:
VAR DealCode;
DealCode=F_DealCode(); //变量DealCode的内容为模型当前合约的合约编码.

F_Period

取得当前模型的周期。
用法:
F_Period() 返回当前模型的周期(字符串)
例:
VAR period;
period=F_Period(); //变量period的内容为当前模型所使用的周期.

F_InitBuyVol

取已经初始化的多头持仓。
用法:
F_InitBuyVol() 返回模型初始化的多头持仓(整数).
例:
VAR initBuyVol;//定义一个变量记录初始多头持仓
initBuyVol=F_InitBuyVol();//取出初始多头持仓赋值给initBuyVol

F_InitSellVol

取已经初始化的空头持仓。
用法:
F_InitSellVol() 返回模型初始化的空头持仓(整数).
例:
VAR initSellVol;//定义一个变量记录初始空头持仓
initSellVol=F_InitSellVol();//取出初始空头持仓赋值给initSellVol

F_FreshSig

刷新当前信号。
用法:
F_FreshSig() 取一个新信号(如果模型已经发出了多个信号,取最早发出的信号,信号消失也是一种信号)返回1表示取到新信号,返回0表示失败即已经没有新信号可取。取到新信号以后可以配合 F_Sig, F_SigVol, F_SigValid, F_SigTime, F_SigPos使用
例:
IF(F_FreshSig()) //如果取得了新的信号

F_Sig

取当前的信号(BK|SK|BP|SP|BPK|SPK)。
用法:
F_Sig() 返回当前的信号是什么类型(BK|SK|BP|SP|BPK|SPK)例:
IF(F_Sig()==BPK && F_SigValid()==1) //如果信号是BPK 且不是信号消失状态

F_SigPrice

取当前信号发生时的价格。
用法:
F_SigPrice() 取当前的信号发生时刻的价格.
例:
IF(F_SigPrice()>3500) //如果信号发生的价格大于3500

F_SigVol

取当前信号的手数。
用法:
F_SigVol() 取当前的信号的手数, 如果当前信号是BPK(5), 则返回5.
例:
IF(F_SigVol() == VarOpi) //如果信号的仓位等于变量VarOpi

F_SigValid 当前信号是发出的,还是消失的
用法:
F_SigValid() 返回模型信号存在两种类型之一(信号发出,信号消失), 返回1表示信号发出, 返回0表示信号消失。
例:
IF(F_Sig()==BPK && F_SigValid()==1) //如果信号是BPK 且不是信号消失状态
F_SigTime 当前信号的发出时间。
用法:
F_SigTime() 返回当前信号的发出时间(以总秒数表示),
例:
IF(SamePeriod("m1009","min10",LastOrderTime(),F_SigTime()) //如果取得新信号的时间与上次交易的时间是同一个周期
F_SigPos 当前信号在模型中是第几个有指令的语句。
用法:
F_SigPos() 如果当前信号是模型中第5个含信号的语句发出的,返回5
例:
IF(F_SigPos()==5) //如果当前信号是第5行发出的
F_Close 当前模型某根K线的收盘价。
用法:
F_Close(n)返回倒数第 n+1 根K线的收盘价?
例:
VAR c;
c=F_Close(0);//c为最后一根K线收盘价
F_Open 当前模型某根K线的开盘价。
用法:
F_Open(n)返回倒数第 n+1 根K线的开盘价?
例:
VAR c;
c=F_Open(0);//c为最后一根K线开盘价
F_High 当前模型某根K线的最高价。
用法:
F_High(n)返回倒数第 n+1 根K线的最高价?
例:
VAR c;
c=F_High(0);//c为最后一根K线最高价
F_Low 当前模型某根K线的最低价。
用法:
F_Low(n)返回倒数第 n+1 根K线的最低价?
例:
VAR c;
c=F_Low(0);//c为最后一根K线最低价
F_Volume 当前模型某根K线的成交量。
用法:
F_Volume(n)返回倒数第 n+1 根K线的成交量?
例:
VAR c;
c=F_Volume(0);//c为最后一根K线成交量
F_Opi 当前模型某根K线的持仓量。
用法:
F_Opi(n)返回倒数第 n+1 根K线的持仓量?
例:
VAR c;
c=F_Opi(0);//c为最后一根K线持仓量
F_Avprice 当前模型某根K线的均价。
用法:
F_Avprice(n)返回倒数第 n+1 根K线的均价?
例:
VAR c;
c=F_Avprice(0);//c为最后一根K线均价
F_Variant 当前模型某变量在某根K线上的值。
用法:
F_Variant(varname, n) 返回模型中变量varname在倒数第 n+1 根K线的值
nvarname 变量名 类型为字符串
例:
//example.trd
...
MA5:=MA(CLOSE,5);?
...
//example.stg
VAR ma5;
ma5=F_Variant("MA5", 0);//c收盘价5个周期简单平均移动的最后一根K线值

6.下单接口函数

LastOrderTime()

最后一次下单的时间。
用法:
LastOrderTime()返回最后一次下单的时间,以总秒数表示
例:
IF(LastOrderTime() - CurrentTime() >= 300)如果距离上次下单时间超过5分钟

T_IsExchangeOpen 查询合约所属交易所的状态。
用法:
T_IsExchangeOpen(Code)返回合约Code所属的交易所的开闭盘状态,开盘返回1,闭盘返回0,查询失败返回-1。
例:
VAR Status;
Status=T_IsExchangeOpen("m1009"); //Status为合约m1009所属交易所当前的开闭盘状态。当Status为1时,说明该交易所开盘;当Status为0时,说明该交易所闭盘;当Status为-1时,说明当前查询失败。

T_BuyPosition(Code)

交易系统某合约多头持仓。
用法:
T_BuyPosition(Code)返回交易系统中合约Code的多头持仓,Code为某合约的合约代码。
例:
VAR BuyVol;
BuyVol=T_BuyPosition("m1109"); //BuyVol为交易系统中合约代码为m1109的合约的多头持仓。

T_BuyAvgPrice(Code)

交易系统某合约多头持仓成本价。
用法:T_BuyAvgPrice(Code)返回交易系统合约Code的多头持仓成本价,Code为某合约合约代码。
例:
VAR BuyPrice; BuyPrice=T_BuyAvgPrice("m1109");// 定义一个变量BuyPrice,BuyPrice的值为交易系统合约m1109多头持仓成本价

T_BuyProfitLoss(code)

交易系统某合约的多头盈亏。
用法:
T_BuyProfitLoss(code)返回交易系统合约code的多头盈亏
例:
VAR BuyEarn;
BuyEarn=T_BuyProfitLoss("m1109");// 定义一个变量BuyEarn,BuyEarn的值为交易系统合约m1109的多头盈亏

T_SellPosition(Code)

交易系统某合约空头持仓。
用法:
T_SellPosition(Code)返回交易系统中合约Code的空头持仓,Code为某合约的合约代码。
例:
VAR SellVol;
SellVol=T_SellPosition("m1109");// SVol为交易系统中合约代码为m1109的合约的空头持仓。

T_SellAvgPrice(code)

交易系统某合约空头持仓成本价。
用法:T_SellAvgPrice(code)返回交易系统合约code的空头持仓成本价,code为某合约合约代码。
例:
VAR SellPrice;
SellPrice=T_SellAvgPrice("m1109");// 定义一个变量SellPrice,SellPrice的值为交易系统合约m1109空头持仓成本价

T_SellProfitLoss(code)

交易系统某合约的空头盈亏。
用法:
T_SellProfitLoss(code)返回交易系统合约code的空头盈亏
例:
VAR SellEarn;
SellEarn=T_SellProfitLoss("m1109") 定义一个变量SellEarn,SellEarn的值为交易系统合约m1109的空头盈亏

T_Deal(Code,bs,kp,vol,price)

发出委托。
用法:
T_Deal(Code,bs,kp,vol,price),发出委托。Code(字符串):合约编码,bs(整数0,1):0 买 1 卖 ,kp(整数0,1,2):0 开 1平 2平今 Vol(整数):下单手数,Price(整数或小数):下单价格,0为市价 返回唯一委托标识OrderID(字符串)
例:
VAR orderID=T_Deal("m1109", 0, 0, 5, 2900); 发出委托:m1109 买开5手 限价2900

T_FreeMargin(Type)

可用资金。
用法T_FreeMargin(Type), 返回可用资金。 Type(整数 0, 1) 0期货 1股票,返回可用资金数(小数)
例:
VAR margin;
margin=T_FreeMargin(0); //返回当前期货帐户的可用资金数

T_Equity(Type)

权益。
用法T_Equity(Type), 返回权益。 Type(整数 0, 1) 0期货 1股票,返回权益(小数)
例:
VAR margin;
margin=T_Equity(0); //返回当前期货帐户的权益数

T_MaxOpen(Code, margin, bs)

某品种最大可开仓手数。、
用法:
T_MaxOpen(Code, margin, bs),某品种最大可开仓手数。Code(字符串):合约编码,margin(小数):保证金比例 bs(整数0,1):0 买 1 卖 返回该品种在当前可用资金,当前价格下的可开仓手数(整数)
例:
VAR vol;
vol=T_MaxOpen("m1109", 0.1, 0); //变量vol为m1109 的 在保证金比例为0.1 下的可开仓手数

T_OrderState(OrderID)

查询委托状态。
用法:
T_OrderState(OrderID)根据委托唯一标识OrderID(字符串)查委托状态,返回值含义:-1查询失败 0挂单 1成交 2被撤单 3部份成交 4 其它
例:
IF(T_OrderState(X)=0) 如果委托X是挂单

T_OpenOrder(Code,Type)

查询挂单数量。
用法:
T_OpenOrder(Code,Type)返回未成交委托数量,Code:交易编码,Type:0所有方向;1买开;2卖平;3卖开;4买平
例:
IF(LastOrderTime() - CurrentTime >= 300 && T_OpenOrder(ru1009,1)>0)?
T_OpenOrder("ru1009",1) //如果距离上次下单超过5分钟,且存在买开挂单,撤掉剩余买开委托合约X的未成交委托数量

T_DeleteOrder(OrderID)

委托撤单。
用法:
T_DeleteOrder(OrderID)根据委托唯一标识orderID(字符串)撤单,返回0撤单发出成功,返回其它失败
例:
IF(T_DeleteOrder(orderID)!=0)如果撤单失败

T_DeleteOrderByCode(Code,Type)

委托撤单(通过合约代码)。
用法:
T_DeleteOrderByCode(Code,Type)委托撤单。Code:合约代码(字符串)Type:0所有方向;1买开;2卖平;3卖开;4买平 返回0撤单发出成功,返回其它失败
例:
T_DeleteOrderByCode("ru1009",2)撤单橡胶1009的卖平委托

T_DeleteOrderAll()

撤掉所有未成交委托。
用法:
T_DeleteOrderAll()撤掉所有该模型相关的未成缴委托单,返回0撤单发出成功,返回其它失败
例:
IF(T_DeleteOrderAll()!=0)//如果撤单失败

T_AddBuyOpiTo(Code, Price, Vol)

根据当前成交的量采用买开的手段达到把仓位增加某一数值的目的。
用法:
T_AddBuyOpiTo(Code, Price, Vol)把多头仓位增加到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到多头vol手持仓
例:
T_AddBuyOpiTo("m1109", Price("m1109")+5, 10); //买开使多头持仓达到10手

T_AddSellOpiTo(Code, Price, Vol)

根据当前成交的量采用卖开的手段达到把仓位增加到指定值的目的。
用法:
T_AddSellOpiTo(Code, Price, Vol)把空头仓位增加到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到多头vol手持仓
例:
T_AddSellOpiTo("m1109", Price("m1109")-5, 10); //卖开使空头持仓达到10手

T_ReduceBuyOpiTo(Code, Price, Vol)

根据当前成交的量采用卖平的手段达到把仓位减少到某一数值的目的。
用法:
T_ReduceBuyOpiTo(Code, Price, Vol)把多头仓位减少到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到多头vol手持仓
例:
T_ReduceBuyOpiTo("m1109", Price("m1109")-5, 10); //卖平使多头持仓减少到10手

T_ReduceSellOpiTo(Code, Price, Vol)

根据当前成交的量采用买平的手段达到把仓位减少到某一数值的目的。
用法:
T_ReduceSellOpiTo(Code, Price, Vol)把空头仓位减少到某一数值。Code(字符串):合约代码,Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到空头vol手持仓
例:
T_ReduceSellOpiTo("m1109", Price("m1109")-5, 10); //卖开使空头持仓减少到10手

T_StgBuyVol(Code)

当前算法交易模型产生的某品种的多头持仓。
用法:
T_StgBuyVol(Code)返回当前算法交易模型产生的合约代码为Code的合约的多头持仓数。Code(字符串):合约代码
例:
T_StgBuyVol("m1109"); //当前算法交易模型产生的某品种多头持仓数

T_StgSellVol(Code)

当前算法交易模型产生产生的某品种的空头持仓。
用法:
T_StgSellVol(Code)返回当前算法交易模型产生的合约代码为Code的合约的空头持仓数。Code(字符串):合约代码
例:
T_StgSellVol("m1109"); //当前算法交易模型产生的某品种空头持仓数
?

T_OrderMatchVol(OrderID) 某次委托已经成交的数量。
用法:
T_OrderMatchVol(OrderID)根据委托唯一标识OrderID查询委托成交手数,返回成交手数。OrderID(字符串)
例:
VAR matchvol;
matchvol=T_OrderMatchVol(X); //matchvol为某次委托的已成交数量
T_IsNoOrder() 该算法交易模型无挂单(发出的所有委托都已经成交,或被撤单)。
用法:
T_IsNoOrder()如果没有挂单返回1,否则返回0
例:?
IF(T_IsNoOrder()) //如果没有挂单
T_SHBuyRemainPosition 交易系统上海市场某合约多头可用持仓。
用法:
T_SHBuyRemainPosition(code,Type)返回上海市场交易系统中合约Code的多头可用持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓
例:
VAR BuyRemainVol;
BuyRemainVol=T_BuyRemainPosition("ru1009",0); //BuyRemainVol为交易系统中合约代码为ru1009的合约的多头今仓可用持仓。
T_SHSellRemainPosition 交易系统上海市场某合约空头可用持仓。
用法:
T_SHSellRemainPosition(Code,Type)返回上海市场交易交易系统中合约Code的空头可用持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓
例:
VAR SellRemainVol;
SellRemainVol=T_SellRemainPosition("ru1009",0); //SellRemainVol为交易系统中合约代码为ru1009的合约的空头今仓可用持仓。
T_SHBuyPosition 交易系统上海市场某合约多头持仓。
用法:
T_SHBuyPosition(code,Type)返回上海市场交易系统中合约Code的多头持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓
例:
VAR BuyVol;
BuyVol=T_BuyPosition("ru1009",0); //BuyVol为交易系统中合约代码为ru1009的合约的多头今仓持仓。
T_SHSellPosition 交易系统上海市场某合约空头持仓。
用法:
T_SHSellPosition(Code,Type)返回上海市场交易交易系统中合约Code的空头持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓
例:
VAR SellVol;
SellVol=T_SellPosition("ru1009",0); //SellVol为交易系统中合约代码为ru1009的合约的空头今仓持仓。

7.套利函数

Arbi_OpenPDiff

根据套利表达式计算该套利组合的开盘价的价差或价比并返回。
用法:
Arbi_OpenPDiff(),计算并返回该套利组合的开盘价价差或价比。
例:
VAR OpenPD;//定义一个变量,用来保存开盘价价差或价比
OpenPD = Arbi_OpenPDiff()//计算开盘价价差或价比并返回给OpenPD

Arbi_NewPDiff

根据套利表达式计算该套利组合的最新价的价差或价比并返回。
用法:
Arbi_NewPDiff(),计算并返回该套利组合的最新价价差或价比。
例:
VAR NewPD;//定义一个变量,用来保存最新价价差或价比
NewPD = Arbi_NewPDiff()//计算最新价价差或价比并返回给NewPD

Arbi_BidPDiff

根据套利表达式计算该套利组合的对价的价差或价比并返回。
用法:
Arbi_BidPDiff(),计算并返回该套利组合的对价价差或价比。
例:
VAR BidPD;//定义一个变量,用来保存对价价差或价比
BidPD = Arbi_BidPDiff()//计算对价价差或价比并返回给BidPD

Arbi_AskPDiff

根据套利表达式计算该套利组合的挂价的价差或价比并返回。
用法:
Arbi_AskPDiff(),计算并返回该套利组合的挂价价差或价比。
例:
VAR AskPD;//定义一个变量,用来保存挂价价差或价比
AskPD = Arbi_AskPDiff()//计算挂价价差或价比并返回给AskPD

Arbi_YSettlePDiff

根据套利表达式计算该套利组合的昨日结算价的价差或价比并返回。
用法:
Arbi_YSettlePDiff(),计算并返回该套利组合的昨日结算价价差或价比。
例:
VAR YSettlePD;//定义一个变量,用来保存昨日结算价价差或价比
YSettlePD = Arbi_YSettlePDiff()//计算昨日结算价价差或价比并返回给YSettlePD

Arbi_YClosePDiff

根据套利表达式计算该套利组合的昨日收盘价的价差或价比并返回。
用法:
Arbi_YClosePDiff(),计算并返回该套利组合的昨日收盘价价差或价比。
例:
VAR YClosePD;//定义一个变量,用来保存昨日收盘价价差或价比
YClosePD = Arbi_YClosePDiff()//计算昨日收盘价价差或价比并返回给YClosePD

Arbi_Add

根据套利组合、买卖方向以及下单份数等信息添加一个持仓配对。
用法:
Arbi_Add(),添加一个持仓配对,并返回是否成功。
例:
VAR Res;//定义一个变量,用来保存配对是否成功
Res = Arbi_Add()//添加套利配对并返回结果给Res
如果Res是1,配对成功,如果Res是0,配对失败

Arbi_F_DealCode

返回套利对第一腿合约的交易编号。
用法:
Arbi_F_DealCode(),返回套利对第一腿的合约的交易编号。
例:
VAR Code;//定义一个变量,用来保存交易编号
Code = Arbi_F_DealCode()//返回第一腿合约的交易编号

Arbi_S_DealCode

返回套利对第二腿合约的交易编号。
用法:
Arbi_S_DealCode(),返回套利对第二腿的合约的交易编号。
例:
VAR Code;//定义一个变量,用来保存交易编号
Code = Arbi_S_DealCode()//返回第二腿合约的交易编号

Arbi_T_DealCode

返回套利对第三腿合约的交易编号。
用法:
Arbi_T_DealCode(),返回套利对第三腿的合约的交易编号。
例:
VAR Code;//定义一个变量,用来保存交易编号
Code = Arbi_T_DealCode()//返回第三腿合约的交易编号

 ☟问题反馈 ☞┄┄┄┄┄┄┄┄┄┄→收藏资源:

wh3中策略编写、下单组件编写新增函数汇总

  • 下载资源所需积分

    0

  • 当前拥有积分

    0

上传会员: 
股海网
文件大小: 
Bytes
上传时间: 
2015-02-13
下载积分: 
-
免责声明: 
请仔细阅读并同意后才能下载
本附件为用户分享上传,股海网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究使用,不得用于商业或者非法用途,如有侵犯您的版权, 请参看 《股海网侵权处理流程》《股海网免责声明条款》
点击下载无反应时,更换主流浏览器重新登录操作,如360浏览器、Edge浏览器、谷歌浏览器,个别浏览器有不兼容现象。
勾选以下表示您已经阅读并同意以上声明才能下载本文件,扣除积分无法退还!
我已阅读所有条款规定, 请点我同意 所有条款内容!我自愿下载!
提示:如下载失败,请点关闭刷新此页面或提交问题反馈给管理员→
关闭

关于我们 - 联系我们 - 隐私政策 - 免责声明 - 下载帮助 - 广告合作 - SiteMap - TOP
增值电信业务经营ICP许可证:湘B2-20210269 湘ICP备09016573号-10 湘公网安备43108102000040号
Copyright © 2021 铭网科技,All Rights Reserved.