贏智(WH3)算法交易編程函數(shù)手冊_第1頁
贏智(WH3)算法交易編程函數(shù)手冊_第2頁
贏智(WH3)算法交易編程函數(shù)手冊_第3頁
贏智(WH3)算法交易編程函數(shù)手冊_第4頁
贏智(WH3)算法交易編程函數(shù)手冊_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上贏智(WH3)算法交易編程函數(shù)手冊  一、引用數(shù)據(jù)  某合約當(dāng)前價格。 Price(Code)返回合約Code的當(dāng)前價格,Code為某合約的合約代碼 例: VAR price;/定義一個變量price price=Price("m1009"); /price的值為合約m1009的當(dāng)前價格 某合約當(dāng)前均價。 AvPrice(Code) 返回合約Code的當(dāng)前均價,Code為某合約的合約代碼 例: VAR

2、 avprice;/定義一個變量avprice avprice=AvPrice("m1009"); /price的值為合約m1009的當(dāng)前均價  某合約當(dāng)前最高價。 High(Code)返回合約Code的當(dāng)前最高價,Code為某合約的合約代碼 例: VAR high;/定義一個變量high high=High("m1009"); /high的值為合約m1009的當(dāng)前最高價 某合約當(dāng)前最低價。 Low(Code)返回合約Code

3、的當(dāng)前最低價,Code為某合約的合約代碼 例: VAR low;/定義一個變量low low=Low("m1009"); /low的值為合約m1009的當(dāng)前最低價  某合約的買賣盤報價。 Offers(Code,strContent) 返回某合約的買賣盤報價Code為某合約的合約代碼(字符串), strContent為所要取得內(nèi)容,可選以下內(nèi)容 "bid15","ask15","bidvol15",&quo

4、t;askvol15",分別表示買1-5 賣1-5 買1量- 5量 賣1量-5量。 例: VAR bid1; bid1=Offers("m1009","bid1");/bid1為豆粕1009的當(dāng)前買1價  某合約最小變動價位。 MinPrice(Code)返回合約Code的最小變動價位,Code為某合約的合約代碼 例: VAR minprice;/定義一個變量minprice minprice=M

5、inPrice("m1009"); /minprice的值為合約m1009的最小變動價位  某合約當(dāng)前成交量。 Volume(Code)返回合約Code的當(dāng)前成交量,Code為某合約的合約代碼 例:VAR volume;/定義一個變量volume volume=Volume("m1009"); /volume的值為合約m1009的當(dāng)前成交量二、指令狀態(tài)  模型某合約多頭持倉。 F_BuyPosition()返回模型的多頭持倉 例:

6、60;VAR fmlBVol;  fmlBVol=F_BuyPosition(); /定義一個變量fmlBVol,fmlBVol為模型的多頭持倉。  模型某合約空頭持倉。 F_SellPosition()返回模型的空頭持倉 例: VAR fMLSVol; fmlSVol=F_SellPosition(); 定義一個變量fmlSVol,fmlSVol為模型的空頭持倉。  模型某合約多頭持倉成本價。 F_BuyAvgPrice()返回模型多頭持倉成本

7、價 例: VAR price; price=F_BuyAvgPrice(); 定義一個變量price,price的值為值為模型多頭持倉成本價  模型某合約空頭持倉成本價。 F_SellAvgPrice()返回模型空頭持倉成本價 例: VAR price; price=F_SellAvgPrice() 定義一個變量price,price的值為模型空頭持倉成本價  取得當(dāng)前模型的合約編碼。 F_DealCode()返回模型所加載K圖表的合約

8、的合約編碼(字符串) 例: VAR DealCode; DealCode=F_DealCode();  /變量DealCode的內(nèi)容為模型當(dāng)前合約的合約編碼.  取得當(dāng)前模型的周期。 F_Period() 返回當(dāng)前模型的周期(字符串) 例: VAR period; period=F_Period(); /變量period的內(nèi)容為當(dāng)前模型所使用的周期.  取已經(jīng)初始化的多頭持倉。 F_InitBuyVol() 

