文华赢智程序化交易(WH3)编程函数手册_第1页
文华赢智程序化交易(WH3)编程函数手册_第2页
文华赢智程序化交易(WH3)编程函数手册_第3页
文华赢智程序化交易(WH3)编程函数手册_第4页
文华赢智程序化交易(WH3)编程函数手册_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、赢智算法交易编程函数手册赢智(WH3 )算法交易编程函数手册一、引用数据某合约当前价格。Price(Code)返回合约Code的当前价格,Code为某合约的合约代码例:VAR price;/ 定义一个变量 priceprice=Price("m1009"); /price 的值为合约 m1009 的当前价格 某合约当前均价。AvPrice(Code)返回合约Code的当前均价,Code为某合约的合约代码例:VAR avprice;/ 定义一个变量 avpriceavprice=AvPrice("m1009"); /price 的值为合约 m1009 的当

2、前均价某合约当前最高价。High(Code)返回合约Code的当前最高价,Code为某合约的合约代码例:VAR high;/定义一个变量 highhigh=High("m1009"); /high 的值为合约 m1009的当前最高价某合约当前最低价。Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码例:VAR low;/定义一个变量 lowlow=Low("m1009"); /low的值为合约 m1009的当前最低价某合约的买卖盘报价。Offers(Code,strContent)返回某合约的买卖盘报价Code为某合约的合约代码(

3、字符串),strContent为所要取得内容,可选以下内容"bid15","ask15","bidvol15","askvol15",分别表示买 1-5 卖 1-5 买 1 量-5 量 卖 1 量-5 量。例:VAR bid1;bid1=Offers("m1009","bid1");/bid1 为豆粕 1009 的当前买 1 价某合约最小变动价位。MinPrice(Code)返回合约Code的最小变动价位,Code为某合约的合约代码例:VAR mi nprice;/ 定义一个

4、变量 min priceminprice=MinPrice("m1009"); /minprice的值为合约 m1009 的最小变动价位某合约当前成交量。Volume(Code)返回合约Code的当前成交量,Code为某合约的合约代码例:VAR volume;/ 定义一个变量 volumevolume=Volume("m1009"); /volume 的值为合约 m1009 的当前成交量二、指令状态模型某合约多头持仓。F_BuyPosition()返回模型的多头持仓例:VAR fmIBVol;fmIBV oI=F_BuyPosition(); / 定义一

5、个变量 fmIBV ol,fmIBV ol 为模型的多头持仓。模型某合约空头持仓。F_SellPosition()返回模型的空头持仓例:VAR fMLSVol;fmISVoI=F_SeIIPosition();定义一个变量 fmlSVol,fmlSVol 为模型的空头持仓。模型某合约多头持仓成本价。F_BuyAvgPrice()返回模型多头持仓成本价例:VAR price;price=F_BuyAvgPrice();定义一个变量price,price的值为值为模型多头持仓成本价模型某合约空头持仓成本价。F_SeIIAvgPrice()返回模型空头持仓成本价例:VAR price;price=F

6、_SellAvgPrice() 定义一个变量price,price的值为模型空头持仓成本价取得当前模型的合约编码。F_DealCode()返回模型所加载 K图表的合约的合约编码(字符串)例:VAR DealCode;DeaICode=F_DeaICode(); 变量DealCode的内容为模型当前合约的合约编码取得当前模型的周期。F_Period()返回当前模型的周期(字符串)例:VAR period;period=F_Period(); /变量period的内容为当前模型所使用的周期取已经初始化的多头持仓。F_I ni tBuyVoI()返回模型初始化的多头持仓(整数).例:VAR init

7、BuyVol;/定义一个变量记录初始多头持仓initBuyVoI=FnitBuyV ol();/取出初始多头持仓赋值给initBuyV ol取已经初始化的空头持仓。F_lnitSellVol返回模型初始化的空头持仓(整数).例:VAR initSellVol;/定义一个变量记录初始空头持仓initSellVol=F_InitSellV ol(); 取出初始空头持仓赋值给initSellVol刷新当前信号。F_FreshSig()取一个新信号(如果模型已经发出了多个信号,取最早发出的信号,信号消失 也是一种信号)返回1表示取到新信号,返回0表示失败即已经没有新信号可取。取到新信号以后可以配合F_

