量化投資 TB交易開拓者A函式和Q函式常見組合應用

2022-09-17 04:33:09 字數 3119 閱讀 8934

1  在交易開拓者當中,關於交易的做單方式一般分為:圖表函式和a函式兩類。

兩類的主要區別為:如果採用圖表函式的話,所有的交易內容都是以圖表上面的訊號為準,當前**執行的實際狀態是沒有的,但是可以顯示交易圖示和影象,並且可以進行回測;對於a函式而已,不具有顯示交易圖表和影象和回測的功能,除了與圖表函式具有要求點位做單的功能外,**的實際執行狀態可以進行操作。

舉例:比如圖表函式中,在某乙個點位進行下單訊號,此時運用圖表函式可在這個位置進行下單;但是如果此單並沒有成交,如果突然又遇到乙個平倉訊號,圖表函式認為已經成交了,會發出平倉指令。如果採用a函式,此單如果沒有成交,即使遇到平倉訊號,設定條件也不會發出平倉訊號。

因此最大乙個不同就是a函式考慮了單子的實際狀態,而圖表函式所有訊號全部以影象顯示的為準,忽略單子的實際狀態。

2  a函式的下單常用操作。

2.1  a_buyposition和a_sellposition、a_totalposition(合計**)

如果判斷多圖表上的

data0.a_buyposition 或 data0.a_sellposition

data1.a_buyposition 或 data1.a_sellposition

其中:a_totalposition:正數表示多倉,負數表示空倉,0表示無持倉

2.2  以a_buyposition為例,a_sellposition同理

2.3  a_buyposition 是當前真實賬戶,當前商品的持多倉量

marketpositon 是指測試過程中的持倉狀態,不會出現鎖倉的情況。在做真實交易時,盡量同步真實賬戶和測試的**及資金等資訊。

2.4  如果當前持多單3手,返回值為3

2.5  最後乙個bar,指的就是**在跳動的那個bar

2.6  只在最後乙個bar上,也就是2.5說的那根bar上才有值,其他bar都是n/a

2.7  關於下單函式a_sendorder

對應圖表函式,對應的下單函式如下:

buy or sell (enum_buy(**)或enum_sell(賣出))

entry(開倉)/exit(平倉)/exittoday(平今)

flot(傳送委託單量)

fprice(交易**)

示例1.建多單使用buy  替換為可用引數enum_buy

開倉使用entry 替換為enum_entry

開多倉單5手

**可指定和使用q函式,如q_askprice()

a_sendorder(enum_buy,enum_entry,5,q_askprice());

2.平多倉使用sell  替換為可用引數enum_sell

平倉使用exit /exittoday(平今)替換為enum_exit(平倉),enum_exittoday(平今倉)之一

平多倉單5手,也可使用a_buyposition()獲取

**可指定和使用q函式,如q_bidprice()

a_sendorder(enum_sell,enum_exit,5,q_bidprice()

3.建空單使用sell 替換為可用引數enum_sell

開倉使用entry,替換為enum_entry

開空倉單5手

**可指定和使用q函式,如q_bidprice()

a_sendorder(enum_sell,enum_entry,5,q_bidprice());

4.平空單使用buy 替換為可用引數enum_buy

平倉使用exit /exittoday(平今)替換為enum_exit(平倉),enum_exittoday(平今倉)之一

開空倉單5手,也可使用a_sellposition()獲取

**可指定和使用q函式,如q_askprice()

a_sendorder(enum_buy,enum_exit,5,q_askprice());

2.8  該函式直接發單,不經過任何確認,並會在每次公式計算時傳送,一般要配合**頭寸條件處理。

2.9  不能用於歷史測試,僅適用於實時**。

2.10  持倉手數一定要寫要平或開多少。不能寫零,容易造成誤平。

3  用幾個例項來說明函式應用。

if(barstatus == 0)

//高空低多狀態

if(getglobalvar(1) == 0 and data0.a_sellposition() == 0 and data1.a_buyposition() == 0 and dclose[1] > st1_upperband[1] and dclose[1] < st3_upperband[1] and data0.open == data0.close[1] and data1.open == data1.close[1] and data0.vol > 5 and data1.vol > 5) // 高空低多開倉

if (getglobalvar(1) == 1 and data0.a_sellposition() > 0 and data1.a_buyposition() > 0 and dclose[1] < mean[1] and data0.open == data0.close[1] and data1.open == data1.close[1] and data0.vol > 5 and data1.vol > 5) // 高空低多平倉

//高多低空狀態

if(getglobalvar(2) == 0 and data0.a_buyposition() == 0 and data1.a_sellposition() == 0 and dclose[1] < st1_downband[1] and dclose[1] > st3_downband[1] and data0.open == data0.close[1] and data1.open == data1.close[1] and data0.vol > 5 and data1.vol > 5) // 高多低空開倉

if (getglobalvar(2) == -1 and data0.a_buyposition() > 0 and data1.a_sellposition() > 0 and dclose[1] > mean[1] and data0.open == data0.close[1] and data1.open == data1.close[1] and data0.vol > 5 and data1.vol > 5) // 高多低空平倉

3 交易開拓者 TB公式(二)

迴圈語句 if conditions 例 使用者以3000 開倉買多,20 止損,30 止盈 if high 3000 3000 0.3 sell 0.close if low 3000 3000 0.2 sell 0.close if conditions else if close close ...

1 交易開拓者 基礎入門知識介紹

2.資料型別 3.保留字 軟體使用說明 交易開拓者程式化平台介紹官網 名稱說明 bool 布林型boolref 布林型引用,表示引用bool型別的位址。boolseries 和週期長度一致的bool型序列值,支援回溯。boolarray 布林型陣列。boolarrayref 布林型陣列的引用。num...

國美智慧型 智慧型家 生活的實踐者和開拓者

2018 年大力神盃終歸法蘭西,這與人工智慧最初 德意志衛冕的結果大相徑庭,人工智慧真的靠譜嗎?事實上,這個結果與資料模型的成熟度 有效資料的豐滿度和足球場的偶然性關係緊密,但不可否認,這是史上最智慧型的世界盃 var 助理裁判的出現,減少了許多 冤假錯案 讓比程式設計客棧賽更加公平。而我們也和世界...