9、;返回模型初始化的多頭持倉(整數(shù)). 例: VAR initBuyVol;/定義一個變量記錄初始多頭持倉 initBuyVol=F_InitBuyVol();/取出初始多頭持倉賦值給initBuyVol 取已經(jīng)初始化的空頭持倉。 F_InitSellVol 返回模型初始化的空頭持倉(整數(shù)). 例: VAR initSellVol;/定義一個變量記錄初始空頭持倉 initSellVol=F_InitSellVol();/取出初始空頭持倉賦值給initSellVol  

10、刷新當(dāng)前信號。 F_FreshSig() 取一個新信號(如果模型已經(jīng)發(fā)出了多個信號,取最早發(fā)出的信號,信號消失也是一種信號)返回1表示取到新信號,返回0表示失敗即已經(jīng)沒有新信號可取。取到新信號以后可以配合 F_Sig, F_SigVol, F_SigValid, F_SigTime, F_SigPos使用 例:  IF(F_FreshSig() /如果取得了新的信號  取當(dāng)前的信號(BK|SK|BP|SP|BPK|SPK)。 F_Sig() 返回

11、當(dāng)前的信號是什么類型(BK|SK|BP|SP|BPK|SPK)例:  IF(F_Sig()=BPK && F_SigValid()=1) /如果信號是BPK 且不是信號消失狀態(tài)  取當(dāng)前信號發(fā)生時的價格。 F_SigPrice() 取當(dāng)前的信號發(fā)生時刻的價格. 例:  IF(F_SigPrice()>3500) /如果信號發(fā)生的價格大于3500  取當(dāng)前信號的手?jǐn)?shù)。 F_SigVol() 取當(dāng)前

12、的信號的手?jǐn)?shù), 如果當(dāng)前信號是BPK(5), 則返回5. 例:  IF(F_SigVol() = VarOpi) /如果信號的倉位等于變量VarOpi  當(dāng)前信號是發(fā)出的,還是消失的 F_SigValid() 返回模型信號存在兩種類型之一(信號發(fā)出,信號消失), 返回1表示信號發(fā)出, 返回0表示信號消失。 例:  IF(F_Sig()=BPK && F_SigValid()=1) 