8、Sig, F_SigVol, F_SigValid, F_SigTime, F_SigPos 使用例:IF(F_FreshSig() /如果取得了新的信号取当前的信号(BK|SK|BP|SP|BPK|SPK)。F_Sig()返回当前的信号是什么类型(BK|SK|BP|SP|BPK|SPK)例:IF(F_Sig()=BPK && F_SigValid()=1) /如果信号是 BPK 且不是信号消失状态取当前信号发生时的价格。F_SigPrice()取当前的信号发生时刻的价格.例:IF(F_SigPrice()>3500)/如果信号发生的价格大于3500取当前信号的手数。F_

9、SigVol()取当前的信号的手数,如果当前信号是BPK(5),贝U返回5.例:IF(F_SigVol() = VarOpi) /如果信号的仓位等于变量VarOpi当前信号是发出的,还是消失的F_SigValid()返回模型信号存在两种类型之一(信号发出,信号消失),返回1表示信号发出返回0表示信号消失。例:IF(F_Sig()=BPK && F_SigValid()=1) /如果信号是 BPK 且不是信号消失状态当前信号的发出时间。F_SigTime()返回当前信号的发出时间(以总秒数表示),例:IF(SamePeriod("m1009","mi

10、 n10", LastOrderTime(),F_SigTime()/ 如果取得新信号的时间与上次交易的时间是同一个周期 当前信号在模型中是第几个有指令的语句。F_SigPos()如果当前信号是模型中第5个含信号的语句发出的,返回5例:IF(F_SigPos()=5) /如果当前信号是第 5行发出的三、下单接口最后一次下单的时间。LastOrderTime()返回最后一次下单的时间,以总秒数表示例:IF(LastOrderTime() - CurrentTime() >= 300)如果距离上次下单时间超过5分钟查询合约所属交易所的状态。T_lsExchangeOpen(Code

11、)返回合约 Code所属的交易所的开闭盘状态,开盘返回1,闭盘返回0,查询失败返回-1。例:VAR Status;Status=T_lsExchangeOpen("m1009"); /Status为合约m1009所属交易所当前的开闭盘状态。当Status为1时,说明该交易所开盘;当 Status为0时,说明该交易所闭盘;当 Status为-1 时,说明当前查询失败。交易系统某合约多头持仓。T_BuyPosition(Code)返回交易系统中合约Code的多头持仓,Code为某合约的合约代码。例:VAR BuyVol;BuyVol=T_BuyPosition("m1

12、009");/BuyVol为交易系统中合约代码为m1009的合约的多头持仓。交易系统某合约多头持仓成本价。T_BuyAvgPrice(Code)返回交易系统合约Code的多头持仓成本价,Code为某合约合约代码。例:VAR BuyPrice; BuyPrice=T_BuyAvgPrice("m1009");定义一个变量 BuyPrice,BuyPrice 的值为交易系统合约m1009多头持仓成本价交易系统某合约的多头盈亏。T_BuyProfitLoss(code)返回交易系统合约 code的多头盈亏例:VAR BuyEarn;BuyEarn=T_BuyProfit

13、Loss("m1009");定义一个变量 BuyEarn,BuyEarn 的值为交易系统合约m1009的多头盈亏交易系统某合约空头持仓。T_SellPosition(Code)返回交易系统中合约 Code的空头持仓,Code为某合约的合约代码。例:VAR SellVol;SellVol=T_SellPosition("m1009");SVol为交易系统中合约代码为m1009的合约的空头持仓。交易系统某合约空头持仓成本价。T_SellAvgPrice(code)返回交易系统合约 code的空头持仓成本价,code为某合约合约代码。 例:VAR SellPr

14、ice;SellPrice=T_SellAvgPrice("m1009");定义一个变量 SellPrice,SellPrice 的值为交易系统合约m1009空头持仓成本价交易系统某合约的空头盈亏。T_SellProfitLoss(code)返回交易系统合约 code的空头盈亏例:VAR SellEarn;SellEarn=T_SellProfitLoss("m1009")定义一个变量 SellEarn,SellEarn 的值为交易系统合约 m1009的空头盈亏发出委托。T_Deal(Code,bs,kp,vol,price),发出委托。Code(字符串

15、):合约编码,bs(整数 0, 1):0 买 1 卖, kp(整数0, 1,2):0开1平2平今Vol(整数):下单手数,Price(整数或小数):下单价格,0 为市价返回唯一委托标识 OrderlD(字符串)例:VAR orderID=T_Deal("m1009", 0, 0, 5, 2900); 发出委托:m1009 买开 5 手 限价 2900可用资金。T_FreeMargin(Type),返回可用资金。Type(整数0, 1) 0期货1股票,返回可用资金数(小数)例:VAR margi n;margin=T_FreeMargin(0); /返回当前期货帐户的可用资金

16、数权益。T_Equity(Type),返回权益。Type(整数0, 1) 0期货1股票,返回权益(小数)例:VAR margi n;margin=T_Equity(0); /返回当前期货帐户的权益数某品种最大可开仓手数。、T_MaxOpen(Code, margin, bs),某品种最大可开仓手数。Code(字符串):合约编码,margin(小 数):保证金比例bs(整数0,1):0买1卖 返回该品种在当前可用资金,当前价格下的可开仓手数(整数)例:VAR vol;vol=T_MaxOpen("m1009", 0.1, 0); /变量vol为m1009的在保证金比例为 0.

17、1下的可开仓手数查询委托状态。T_OrderState(OrderID)根据委托唯一标识OrderlD(字符串)查委托状态,返回值含义:-1查询失败0挂单1成交2被撤单3部份成交4其它例:IF(T_OrderState(X)=0)如果委托 X 是挂单查询挂单数量。T_OpenOrder(Code,Type)返回未成交委托数量,Code:交易编码,Type:0所有方向;1买开;2卖 平;3卖开;4买平例:IF(LastOrderTime() - Curre ntTime >= 300 && T_Ope nOrder(ru1009,1)>0)T_OpenOrder(&q

18、uot;ru1009",1)/如果距离上次下单超过5分钟,且存在买开挂单,撤掉剩余买开委托合约X的未成交委托数量 委托撤单。T_DeleteOrder(OrderlD)根据委托唯一标识orderlD(字符串)撤单,返回0撤单发出成功,返回其它失败例:IF(T_DeleteOrder(orderID)!=0)如果撤单失败委托撤单(通过合约代码)。T_DeleteOrderByCode(Code,Type)委托撤单。Code:合约代码(字符串)Type:0所有方向;1买开;2 卖平;3卖开;4买平 返回0撤单发出成功,返回其它失败例:T_DeleteOrderByCode("r

19、u1009",2)撤单橡胶 1009 的卖平委托撤掉所有未成交委托。T_DeleteOrderAll()撤掉所有该模型相关的未成缴委托单,返回0撤单发出成功,返回其它失败例:IF(T_DeleteOrderAII()!=0) 如果撤单失败 根据当前成交的量采用买开的手段达到把仓位增加某一数值的目的。T_AddBuyOpiTo(Code, Price, Vol)把多头仓位增加到某一数值。Code(字符串):合约代码Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到多 头vol手持仓例:T_AddBuyOpiTo("m1009

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

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

22、把空头仓位减少到某一数值。Code(字符串):合约代码Price(小数):价格,Vol(整数):成交量 对合约代码为Code的字符串以Price价格下单达到空 头vol手持仓例:T_ReduceSellOpiTo("m1009", Price("m1009")-5, 10); / 卖开使空头持仓减少到10 手 当前算法交易模型产生的某品种的多头持仓。T_StgBuyVol(Code)返回当前算法交易模型产生的合约代码为Code的合约的多头持仓数。Code(字符串):合约代码例:T_StgBuyVol("m1009"); II当前算法交

23、易模型产生的某品种多头持仓数当前算法交易模型产生产生的某品种的空头持仓。T_StgSellVol(Code)返回当前算法交易模型产生的合约代码为Code的合约的空头持仓数。Code(字符串):合约代码例:T_StgSellVol("m1009"); II当前算法交易模型产生的某品种空头持仓数某次委托已经成交的数量。T_OrderMatchV ol(OrderlD)根据委托唯一标识 OrderlD查询委托成交手数,返回成交手数。OrderID(字符串)例:VAR matchvol; matchvol=T_OrderMatchV ol(X); I/matchvol 为某次委托的

24、已成交数量该算法交易模型无挂单(发出的所有委托都已经成交,或被撤单)。T_lsNoOrder()如果没有挂单返回1,否则返回0例:IF(T_IsNoOrder() II 如果没有挂单 四、套利根据套利表达式计算该套利组合的开盘价的价差或价比并返回。 Arbi_OpenPDiff(),计算并返回该套利组合的开盘价价差或价比。 例:VAR OpenPD;定义一个变量,用来保存开盘价价差或价比OpenPD = Arbi_OpenPDiff()计算开盘价价差或价比并返回给OpenPD根据套利表达式计算该套利组合的最新价的价差或价比并返回。Arbi_NewPDiff(),计算并返回该套利组合的最新价价差

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

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

27、AR YClosePD;/定义一个变量,用来保存昨日收盘价价差或价比YClosePD = Arbi_YCIosePDiff() 计算昨日收盘价价差或价比并返回给根据套利组合、买卖方向以及下单份数等信息添加一个持仓配对。Arbi_Add(),添加一个持仓配对,并返回是否成功。例:VAR Res;/定义一个变量,用来保存配对是否成功Res = Arbi_Add()/添加套利配对并返回结果给Res如果Res是1,配对成功,如果 Res是0,配对失败返回套利对第一腿合约的交易编号。Arbi_F_DealCode(),返回套利对第一腿的合约的交易编号。例:VAR Code;/定义一个变量,用来保存交易编

28、号Code = Arbi_F_DealCode()/返回第一腿合约的交易编号返回套利对第二腿合约的交易编号。Arbi_S_DealCode(),返回套利对第二腿的合约的交易编号 例:VAR Code;/定义一个变量,用来保存交易编号Code = Arbi_S_DealCode()返回第二腿合约的交易编号返回套利对第三腿合约的交易编号。Arbi_T_DealCode(),返回套利对第三腿的合约的交易编号 例:VAR Code;/定义一个变量,用来保存交易编号Code = Arbi_T_DealCode()返回第三腿合约的交易编号五、逻辑判断判断两个时间是否是同一个周期。SamePeriod(Co

29、de,PeriodStr,T1,T2) 如果 T1,T2 是同一个周期返回 1,否则返回 0,Code:合约的合约代码,PeriodStr可以取以下值的其中之一:"mi n1","mi n3","mi n5","mi n10","mi n15","mi n30","1hour","3hour","8hour","1day","week","mon th",T

30、1和T2是以总秒数表示的时间例:IF(SamePeriod("m1009","min10",Last0rderTime(),Time("09:00:00")合约为 m1009,周期为 10分钟情况下,如果最后一次下单时间与09:00:00在同一个周期内六、数学运算 取整形绝对值。ABS(Value)返回Value的绝对值,Value是整形值 例:VAR X;X=ABS(5);/X 的值为 5取浮点型的绝对值。ABSF(ValueF)返回ValueF的绝对值,ValueF是浮点值 例:VAR X;X=ABSF(-1.5); /X 的值为

31、 1.5七、其他辅助当前时间。CurrentTime()返回当前时间例:VAR CurTime;CurTime=CurrentTime(); /定义一个变量CurTime,CurTime的值为当前时间。注意返回值是1970年1月1日至今的总秒数转换字符串为时间。Time(strTime)转换字符串strTime为时间(以总秒数表示),strTime的格式应为 HH:MM:SS , 其中0<=HH<24,0<=MM<60,0<=SS<60,如果不满足此条件,返回0例:time:Time("09:15:00")时间转换为字符串。TimeToS

32、tr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:HH:MM:SS例:MessageOut(TimeToStr(CurrentTime(),输出当前时间日期转换为字符串。DateToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:YY:MM:DD例:MessageOut(DateToStr(CurrentTime() ) ); / 输出当前日期退出程序。Exit()退出程序。例:Exit();退出程序。当组件设置为循环时,遇到Exit将停止循环,请谨慎使用。当组件未设置为循环执行时,应该使用RETURN语句退出。数字转换为字符。Itoa(Value)将Value转换成字符串, Value的为整形数值例:VAR str; str="数字"+ltoa(5); /str 的值为"数字 5"输出内容。MessageOut(Content),输出Content的内容。注意:Content可以是字符串也可以是数字返回已注册的整形变量的值ReadGlobal(strName);返回注册的strName的值,strName为已注册的整形变量的注册名称(字符串)。如果strName未被注册过,返回 0例:W

温馨提示

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

评论

0/150

提交评论