wh3中策略编写、下单组件编写新增函数汇总
-
相关简介:wh3中策略编写、下单组件编写新增函数汇总 一.策略编写新增函数 1、引用、逻辑判断类函数 #IMPORT跨周期调用 引用某品种在某个周期上加载了某个指标的数据。 用法: #IMPORT [CODE, PERIOD, FORMULA] AS VAR。 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。 CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR 定义变量名 注意:1.只能引用
-
文章来源:股海网作者:股海网发布时间:2015-02-13浏览次数:
wh3中策略编写、下单组件编写新增函数汇总
一.策略编写新增函数
1、引用、逻辑判断类函数
#IMPORT跨周期调用 |
引用某品种在某个周期上加载了某个指标的数据。 |
MINPRICE |
返回某品种的最小变动价位。 |
ISLASTKLINE |
用法:? |
IFELSE |
根据条件取不同的值。 |
CROSS2 |
两条线交叉。 |
PLAYSOUND |
条件满足时,播放指定声音。 |
2、头寸函数
? AUTOFILTER ? |
对模型的所有信号按照先买后卖,先开后平的顺序过滤。 例: 注意如果使用自动过滤函数建议就不要在代码中再使用其它的语句进行过滤的编写。 |
|
ISLASTBK |
判断上一个信号是否是BK |
? |
ISLASTSK |
判断上一个信号是否是SK |
? |
ISLASTBP |
判断上一个信号是否是BP |
? |
ISLASTSP |
判断上一个信号是否是SP |
? |
ISLASTBPK |
判断上一个信号是否是BPK |
? |
ISLASTSPK |
判断上一个信号是否是SPK |
? |
ISLASTBUYLONG |
判断上一个信号是否是BUYLONG |
? |
ISLASTSELLSHORT |
判断上一个信号是否是SELLSHORT |
? |
ISLASTEXITLONG |
判断上一个信号是否是EXITLONG |
? |
ISLASTEXITSHORT |
判断上一个信号是否是EXITSHORT |
? |
BKPRICE |
买开信号位置的买开信号价位。 |
? |
SKPRICE |
卖开信号位置的卖开信号价位 |
? |
BARSBP |
上一次买平信号位置 |
? |
BARSSP |
上一次卖平信号位置 |
? |
LASTSIG |
判断上一次交易的信号 |
? |
MONEY |
虚拟资金余额 |
? |
BUYVOL |
模型虚拟多头持仓 |
? |
SELLVOL |
模型虚拟空头持仓 |
? |
MARGIN |
合约保证金 |
? |
FEE |
合约手续费 |
? |
VOLMARGIN |
模型虚拟空头持仓 |
? |
MONEYRATIO |
资金使用率 |
? |
MONEYTOT |
虚拟总资金 |
? |
PROFIT |
虚拟逐笔浮盈 |
? |
SETDEALPERCENT |
设置下单的虚拟资金使用比例 |
? |
注:BK、SK、 BP、 SP、 BPK、 SPK是国内期货合约的交易指令。
BUYLONG、SELLSHORT、EXITLONG、EXITSHORT 是外盘合约的交易指令。
详细内容请查看 “插入指令”。
3、日内高频数据引用
L2_BID1 |
取秒周期末买1价(K线图)或该笔TICK时刻的买1价(Tick图)。 |
L2_BID2 |
取秒周期末买2价(K线图)或该笔TICK时刻的买2价(Tick图)。 |
L2_BID3 |
取秒周期末买3价(K线图)或该笔TICK时刻的买3价(Tick图)。 |
L2_BID4 |
取秒周期末买4价(K线图)或该笔TICK时刻的买4价(Tick图)。 |
L2_BID5 |
取秒周期末买5价(K线图)或该笔TICK时刻的买5价(Tick图)。 |
L2_ASK1 |
取秒周期末卖1价(K线图)或该笔TICK时刻的卖1价(Tick图)。 |
L2_ASK2 |
取秒周期末卖2价(K线图)或该笔TICK时刻的卖2价(Tick图)。 |
L2_ASK3 |
取秒周期末卖3价(K线图)或该笔TICK时刻的卖3价(Tick图)。 |
L2_ASK4 |
取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。 |
L2_ASK5 |
取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。 |
L2_BIDVOL1 |
取秒周期末买1量(K线图)或该笔TICK时刻的买1量(Tick图)。 |
L2_BIDVOL2 |
取秒周期末买2量(K线图)或该笔TICK时刻的买2量(Tick图)。 |
L2_BIDVOL3 |
取秒周期末买3量(K线图)或该笔TICK时刻的买3量(Tick图)。 |
L2_BIDVOL4 |
取秒周期末买4量(K线图)或该笔TICK时刻的买4量(Tick图)。 |
L2_BIDVOL5 |
取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。 |
L2_ASKVOL1 |
取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。 |
L2_ASKVOL2 |
取秒周期末卖2量(K线图)或该笔TICK时刻的卖2量(Tick图)。 |
L2_ASKVOL3 |
取秒周期末卖3量(K线图)或该笔TICK时刻的卖3量(Tick图)。 |
L2_ASKVOL4 |
取秒周期末卖4量(K线图)或该笔TICK时刻的卖4量(Tick图)。 |
L2_ASKVOL5 |
取秒周期末卖5量(K线图)或该笔TICK时刻的卖5量(Tick图)。 |
L2_PRICE |
取Tick图中该笔TICK的成交价。 |
L2_VOLUME |
取TICK图中该笔TICK的成交量。 |
ASKBIGVOLPRICE |
TICK图中该笔Tick 盘口中空头满足大单条件的与最新价的最近价格。 |
BIDBIGVOLPRICE |
TICK图中该笔Tick 盘口中多头满足大单条件的与最新价的最近价格。 |
CALVOLPRICELIST |
TICK图中初始化盘口大单价格表,主要在BIDBIGVOLPRICE 与ASKBIGVOLPRICE 前使用,提供初始化。 |
L2_SETBIGVOL |
设置大单成交手数阈值? |
L2_BIDVOL |
取秒周期主动买的成交量。 |
L2_ASKVOL |
取秒周期主动卖的成交量。 |
L2_BIDBIGCOUNT |
取秒周期主动买的大单成交次数。 |
L2_ASKBIGCOUNT |
取秒周期主动卖的大单成交次数。 |
L2_BIDBIGTOTVOL |
取秒周期主动买的大单成交量。 |
L2_ASKBIGTOTVOL |
取秒周期主动卖的大单成交量。 |
L2_BKVOL |
取秒周期买开的成交量。 |
L2_SKVOL |
取秒周期卖开的成交量。 |
L2_BPVOL |
取秒周期买平的成交量。 |
L2_SPVOL |
取秒周期卖平的成交量。 |
L2_BKBIGCOUNT |
取秒周期买开的大单成交次数。 |
L2_SKBIGCOUNT |
取秒周期卖开的大单成交次数。 |
L2_BPBIGCOUNT |
取秒周期买平的大单成交次数。 |
L2_SPBIGCOUNT |
取秒周期卖平的大单成交次数。 |
L2_BKBIGTOTVOL |
取秒周期买开的大单成交量。 |
L2_SKBIGTOTVOL |
取秒周期卖开的大单成交量。 |
L2_BPBIGTOTVOL |
取秒周期买平的大单成交量。 |
L2_SPBIGTOTVOL |
取秒周期卖平的大单成交量。 |
二.下单组件编写新增函数
1.引用数据函数
AvPrice(Code) |
某合约当前均价。 |
High(Code) |
某合约当前最高价。 |
Low(Code) |
某合约当前最低价。 |
Position(Code,strContent) |
某合约的盘口数据。 |
Price(Code) |
某合约当前价格。 |
Volume(Code) |
某合约当前成交量。 |
MinPrice |
某合约最小变动价位。 |
2.逻辑判断函数
SamePeriod(Code,PeriodStr,T1,T2) |
判断两个时间是否是同一个周期。 |
3.辅助函数
CurrentTime() |
当前时间。 |
DateToStr(nSec) |
日期转换为字符串。 |
Exit() |
退出程序。 |
Itoa(Value) |
数字转换为字符。 |
MessageOut(Content) |
输出内容。 |
ReadGlobal(strName) |
返回已注册的整形变量的值 |
ReadGlobalF(strNameF) |
返回已注册的浮点型变量的值 |
ReadGlobalStr(NameStr) |
返回已注册的字符串变量的值 |
Time(strTime) |
转换字符串为时间。 |
TimeToStr(nSec) |
时间转换为字符串。 |
WriteGlabal(Name,Value) |
注册一个整形变量。 |
WriteGlabal(NameF,ValueF) |
注册一个浮点形变量 |
WriteGlabalStr(NameStr,ValueStr) |
注册一个字符串变量 |
4.数学运算函数
ABS(Value) |
取整形绝对值。 |
ABSF(ValueF) |
取浮点型的绝对值。 |
5、指令状态函数
F_BuyPosition |
模型某合约多头持仓。 |
F_SellPosition |
模型某合约空头持仓。 |
F_BuyAvgPrice |
模型某合约多头持仓成本价。 |
F_SellAvgPrice |
模型某合约空头持仓成本价。 |
F_DealCode |
取得当前模型的合约编码。 |
F_Period |
取得当前模型的周期。 |
F_InitBuyVol |
取已经初始化的多头持仓。 |
F_InitSellVol |
取已经初始化的空头持仓。 |
F_FreshSig |
刷新当前信号。 |
F_Sig |
取当前的信号(BK|SK|BP|SP|BPK|SPK)。 |
F_SigPrice |
取当前信号发生时的价格。 |
F_SigVol |
取当前信号的手数。 |
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() |
最后一次下单的时间。 |
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_BuyAvgPrice(Code) |
交易系统某合约多头持仓成本价。 |
T_BuyProfitLoss(code) |
交易系统某合约的多头盈亏。 |
T_SellPosition(Code) |
交易系统某合约空头持仓。 |
T_SellAvgPrice(code) |
交易系统某合约空头持仓成本价。 |
T_SellProfitLoss(code) |
交易系统某合约的空头盈亏。 |
T_Deal(Code,bs,kp,vol,price) |
发出委托。 |
T_FreeMargin(Type) |
可用资金。 |
T_Equity(Type) |
权益。 |
T_MaxOpen(Code, margin, bs) |
某品种最大可开仓手数。、 |
T_OrderState(OrderID) |
查询委托状态。 |
T_OpenOrder(Code,Type) |
查询挂单数量。 |
T_DeleteOrder(OrderID) |
委托撤单。 |
T_DeleteOrderByCode(Code,Type) |
委托撤单(通过合约代码)。 |
T_DeleteOrderAll() |
撤掉所有未成交委托。 |
T_AddBuyOpiTo(Code, Price, Vol) |
根据当前成交的量采用买开的手段达到把仓位增加某一数值的目的。 |
T_AddSellOpiTo(Code, Price, Vol) |
根据当前成交的量采用卖开的手段达到把仓位增加到指定值的目的。 |
T_ReduceBuyOpiTo(Code, Price, Vol) |
根据当前成交的量采用卖平的手段达到把仓位减少到某一数值的目的。 |
T_ReduceSellOpiTo(Code, Price, Vol) |
根据当前成交的量采用买平的手段达到把仓位减少到某一数值的目的。 |
T_StgBuyVol(Code) |
当前算法交易模型产生的某品种的多头持仓。 |
T_StgSellVol(Code) |
当前算法交易模型产生产生的某品种的空头持仓。 |
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_NewPDiff |
根据套利表达式计算该套利组合的最新价的价差或价比并返回。 |
Arbi_BidPDiff |
根据套利表达式计算该套利组合的对价的价差或价比并返回。 |
Arbi_AskPDiff |
根据套利表达式计算该套利组合的挂价的价差或价比并返回。 |
Arbi_YSettlePDiff |
根据套利表达式计算该套利组合的昨日结算价的价差或价比并返回。 |
Arbi_YClosePDiff |
根据套利表达式计算该套利组合的昨日收盘价的价差或价比并返回。 |
Arbi_Add |
根据套利组合、买卖方向以及下单份数等信息添加一个持仓配对。 |
Arbi_F_DealCode |
返回套利对第一腿合约的交易编号。 |
Arbi_S_DealCode |
返回套利对第二腿合约的交易编号。 |
Arbi_T_DealCode |
返回套利对第三腿合约的交易编号。 |