文华财经策略编写、下单组件编写新增函数_第1页
文华财经策略编写、下单组件编写新增函数_第2页
文华财经策略编写、下单组件编写新增函数_第3页
文华财经策略编写、下单组件编写新增函数_第4页
文华财经策略编写、下单组件编写新增函数_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文华wh3中策略编写、下单组件编写新增函数汇总2二.下单组件编写新增函数引用数据函数AvPrice(Code)*合约当前均价。用法:AvPrice(Code返回合约Code的当前均价,Cod。为*合约的合约代码例:VARavprice定义一个变量avpriceavprice=AvPrice("m1109");的值为c合约m1109的当前均价High(Code)*合约当前最高价。用法:High(Code返回合约Code的当前最高价,Code为*合约的合约代码例:VARhigh;定义一个变量highhigh=High("m1109");//!的值为合约m1109的当前最高价Low(Code)*合约当前最低价。用法:Low(Code)返回合约Code的当前最低价,Code为*合约的合约代码例:VARlow;/定义一个变量lowlow=Low("m1109");//l的w值为合约m1109的当前最低价Position(Code,strContent)*合约的盘数据。用法:Position(Code,strConte返回*合约*种盘数据Code为*合约的合约代码(字符串),strCont为所要取得容,可选以下容"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");为豆粕119的当前买1价Price(Code)*合约当前价格。用法:Price(Cod返回合约Code的当前价格,Code为*合约的合约代码例:VARprice;定/义一个变量priceprice=Price("m1109");//的值(为合约m1109的当前价格Volume(Code)*合约当前成交量。用法:Volume(Code)返回合约Code的当前成交量,Code为*合约的合约代码例:VARvolume;/定义一个变量volumevolume=Volume("m1109");//volume为合约m1109的当前成交量MinPrice*合约最小变动价位。用法:MinPrice(Cod返回合约Code的最小变动价位,Code为*合约的合约代码例:VARminprice;定/义一个变量minpriceminprice=MinPrice("m19");//minp值为合约m19的最小变动价位逻辑判断函数SamePeriod(Code,PeriodStr,T1,T2)判断两个时间是否是同一个周期。用法:SamePeriod(Code,PeriodStr,T1如果T1,T2是同一个周期返回1,否则返回0,Code合约的合约代码,PeriodSt可以取以下值的其中之一:"min1","min3","min5","min10","min15","min30","1hour","3hour","8hour","1day","week","month和T2是以总秒数表示的时间例:IF(SamePeriod("m1109","min10",LastOrderTime(),Time("0合约为(MDD09,周期为10分钟情况下,如果最后一次下单时间与09::0在同一个周期辅助函数CurrentTime()当前时间。用法:CurrentTime返回当前时间例:VARCurTime;CurTime=CurrentTime()定义/一个变量CurTime,CurTime的值为当前时间。注意返回值是1970年1月1日至今的总秒数DateToStr(nSec)日期转换为字符串。用法:DateToStr(nSe把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:YY:MM:DD例:MessageOut(DateToStr(CurrentTime()输出;当/前日期E*it()退出程序。用法:E*it退出程序。例:E*it()退出程序。当组件设置为循环时,遇到E*it将停顿循环,请慎重使用。当组件未设置为循环执行时,应该使用RETURN语句退出。Itoa(Value)数字转换为字符。用法:Itoa(Valu将Value转换成字符串,Value的为整形数值例:VARstr;st数字"+Itoa(5);/的值为数字5"MessageOut(Content)输出容。用法:MessageOut(Content输出Content的容。注意:Content可以是字符串也可以是数字ReadGlobal(strName)返回已注册的整形变量的值用法:ReadGlobal(strName返;回注册的strName的值,strName为已注册的整形变量的注册名称(字符串)。如果strName未被注册过,返回0例:WriteGlabal("limit",20);VARlimitValue;limitValue=ReadGlobal("limit");l的值为l20。ReadGlobalF(strNameF)返回已注册的浮点型变量的值用法:ReadGlobalF(strName返;回注册的strNameF的值,strNameF为已注册的浮点型变量的注册名称(字符串),如果strNameF未被注册过,返回0.0f例:WriteGlabalF("Rate",0.5);VARfRate;fRate=ReadGlobal(Rate);fRa值为0.5。ReadGlobalStr(NameStr)返回已注册的字符串变量的值用法:ReadGlobalStr(NameSti)回注册的NameStr的值,NameStr为已注册的字符串变量的注册名称。如果NameStr未被注册过,返回(空字符串)例:WriteGlabalStr("showS上升"");VARstr;str=ReadGlobal(showStr);的值为"上升"。Time(strTime)转换字符串为时间。用法:Time(strTime转换字符串strTime为时间(以总秒数表示),strTime的格式应为HH:MM:SS,其中0<=HH<24,0<=MM<60,0<=SS<60,如果不满足此条件,返回0例:time:Time("09:15:")TimeToStr(nSec)时间转换为字符串。用法:TimeToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:HH:MM:SS例:MessageOut(TimeToStr(CurrentTime输出,当前时间WriteGlabal(Name,Value)注册一个整形变量。用法:WriteGlabal(Name,ValueName为整形变量的注册名称(字符串),Value为整形变量的值例:WriteGlabal("Period注册一个整形变量,注册名称为"Period"值为5。WriteGlabal(NameF,ValueF)注册一个浮点形变量用法:WriteGlabal(NameF,ValueF)ameF为浮点形变量的注册名称(字符串),Valued浮点形变量的值例:WriteGlabalF("Rate",注册一个浮点形变量,注册名称为"Rate,"值为0.5。WriteGlabalStr(NameStr,ValueStr)注册一个字符串变量用法:WriteGlabalStr(NameStr,ValueNameStr为字符串变量的注册名称(字符串),ValueSt为字符串变量的值例:WriteGlabalStr("showS上升"")注册一个字符串变量,注册名称为"showStr,"值为"上升"。数学运算函数ABS(Value)取整形绝对值。用法:ABS(Value返回Value的绝对值,Value是整形值例:VAR*;*=ABS(5);/的值为5ABSF(ValueF)取浮点型的绝对值。用法:ABSF(ValueF返回ValueF的绝对值,Valued浮点值例:VAR*;*=ABSF(-1.5);的值为1.55、指令状态函数F_BuyPosition模型*合约多头持仓。用法:F_BuyPosition返回模型的多头持仓例:VARfmlBVol;fmlBVol=F_BuyPosition(定义一个变量fmlBVolfmlBVol为模型的多头持仓。F_SellPosition模型*合约空头持仓。用法:F_SellPositi返回模型的空头持仓例:VARfMLSVol;fmlSVol=F_SellPosition定义一个变量fmlSVo,fmlSVol为模型的空头持仓。F_BuyAvgPrice模型*合约多头持仓本钱价。用法:F_BuyAvgPrice返回模型多头持仓本钱价例:VARprice;price=F_BuyAvgPrice定义一个变量price,priice值为值为模型多头持仓F_SellAvgPrice模型*合约空头持仓本钱价。用法:F_SellAvgPric返回模型空头持仓本钱价例:VARprice;price=F_SellAvgPric|(义一个变量price,priice值为模型空头持仓本钱价F_DealCode取得当前模型的合约编码。用法:F_DealCode返回模型所加载K图表的合约的合约编码(字符串)例:VARDealCode;DealCode=F_DealCode();$量DealCode的容为模型当前合约的合约编码.F_Period取得当前模型的周期。用法:F_Period(返回当前模型的周期(字符串)例:VARperiod;period=F_Period()变量/perioc的容为当前模型所使用的周期.F_InitBuyVol取已经初始化的多头持仓。用法:F_InitBuyVol返回模型初始化的多头持仓整数).例:VARinitBuyVol定义一个变量记录初始多头持仓initBuyVol=F_InitBuyVo取出初始多头持仓赋值给initBuyVolF_InitSellVol取已经初始化的空头持仓。用法:F_InitSellV。返回模型初始化的空头持仓整数).例:VARinitSellV(定;义一个变量记录初始空头持仓initSellVol=F_InitSell取出初始空头持仓赋值给initSellVolF_FreshSig刷新当前信号。用法:F_FreshSig(取一个新信号如果模型已经发出了多个信号,取最早发出的信号,信号消失也是一种信号)返回1表示取到新信号,返回0表示失败即已经没有新信号可取。取到新信号以后可以配合F_Sig,F_SigVol,F_SigValid,F_SigTime,使后fPosIF(F_FreshSig()如果取得了新的信号F_Sig取当前的信号(BK|SK|BP|SP|BPK|SPK)用法:F_Sig()返回当前的信号是什么类型(BK|SK|BP|SP|BPK|SP例:IF(F_Sig()==BPK&&F_SigValid()=^i;果信/号是BPK且不是信号消失状态F_SigPrice取当前信号发生时的价格。用法:F_SigPrice(取当前的信号发生时刻的价格.例:IF(F_SigPrice()>350如果信号发生的价格大于35F_SigVol取当前信号的手数。用法:F_SigVol()取当前的信号的手数,如果当前信号是BPK(5),则返回5.例:IF(F_SigVol()==VarO如果信号的仓位等于变量VarOpiF_SigVali当前信号是发出的,还是消失的用法:F_SigValid(返回模型信号存在两种类型之一信号发出,信号消失),返回1表示信号发出,返回0表示信号消失。例:IF(F_Sig()==BPK&&F_SigValid()=^i;果信/号是BPK且不是信号消失状态F_SigTime当前信号的发出时间。用法:F_SigTime()返回当前信号的发出时间似总秒数表示),例:IF(SamePeriod(nm19n,nmin10n,LastOrderTime(),F-Sig如m果取得新信号的时间与上次交易的时间是同一个周期F_SigPos当前信号在模型中是第几个有指令的语句。用法:F_SigPos()如果当前信号是模型中第5个含信号的语句发出的,返回5例:IF(F_SigPos()==5如果当前信号是第5行发出的F_Close当前模型*根K线的收盘价。用法:F_Close(n返回倒数第n+1根K线的收盘价例:VARc;c=F_Close(0);为最后一根K线收盘价F_Open当前模型*根K线的开盘价。用法:F_Open(n)返回倒数第n+1根K线的开盘价例:VARc;c=F_Open(0);/为最后一根K线开盘价F_High当前模型*根K线的最高价。用法:F_High(nM回倒数第n+1根K线的最高价例:VARc;c=F_High(0);/^最后一根K线最高价F_Low当前模型*根K线的最低价。用法:F_Low(n)返回倒数第n+1根K线的最低价例:VARc;c=F_Low(0);/为最后一根K线最低价F_Volume当前模型*根K线的成交量。用法:F_Volume(n返回倒数第n+1根K线的成交量例:VARc;c=F_Volume(0);/为最后一根K线成交量F_Opi当前模型*根K线的持仓量。用法:F_Opi(nM回倒数第n+1根K线的持仓量例:VARc;c=F_Opi(0);/为最后一根K线持仓量F_Avprice当前模型*根K线的均价。用法:F_Avprice(返回倒数第n+1根K线的均价例:VARc;c=F_Avprice(0);//最后一根K线均价F_Variant当前模型*变量在*根K线上的值。用法:F_Variant(varname,返>回模型中变量varname在倒数第n+1根K线的值nvarname变量名类型为字符串例://e*ample.trd・・・MA5:=MA(CLOSE,5);・・・//e*ample.stgVARma5;ma5=F_Variant("MA5",0)拗盘价5个周期简单平均移动的最后一根K线值下单接函数LastOrderTime()最后一次下单的时间。用法:LastOrderTime()回最后一次下单的时间,以总秒数表例如:IF(LastOrderTime()-CurrentTime()如果3离上次下单时间超过5分钟T_IsE*changeOpen查询合约所属交易所的状态。用法:T_IsE*changeOpen(Code返回合约Code所属的交易所的开闭盘状态,开盘返回1,闭盘返回0,查询失败返回-1。例:VARStatus;Status=T_IsE*changeOpen("m19");//S为合u约m19所属交易所当前的开闭盘状态。当Statu为1时,说明该交易所开盘;当Statu为0时,说明该交易所闭盘;当Statu为-1时,说明当前查询失败。T_BuyPosition(Code)交易系统*合约多头持仓。用法:T_BuyPosition(Cod返回交易系统中合约Code的多头持仓,Cod。为*合约的合约代码。例:VARBuyVol;BuyVol=T_BuyPosition("m1109");//B为y^O易系统中合约代码为m1109的合约的多头持仓。T_BuyAvgPrice(Code)交易系统*合约多头持仓本钱价。用法:T_BuyAvgPrice(Code返回交易系统合约Code的多头持仓本钱价,Cod。为*合约合约代码。例:VARBuyPrice;BuyPrice=T_BuyAvgPrice("m110定义一个变量BuyPrice,BuyPri的值为交易系统合约m1109多头持仓本钱价T_BuyProfitLoss(code)交易系统*合约的多头盈亏。用法:T_BuyProfitLoss(cod返回交易系统合约code的多头盈亏例:VARBuyEarn;BuyEarn=T_BuyProfitLoss("m1109"定义一个变量BuyEarn,BuyEari的值为交易系统合约m1109的多头盈亏T_SellPosition(Code)交易系统*合约空头持仓。用法:T_SellPosition(Co返回交易系统中合约Code的空头持仓,Cod。为*合约的合约代码。例:VARSellVol;SellVol=T_SellPosition("m1109");为交易d.系统中合约代码为m1109的合约的空头持仓。T_SellAvgPrice(code)交易系统*合约空头持仓本钱价。用法:T_SellAvgPrice(co返回交易系统合约code的空头持仓本钱价,code%*合约合约代码。例:VARSellPrice;SellPrice=T_SellAvgPrice("m1109定义一个变量SellPrice,SellP的值为交易系统合约m1109空头持仓本钱价T_SellProfitLoss(code)交易系统*合约的空头盈亏。用法:T_SellProfitLoss(co返回交易系统合约code的空头盈亏例:VARSellEarn;SellEarn=T_SellProfitLoss("m1定义一个变量SellEarn,SellE的值为交易系统合约m1109的空头盈亏T_Deal(Code,bs,kp,vol,price)发出委托。用法:T_Deal(Code,bs,kp,vol,p发曲委托。Code(字符串)合约编码,bs整数0,1):0买1卖,kp整数0,1,2):0开1平2平今Vol整数):下单手数,Price整数或小数):下单价格,0为市价返回唯一委托标识OrderlD字符串)例:VARorderID=T_Deal("m1109",0,0,5,发9出委托:m1109买开5手限价29T_FreeMargin(Type)可用资金。用法T_FreeMargin(Type)返回可用资金。Type整数0,1)期货1股票,返回可用资金数小数)例:VARmargin;margin=T_FreeMargin(0)返回/当前期货的可用资金数T_Equity(Type)权益。用法T_Equity(Type)返回权益。Type整数0,1)期货1股票,返回权益小数)例:VARmargin;margin=T_Equity(0)返回/当前期货的权益数T_Ma*Open(Code,margin,bs)*品种最大可开仓手数。、用法:T_Ma*Open(Code,margin,bsV种最大可开仓手数。Code(字符串):合约编码,margin小数):保证金比例bs整数0,1):0买1卖返回该品种在当前可用资金,当前价格下的可开仓手数整数)例:VARvol;vol=T_Ma*Open("m1109",0.1,变;量//ol为m1109的在保证金比例为0.1下的可开仓手数T_OrderState(OrderID)查询委托状态。用法:T_OrderState(OrderID据委托唯一标识OrderID字符串)查委托状态,返回值含义:-1查询失败0挂单1成交2被撤单3部份成交4其它例:IF(T_OrderState(*)=如)果委托*是挂单T_OpenOrder(Code,Type)查询挂单数量。用法:T_OpenOrder(Code,Type返回未成交委托数量,Code交易编码,Type:所有方向;1买开;2卖平;3卖开;4买平例:IF(LastOrderTime()-CurrentTime>=3&&T_OpenOrder(ru19,1)>0)T_OpenOrder("ru19",1如果距离上次下单超过5分钟,且存在买开挂单,撤掉剩余买开委托合约*的未成交委托数量T_DeleteOrder(OrderID)委托撤单。用法:T_DeleteOrder(Order根据委托唯一标识orderlD字符串)撤单,返回0撤单发出成功,返回其它失败例:IF(T_DeleteOrder(orderID如!果撤单失败T_DeleteOrderByCode(Code,Type)委托撤单通过合约代码)。用法:T_DeleteOrderByCode(Code,Tyfb托撤单。Code:合约代码(字符串)Type:所有方向;1买开;2卖平;3卖开;4买平返回0撤单发出成功,返回其它失败例:T_DeleteOrderByCode("ru19»橡胶19的卖平委托T_DeleteOrderAll()撤掉所有未成交委托。用法:T_DeleteOrderAlJ^t(掉所有该模型相关的未成缴委托单,返回0撤单发出成功,返回其它失败例:IF(T_DeleteOrderAll()如果撤单失败T_AddBuyOpiTo(Code,Price,Vol)根据当前成交的量采用买开的手段到达把仓位增加*一数值的目的。用法:T_AddBuyOpiTo(Code,Price,把多)头仓位增加到*一数值。Code(字符串)合约代码,PriceJX数)价格,Vol整数)成交量对合约代码为Code的字符串以Price价格下单到达多头vol手持仓例:T_AddBuyOpiTo("m1109",Price("m1109")+5,买开使/多头持仓到达10手T_AddSellOpiTo(Code,Price,Vol)根据当前成交的量采用卖开的手段到达把仓位增加到指定值的目的。用法:T_AddSellOpiTo(Code,Price把空l头仓位增加到*一数值。Code(字符串)合约代码,PriceJ(数)价格,Vol整数):成交量对合约代码为Code的字符串以Price价格下单到达多头vol手持仓例:T_AddSellOpiTo("m1109",Price("m1109")-5,卖开)使空头持仓到达10手T_ReduceBuyOpiTo(Code,Price,Vol)根据当前成交的量采用卖平的手段到达把仓位减少到*一数值的目的。用法:T_ReduceBuyOpiTo(Code,Price,把多)头仓位减少到*一数值。Code(字符串):合约代码,PriceJ(数)价格,Vol整数):成交量对合约代码为Code的字符串以Price价格下单到达多头vol手持仓例:T_ReduceBuyOpiTo("m1109",Price("m1109")-5,卖平;使多头持仓减少到10手T_ReduceSellOpiTo(Code,Price,Vol)根据当前成交的量采用买平的手段到达把仓位减少到*一数值的目的。用法:T_ReduceSellOpiTo(Code,Price把V£)D?仓位减少到*一数值。Code(字符串):合约代码,PriceJ(数)价格,Vol整数):成交量对合约代码为Code的字符串以Price价格下单到达空头vol手持仓例:T_ReduceSellOpiTo("m1109",Price("m1109")-5卖开使空头持仓减少到10手T_StgBuyVol(Code)当前算法交易模型产生的*品种的多头持仓。用法:T_StgBuyVol(CodeM回当前算法交易模型产生的合约代码为Code的合约的多头持仓数。Code(字符串):合约代码例:T_StgBuyVol("m1109");当前算法交易模型产生的*品种多头持仓数T_StgSellVol(Code)当前算法交易模型产生产生的*品种的空头持仓。用法:T_StgSellVol(Cod返)回当前算法交易模型产生的合约代码为Code的合约的空头持仓数。Code(字符串):合约代码例:T_StgSellVol("m1109"当前算法交易模型产生的*品种空头持仓数T_OrderMatchVol(OrderID次委托已经成交的数量。用法:T_OrderMatchVol(Order]根据委托唯一标识OrderID查询委托成交手数,返回成交手数。OrderID字符串)例:VARmatchvol;matchvol=T_OrderMatchVol(*);//match*次委托的已成交数量T_IsNoOrder()该算法交易模型无挂单发出的所有委托都已经成交,或被撤单)。用法:T_IsNoOrder如果没有挂单返回1,否则返回0例:IF(T_IsNoOrder()如果没有挂单T_SHBuyRemainPosition交易系统市场*合约多头可用持仓。用法:T_SHBuyRemainPosition(code,Ty返回市场交易系统中合约Code的多头可用持仓,Cod。为*合约的合约代码。Type:0今仓1老仓例:VARBuyRemainVol;BuyRemainVol=T_BuyRemainPosition("ru19",0);//BuyRen为i交易系统中合约代码为ru19的合约的多头今仓可用持仓。T_SHSellRemainPositic交易系统市场*合约空头可用持仓。用法:T_SHSellRemainPosition(Code,T返回市场交易交易系统中合约Code的空头可用持仓,Code为*合约的合约代码。Type:0今仓1老仓例:VARSellRemainVol;SellRemainVol=T_SellRemainPosition("ru19",0);//Sel为1交易系^统中合约代码为ru19的合约的空头今仓可用持仓。T_SHBuyPosition交易系统市场*合约多头持仓。用法:T_SHBuyPosition(code,Ty返回市场交易系统中合约Code的多头持仓,Cod。为*合约的合约代码。Type:0今仓1老仓例:VARBuyVol;BuyVol=T_BuyPosition("ru19",0);//为交V易系统中合约代码为ru19的合约的多头今仓持仓。T_SHSellPositic交易系统市场*合约空头持仓。用法:T_SHSellPosition(Code,T返回市场交易交易系统中合约Code的空头持仓,Code为*合约的合约代码。Type:0今仓1老仓例:VARSellVol;SellVol=T_SellPosition("ru19",0);为/交易系(统中合约代码为ru19的合约的空头今仓持仓。套利函数Arbi_OpenPDiff根据套利表达式计算该套利组合的开盘价的价差或价比并返回。用法:Arbi_OpenPDiff,()计算并返回该套利组合的开盘价价差或价比。例:VAROpenPD;/定义一个变量,用来保存开盘价价差或价比OpenPD=Arbi_OpenPDiff计算开盘价价差或价比并返回给OpenPDArbi_NewPDiff根据套利表达式计算该套利组合的最新价的价差或价比并返回。用法:Arbi_NewPDiff,()计算并返回该套利组合的最新价价差

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论