您好,登錄后才能下訂單哦!
首先來一張K線圖,方便下面解釋:
我們分3中情況解釋:測試歷史數據、開盤前自動交易、開盤后自動交易。在解釋之前先來解釋一下什么是Tick什么是Bar。
(1)Tick的相關:Tick數據指的是每1秒2次交易的交易快照,國內期貨最細粒度就是每秒2次,時間是毫秒。有個圖表叫做Tick圖,又叫閃電圖,點線圖,是在期貨交易市場把每筆交易成交都顯示出來的圖形,主要用于日內超短線炒作,基本上沒有技術指標的,靠經驗來玩的東西,下面是一張Tick圖:
(2)Bar的相關:Bar是在一定時間段內的時間序列,Bar構成一根K線,也就是一根K線就被稱為一個Bar。如果是一分鐘內的Tick序列就會構成一分鐘的Bar,叫做分鐘Bar,同理也有日線Bar。
Bar就是時間維度上,價格在空間維度上的變化構成的數據的單元,多個數據單元Bar構成一個時間序列。
1.在歷史數據測試時:
假定商品樣本有10條K線,TB的執行過程是:
(1)首先顯示出10條K線,因為都是歷史數據,所以每條K線都是現成的。最后一根K線,也是歷史數據,也就是數據都是靜止的,并且也沒有新的數據傳輸進來。
(2)從最左邊的第一條K線開始執行交易共識,讀取參數值,對應公式應用的Params段的代碼,然后初始化局部變量,對應公式應用Vars段的代碼,執行Begin到End的代碼。
(3)完成后沒進入下一個K線(也就是Bar,TB就是一個Bar一個Bar的運轉的),使用同樣的過程執行交易公式,但是公式應用參數段(Params)是不用初始化的,它相當于TB公式中的常量。依次處理所有的K線。
(4)如果在某個K線上發現符合開倉條件,TB就會在K線圖上顯示開倉標識,并就該marketposition的值。
(5)如果在某個K線上發現符合平倉的條件,就在K線圖上顯示平倉的標識,并在開倉到平倉之間繪制連線。
(6)如果該筆交易盈利,就用紅線(陽線)標識,否則用綠線(陰線)標識。
(7)由于是歷史數據,所有數據都是現成的,也就是每個Bar數據都是現成的,所以也就沒有了Tick的概念。
(8)由于是歷史數據,也就是數據是“死”的,也就沒有信號時有時無的現象。
(9)由于是歷史數據,沒有買賣盤的動態數據,所以不會出現滑點,就會出現成交不了的現象。
2.在交易時間前啟動自動交易程序:
在這里還是假定有10條數據(10Bar數據),用戶此時在開盤60秒前打開了TB開始自動交易,TB的執行過程是這樣的:
(1)每個Bar數據都有一個BarStatus(Bar數據狀態)。
(2)TB使得第一個K線的BarStatus=0,中間的所有K線的BarStatus=1,最后那條K線的BarStatus=2。
(3)對于BarStatus小于2的K線都運行一遍交易公式應用。如果發現K線符合開平倉的條件,就會顯示一個標識,但是不會進行交易,因為還沒開盤。
(4)開盤后,Tick(每筆的交易數據)開始在TB的數據服務器傳過來,為了保持實時性,TB就必須對每一個Tick做出響應(在每個Tick上都運行交易代碼)。我們發現:與歷史數據不同的是,一個Bar數據要運行多次交易公式。
(5)由于在最新的一個Bar上重復運行交易公式,并且下一根Bar還沒出現,所以Bar隨著Tick的增加而變動,當下一個Bar出現的時候,這根Bar就會被確定下來。
(6)如果價格突然符合買入條件,該Tick出現后交易代碼執行,發出買入指令。如果下一個Tick又不符合買入條件那么就會不進行交易,如果價格反復這樣,該Bar就會反復買入多次,從而形成反復開倉,如果Bar最終定型時,價格被打壓下來,K線圖在這個Bar上不會顯示任何交易信號,但是實際上卻在該Bar上買入多次。
3.在交易時間內啟動自動交易程序
(1)如果讀取了10條Bar數據,其中有2條Bar數據是在開盤后剛剛產生的,在前8條Bar數據上,每個Bar數據執行一個交易代碼,如果發現符合開平倉的條件,僅僅顯示交易信號,并不會發出交易指令,因為這些Bar成為了歷史數據。
(2)然后TB在新的Bar數據上依據每個Tick執行交易公式,所以TB的交易指令在BarStatus=2并且有行情數據的是才會發出。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。