wh3策略编写下单组件编写新增函数汇总.docx
- 文档编号:11672162
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:42
- 大小:28.01KB
wh3策略编写下单组件编写新增函数汇总.docx
《wh3策略编写下单组件编写新增函数汇总.docx》由会员分享,可在线阅读,更多相关《wh3策略编写下单组件编写新增函数汇总.docx(42页珍藏版)》请在冰豆网上搜索。
wh3策略编写下单组件编写新增函数汇总
附3:
wh3中策略编写、下单组件编写新增函数汇总
一.策略编写新增函数
1、引用、逻辑判断类函数
#IMPORT跨周期调用
引用某品种在某个周期上加载了某个指标的数据。
用法:
#IMPORT[CODE,PERIOD,FORMULA]ASVAR。
引用CODE所对应的合约PERIOD周期下指标FORMULA的数据。
CODE文华码,PERIOD周期,FORMULA引用指标名,VAR定义变量名
注意:
1.只能引用.FML/.XFML文件
a.只能引用如下周期:
MIN1MIN3MIN5MIN15MIN30HOUR1DAYWEEKMONTH
b.只能短周期引用长周期
c.被引用的指标中不能存在引用
d.如果不写文华码,默认引用当前合约
注:
目前WH3中支持跨2个周期数据调用,用法如下:
新建指标AA
MA5:
=MA(C,5);
在建立指标BB
#IMPORT[,MIN5,AA]ASVAR
MA55:
VAR.MA5;
#IMPORT[,MIN30,AA]ASVAR1
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 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,以KD死叉作为开空仓条件 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 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_BID1K线图时返回当前秒周期最后时刻的买1价。 TICK图时返回该笔TICK时刻的买1价。 L2_BID2 取秒周期末买2价(K线图)或该笔TICK时刻的买2价(Tick图)。 用法: L2_BID2K线图时返回当前秒周期最后时刻的买2价。 TICK图时返回该笔TICK时刻的买2价。 L2_BID3 取秒周期末买3价(K线图)或该笔TICK时刻的买3价(Tick图)。 用法: L2_BID3K线图时返回当前秒周期最后时刻的买3价。 TICK图时返回该笔TICK时刻的买3价。 L2_BID4 取秒周期末买4价(K线图)或该笔TICK时刻的买4价(Tick图)。 用法: L2_BID4K线图时返回当前秒周期最后时刻的买4价。 TICK图时返回该笔TICK时刻的买4价。 L2_BID5 取秒周期末买5价(K线图)或该笔TICK时刻的买5价(Tick图)。 用法: L2_BID5K线图时返回当前秒周期最后时刻的买5价。 TICK图时返回该笔TICK时刻的买5价。 L2_ASK1 取秒周期末卖1价(K线图)或该笔TICK时刻的卖1价(Tick图)。 用法: L2_ASK1K线图时返回当前秒周期最后时刻的卖1价。 TICK图时返回该笔TICK时刻的卖1价。 L2_ASK2 取秒周期末卖2价(K线图)或该笔TICK时刻的卖2价(Tick图)。 用法: L2_ASK2K线图时返回当前秒周期最后时刻的卖2价。 TICK图时返回该笔TICK时刻的卖2价。 L2_ASK3 取秒周期末卖3价(K线图)或该笔TICK时刻的卖3价(Tick图)。 用法: L2_ASK3K线图时返回当前秒周期最后时刻的卖3价。 TICK图时返回该笔TICK时刻的卖3价。 L2_ASK4 取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。 用法: L2_ASK4K线图时返回当前秒周期最后时刻的卖4价。 TICK图时返回该笔TICK时刻的卖4价。 L2_ASK5 取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。 用法: L2_ASK5K线图时返回当前秒周期最后时刻的卖5价。 TICK图时返回该笔TICK时刻的卖5价。 L2_BIDVOL1 取秒周期末买1量(K线图)或该笔TICK时刻的买1量(Tick图)。 用法: L2_BID1K线图时返回当前秒周期最后时刻的买1量。 TICK图时返回该笔TICK时刻的买1量。 L2_BIDVOL2 取秒周期末买2量(K线图)或该笔TICK时刻的买2量(Tick图)。 用法: L2_BID2K线图时返回当前秒周期最后时刻的买2量。 TICK图时返回该笔TICK时刻的买2量。 L2_BIDVOL3 取秒周期末买3量(K线图)或该笔TICK时刻的买3量(Tick图)。 用法: L2_BID3K线图时返回当前秒周期最后时刻的买3量。 TICK图时返回该笔TICK时刻的买3量。 L2_BIDVOL4 取秒周期末买4量(K线图)或该笔TICK时刻的买4量(Tick图)。 用法: L2_BID4K线图时返回当前秒周期最后时刻的买4量。 TICK图时返回该笔TICK时刻的买4量。 L2_BIDVOL5 取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。 用法: L2_BID5K线图时返回当前秒周期最后时刻的买5量。 TICK图时返回该笔TICK时刻的买5量。 L2_ASKVOL1 取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。 用法: L2_ASK1K线图时返回当前秒周期最后时刻的卖1量。 TICK图时返回该笔TICK时刻的卖1量。 L2_ASKVOL2 取秒周期末卖2量(K线图)或该笔TICK时刻的卖2量(Tick图)。 用法: L2_ASK2K线图时返回当前秒周期最后时刻的卖2量。 TICK图时返回该笔TICK时刻的卖2量。 L2_ASKVOL3 取秒周期末卖3量(K线图)或该笔TICK时刻的卖3量(Tick图)。 用法: L2_ASK3K线图时返回当前秒周期最后时刻的卖3量。 TICK图时返回该笔TICK时刻的卖3量。 L2_ASKVOL4 取秒周期末卖4量(K线图)或该笔TICK时刻的卖4量(Tick图)。 用法: L2_ASK4K线图时返回当前秒周期最后时刻的卖4量。 TICK图时返回该笔TICK时刻的卖4量。 L2_ASKVOL5 取秒周期末卖5量(K线图)或该笔TICK时刻的卖5量(Tick图)。 用法: L2_ASK5K线图时返回当前秒周期最后时刻的卖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为某合约的合约代码 例: VARavprice;//定义一个变量avpriceavprice=AvPrice("m1109");//price的值为合约m1109的当前均价 High(Code) 某合约当前最高价。 用法: High(Code)返回合约Code的当前最高价,Code为某合约的合约代码 例: VARhigh;//定义一个变量high high=High("m1109");//high的值为合约m1109的当前最高价 Low(Code) 某合约当前最低价。 用法: Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码 例: VARlow;//定义一个变量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量。 例: VARbid1; bid1=Position("m1109","bid1");//bid1为豆粕1009的当前买1价 Price(Code) 某合约当前价格。 用法: Price(Code)返回合约Code的当前价格,Code为某合约的合约代码 例: VARprice;//定义一个变量price price=Price("m1109");//price的值为合约m1109的当前价格 Volume(Code) 某合约当前成交量。 用法: Volume(Code)返回合约Code的当前成交量,Code为某合约的合约代码 例: VARvolume;//定义一个变量volume volume=Volume("m1109");//volume的值为合约m1109的当前成交量 MinPrice 某合约最小变动价位。 用法: MinPrice(Code)返回合约Code的最小变动价位,Code为某合约的合约代码 例: VARminprice;//定义一个变量minprice minprice=MinPrice("m1009"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wh3 策略 编写 组件 新增 函数 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)