13、/如果信號是BPK 且不是信號消失狀態(tài)  當(dāng)前信號的發(fā)出時間。 F_SigTime() 返回當(dāng)前信號的發(fā)出時間(以總秒數(shù)表示), 例:  IF(SamePeriod("m1009","min10",LastOrderTime(),F_SigTime() /如果取得新信號的時間與上次交易的時間是同一個周期  當(dāng)前信號在模型中是第幾個有指令的語句。 F_SigPos() 如果當(dāng)前信號是模型中第5個含信號的語句發(fā)出的,返回5

14、0;例:  IF(F_SigPos()=5) /如果當(dāng)前信號是第5行發(fā)出的 三、下單接口  最后一次下單的時間。 LastOrderTime()返回最后一次下單的時間,以總秒數(shù)表示 例: IF(LastOrderTime() - CurrentTime() >= 300)如果距離上次下單時間超過5分鐘  查詢合約所屬交易所的狀態(tài)。 T_IsExchangeOpen(Code)返回合約Code所屬的交易所的開閉盤狀態(tài),開盤返回1,閉

15、盤返回0,查詢失敗返回-1。 例: VAR Status;  Status=T_IsExchangeOpen("m1009"); /Status為合約m1009所屬交易所當(dāng)前的開閉盤狀態(tài)。當(dāng)Status為1時,說明該交易所開盤;當(dāng)Status為0時,說明該交易所閉盤;當(dāng)Status為-1時,說明當(dāng)前查詢失敗。  交易系統(tǒng)某合約多頭持倉。 T_BuyPosition(Code)返回交易系統(tǒng)中合約Code的多頭持倉,Code為某合約的合約代碼。 例: VAR 

16、BuyVol;  BuyVol=T_BuyPosition("m1009"); /BuyVol為交易系統(tǒng)中合約代碼為m1009的合約的多頭持倉。  交易系統(tǒng)某合約多頭持倉成本價。 T_BuyAvgPrice(Code)返回交易系統(tǒng)合約Code的多頭持倉成本價,Code為某合約合約代碼。 例: VAR BuyPrice; BuyPrice=T_BuyAvgPrice("m1009");/ 定義一個變量BuyPrice,BuyPrice的值為交易系統(tǒng)

17、合約m1009多頭持倉成本價  交易系統(tǒng)某合約的多頭盈虧。 T_BuyProfitLoss(code)返回交易系統(tǒng)合約code的多頭盈虧 例: VAR BuyEarn; BuyEarn=T_BuyProfitLoss("m1009");/ 定義一個變量BuyEarn,BuyEarn的值為交易系統(tǒng)合約m1009的多頭盈虧  交易系統(tǒng)某合約空頭持倉。 T_SellPosition(Code)返回交易系統(tǒng)中合約Code的空頭持倉,Code為某合約的合約代碼。 例

18、: VAR SellVol;  SellVol=T_SellPosition("m1009");/ SVol為交易系統(tǒng)中合約代碼為m1009的合約的空頭持倉。  交易系統(tǒng)某合約空頭持倉成本價。T_SellAvgPrice(code)返回交易系統(tǒng)合約code的空頭持倉成本價,code為某合約合約代碼。 例: VAR SellPrice;  SellPrice=T_SellAvgPrice("m1009");/ 定義一個變量Sel

19、lPrice,SellPrice的值為交易系統(tǒng)合約m1009空頭持倉成本價  交易系統(tǒng)某合約的空頭盈虧。 T_SellProfitLoss(code)返回交易系統(tǒng)合約code的空頭盈虧 例: VAR SellEarn; SellEarn=T_SellProfitLoss("m1009") 定義一個變量SellEarn,SellEarn的值為交易系統(tǒng)合約m1009的空頭盈虧  發(fā)出委托。 T_Deal(Code,bs,kp,vol,price),發(fā)出委托。Code(字

20、符串):合約編碼,bs(整數(shù)0,1):0 買 1 賣 ,kp(整數(shù)0,1,2):0 開 1平 2平今 Vol(整數(shù)):下單手?jǐn)?shù),Price(整數(shù)或小數(shù)):下單價格,0為市價 返回唯一委托標(biāo)識OrderID(字符串) 例: VAR orderID=T_Deal("m1009", 0, 0, 5, 2900); 發(fā)出委托:m1009 買開5手 限價2900  可用資金。&

21、#160;T_FreeMargin(Type), 返回可用資金。 Type(整數(shù) 0, 1) 0期貨 1股票,返回可用資金數(shù)(小數(shù)) 例: VAR margin; margin=T_FreeMargin(0); /返回當(dāng)前期貨帳戶的可用資金數(shù)  權(quán)益。 T_Equity(Type), 返回權(quán)益。 Type(整數(shù) 0, 1) 0期貨 1股票,返回權(quán)益(小數(shù)) 例: VAR

22、0;margin; margin=T_Equity(0); /返回當(dāng)前期貨帳戶的權(quán)益數(shù)  某品種最大可開倉手?jǐn)?shù)。、 T_MaxOpen(Code, margin, bs),某品種最大可開倉手?jǐn)?shù)。Code(字符串):合約編碼,margin(小數(shù)):保證金比例 bs(整數(shù)0,1):0 買 1 賣 返回該品種在當(dāng)前可用資金,當(dāng)前價格下的可開倉手?jǐn)?shù)(整數(shù)) 例: VAR vol; vol=T_MaxOpen("m1009",

23、 0.1, 0);  /變量vol為m1009 的 在保證金比例為0.1 下的可開倉手?jǐn)?shù)  查詢委托狀態(tài)。 T_OrderState(OrderID)根據(jù)委托唯一標(biāo)識OrderID(字符串)查委托狀態(tài),返回值含義:-1查詢失敗 0掛單 1成交 2被撤單 3部份成交 4 其它 例: IF(T_OrderState(X)=0) 如果委托X是掛單  查詢掛單數(shù)量。 T_OpenOrd

24、er(Code,Type)返回未成交委托數(shù)量,Code:交易編碼,Type:0所有方向;1買開;2賣平;3賣開;4買平 例: IF(LastOrderTime() - CurrentTime >= 300 && T_OpenOrder(ru1009,1)>0)  T_OpenOrder("ru1009",1)  /如果距離上次下單超過5分鐘,且存在買開掛單,撤掉剩余買開委托合約X的未成交委托數(shù)量  委托撤單。

25、 T_DeleteOrder(OrderID)根據(jù)委托唯一標(biāo)識orderID(字符串)撤單,返回0撤單發(fā)出成功,返回其它失敗 例: IF(T_DeleteOrder(orderID)!=0)如果撤單失敗  委托撤單(通過合約代碼)。 T_DeleteOrderByCode(Code,Type)委托撤單。Code:合約代碼(字符串)Type:0所有方向;1買開;2賣平;3賣開;4買平 返回0撤單發(fā)出成功,返回其它失敗 例: T_DeleteOrderByCode("ru1009",2)撤

26、單橡膠1009的賣平委托  撤掉所有未成交委托。 T_DeleteOrderAll()撤掉所有該模型相關(guān)的未成繳委托單,返回0撤單發(fā)出成功,返回其它失敗 例: IF(T_DeleteOrderAll()!=0)/如果撤單失敗  根據(jù)當(dāng)前成交的量采用買開的手段達到把倉位增加某一數(shù)值的目的。 T_AddBuyOpiTo(Code, Price, Vol)把多頭倉位增加到某一數(shù)值。Code(字符串):合約代碼,Price(小數(shù)):價格,Vol(整數(shù)):成交量 對合約代碼為Code的字符串以P

27、rice價格下單達到多頭vol手持倉 例: T_AddBuyOpiTo("m1009", Price("m1009")+5, 10); /買開使多頭持倉達到10手  根據(jù)當(dāng)前成交的量采用賣開的手段達到把倉位增加到指定值的目的。 T_AddSellOpiTo(Code, Price, Vol)把空頭倉位增加到某一數(shù)值。Code(字符串):合約代碼,Price(小數(shù)):價格,Vol(整數(shù)):成交量 對合約代碼為Code的字符串以Price價格下單達到

28、多頭vol手持倉 例: T_AddSellOpiTo("m1009", Price("m1009")-5, 10); /賣開使空頭持倉達到10手根據(jù)當(dāng)前成交的量采用賣平的手段達到把倉位減少到某一數(shù)值的目的。 T_ReduceBuyOpiTo(Code, Price, Vol)把多頭倉位減少到某一數(shù)值。Code(字符串):合約代碼,Price(小數(shù)):價格,Vol(整數(shù)):成交量 對合約代碼為Code的字符串以Price價格下單達到多頭vol手持倉 例:&#

29、160;T_ReduceBuyOpiTo("m1009", Price("m1009")-5, 10); /賣平使多頭持倉減少到10手  根據(jù)當(dāng)前成交的量采用買平的手段達到把倉位減少到某一數(shù)值的目的。 T_ReduceSellOpiTo(Code, Price, Vol)把空頭倉位減少到某一數(shù)值。Code(字符串):合約代碼,Price(小數(shù)):價格,Vol(整數(shù)):成交量 對合約代碼為Code的字符串以Price價格下單達到空頭vol手持倉 例:

30、0;T_ReduceSellOpiTo("m1009", Price("m1009")-5, 10); /賣開使空頭持倉減少到10手  當(dāng)前算法交易模型產(chǎn)生的某品種的多頭持倉。 T_StgBuyVol(Code)返回當(dāng)前算法交易模型產(chǎn)生的合約代碼為Code的合約的多頭持倉數(shù)。Code(字符串):合約代碼 例: T_StgBuyVol("m1009"); /當(dāng)前算法交易模型產(chǎn)生的某品種多頭持倉數(shù)  當(dāng)前算法交易模型產(chǎn)生產(chǎn)生的某品

31、種的空頭持倉。 T_StgSellVol(Code)返回當(dāng)前算法交易模型產(chǎn)生的合約代碼為Code的合約的空頭持倉數(shù)。Code(字符串):合約代碼 例: T_StgSellVol("m1009"); /當(dāng)前算法交易模型產(chǎn)生的某品種空頭持倉數(shù)  某次委托已經(jīng)成交的數(shù)量。 T_OrderMatchVol(OrderID)根據(jù)委托唯一標(biāo)識OrderID查詢委托成交手?jǐn)?shù),返回成交手?jǐn)?shù)。OrderID(字符串) 例: VAR matchvol; matchvol=T_Order

32、MatchVol(X); /matchvol為某次委托的已成交數(shù)量  該算法交易模型無掛單(發(fā)出的所有委托都已經(jīng)成交,或被撤單)。 T_IsNoOrder()如果沒有掛單返回1,否則返回0 例: IF(T_IsNoOrder() /如果沒有掛單  四、套利  根據(jù)套利表達式計算該套利組合的開盤價的價差或價比并返回。 Arbi_OpenPDiff(),計算并返回該套利組合的開盤價價差或價比。 例: VAR OpenPD;/定義一個變量,用來保存開盤

33、價價差或價比OpenPD = Arbi_OpenPDiff()/計算開盤價價差或價比并返回給OpenPD  根據(jù)套利表達式計算該套利組合的最新價的價差或價比并返回。 Arbi_NewPDiff(),計算并返回該套利組合的最新價價差或價比。 例: VAR NewPD;/定義一個變量,用來保存最新價價差或價比 NewPD = Arbi_NewPDiff()/計算最新價價差或價比并返回給NewPD  根據(jù)套利表達式計算該套利組合的對價的價差或價比并返回。 Arb

34、i_BidPDiff(),計算并返回該套利組合的對價價差或價比。 例: VAR BidPD;/定義一個變量,用來保存對價價差或價比 BidPD = Arbi_BidPDiff()/計算對價價差或價比并返回給BidPD  根據(jù)套利表達式計算該套利組合的掛價的價差或價比并返回。 Arbi_AskPDiff(),計算并返回該套利組合的掛價價差或價比。 例: VAR AskPD;/定義一個變量,用來保存掛價價差或價比 AskPD = Arbi_AskPD

35、iff()/計算掛價價差或價比并返回給AskPD  根據(jù)套利表達式計算該套利組合的昨日結(jié)算價的價差或價比并返回。 Arbi_YSettlePDiff(),計算并返回該套利組合的昨日結(jié)算價價差或價比。 例: VAR YSettlePD;/定義一個變量,用來保存昨日結(jié)算價價差或價比 YSettlePD = Arbi_YSettlePDiff()/計算昨日結(jié)算價價差或價比并返回給YSettlePD  根據(jù)套利表達式計算該套利組合的昨日收盤價的價差或價比并返回。 Arbi_YClos

36、ePDiff(),計算并返回該套利組合的昨日收盤價價差或價比。 例: VAR YClosePD;/定義一個變量,用來保存昨日收盤價價差或價比 YClosePD = Arbi_YClosePDiff()/計算昨日收盤價價差或價比并返回給YClosePD  根據(jù)套利組合、買賣方向以及下單份數(shù)等信息添加一個持倉配對。 Arbi_Add(),添加一個持倉配對,并返回是否成功。 例: VAR Res;/定義一個變量,用來保存配對是否成功 Res = Arb

37、i_Add()/添加套利配對并返回結(jié)果給Res 如果Res是1,配對成功,如果Res是0,配對失敗  返回套利對第一腿合約的交易編號。 Arbi_F_DealCode(),返回套利對第一腿的合約的交易編號。 例: VAR Code;/定義一個變量,用來保存交易編號 Code = Arbi_F_DealCode()/返回第一腿合約的交易編號返回套利對第二腿合約的交易編號。 Arbi_S_DealCode(),返回套利對第二腿的合約的交易編號。 例: VAR 

38、Code;/定義一個變量,用來保存交易編號 Code = Arbi_S_DealCode()/返回第二腿合約的交易編號  返回套利對第三腿合約的交易編號。 Arbi_T_DealCode(),返回套利對第三腿的合約的交易編號。 例: VAR Code;/定義一個變量,用來保存交易編號 Code = Arbi_T_DealCode()/返回第三腿合約的交易編號   五、邏輯判斷  判斷兩個時間是否是同一個周期。 Sam

39、ePeriod(Code,PeriodStr,T1,T2)  如果T1,T2是同一個周期返回1,否則返回0, Code:合約的合約代碼, PeriodStr可以取以下值的其中之一: "min1","min3","min5","min10","min15","min30","1hour","3hour","8hour","1day","we

40、ek","month", T1和T2是以總秒數(shù)表示的時間 例: IF(SamePeriod("m1009","min10",LastOrderTime(),Time("09:00:00")合約為m1009,周期為10分鐘情況下,如果最后一次下單時間與09:00:00在同一個周期內(nèi)   六、數(shù)學(xué)運算  取整形絕對值。 ABS(Value)返回Value的絕對值,Value是整形值 例: VAR

41、60;X; X=ABS(5);/X的值為5  取浮點型的絕對值。 ABSF(ValueF)返回ValueF的絕對值,ValueF是浮點值 例: VAR X;  X=ABSF(-1.5); /X的值為1.5 七、其他輔助  當(dāng)前時間。 CurrentTime()返回當(dāng)前時間 例: VAR CurTime;  CurTime=CurrentTime(); /定義一個變量CurTime,CurTime的

42、值為當(dāng)前時間。注意返回值是1970年1月1日至今的總秒數(shù)  轉(zhuǎn)換字符串為時間。 Time(strTime) 轉(zhuǎn)換字符串strTime為時間(以總秒數(shù)表示),strTime的格式應(yīng)為HH:MM:SS,其中0<=HH<24,0<=MM<60,0<=SS<60,如果不滿足此條件,返回0 例: time:Time("09:15:00")  時間轉(zhuǎn)換為字符串。 TimeToStr(nSec) 把整形數(shù)值表示的時間nSec轉(zhuǎn)換為字符串,nSec為時間的

43、總秒數(shù),返回的字符串格式為:HH:MM:SS 例: MessageOut(TimeToStr(CurrentTime(),輸出當(dāng)前時間  日期轉(zhuǎn)換為字符串。 DateToStr(nSec)把整形數(shù)值表示的時間nSec轉(zhuǎn)換為字符串,nSec為時間的總秒數(shù),返回的字符串格式為:YY:MM:DD 例: MessageOut(DateToStr(CurrentTime() ) ); /輸出當(dāng)前日期  退出程序。 Exit()退出程序。 例:Exit(); 退出程序。當(dāng)組件設(shè)置為循環(huán)時,遇到Exit將停止循環(huán),請謹(jǐn)慎使用。當(dāng)組件未設(shè)置為循環(huán)執(zhí)行時,應(yīng)該使用RETURN語句退出。  數(shù)字轉(zhuǎn)換為字符。 Itoa(Value)將Value轉(zhuǎn)換成字符串,Value的為整形數(shù)值 例:  VAR str; str="數(shù)字"+Ito

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論