商品先物取引の高周波取引戦略では,Tick市場での報価の受信速度は戦略の利益結果に決定的な影響を与える. しかし,市場のほとんどの取引フレームワークはコールバックモードメカニズムを使用しています.Bar/onTickとTickを逃さない方が良いでしょう.なぜですか? onBar/onTick関数では,コードロジック全体を処理しなければならず,時間の無駄です. 戦略ロジックが中断され,状態マシンモードを使用する必要があります.
var state = STATE_IDLE;
function onTick() {
if (state == STATE_IDLE) {
// do something...
} else if (state == ....) {
// do something
}
}
FFMZ Quantはバックワードコールバックメカニズムを採用していないが,戦略論理を中断しない"main
Nの異なる先物会社の口座を簡単に操作し TAQを統合し 最速のスピードで注文をすることができます 通常の状況では 期貨会社から2回の チケットを1秒間に取得できますが MA801を例に挙げて TAQの合併技術によって 最大6回の チケットを1秒間に取得できます
直接コードに移りましょう (コードはボットで操作できますが,バックテストではできません) IO関数の使用は以下を参照できます:https://www.fmz.cn/api#io函数
ボットがプラットフォームを追加すると,Nの先物会社が追加され,TAQの同時合併を処理できます. ここで一時的に2つ追加して示します.
次のコード:
function main() {
Log("Prepare to access the platform and subscribe to TAQ")
// Step 1: all futures front-end processors are subscribing for symbols
_.each(exchanges, function(e) {
// wait to access the platform, and yes, the strategy runs continuously for 365 days, and it can run even after the market is closed, and it is not the logic of event callback
good mistake
while (!e.IO("status")) Sleep(1000);
// Use the _C retry function to eliminate network errors, and subscribe to TAQ just access to the platform; there may be an error that CTP is not ready
_C(e.SetContractType, "MA801")
// Switch the TAQ receiving mode to immediate return mode instead of event trigger mode, please refer to the API documentation
e.IO("mode", 0)
})
Log("Start to merge data...")
// Step 2: here comes the important part
var preVolume = 0
while (true) {
var ts = new Date().getTime()
// If any platform has tick event, return
var e = exchange.IO("wait_any")
// Reset Volume at a proper time
if (e.Nano/1000000 - ts > 60000) {
preVolume = 0
}
if (e.Event == 'tick' && e.Ticker.Volume >= preVolume) {
Log(ret, e.Ticker.Last, e.Ticker.Volume)
preVolume = e.Ticker.Volume
}
}
}
結果は次のとおりです
21:24:44で最初の先物会社のデータが2番目の先物より前に到着し,結果が2つの先物会社の追加で見ることができる. 5以上の先物会社の合併を加えると, 高周波取引戦略を開発するためにそれを使用すると,あなたは非常に重要で決定的なステップを解決しました. それは,速度,安定性,信頼性です.
FMZ Quant (旧 BotVS) は,戦略の安定性と速度に関する重要な要件を持つ開発者向けに特別に作成されたプラットフォームである. 底層プロトコル技術は独立して開発されており,Linux/Windows/Mac/ARMシングルチップマイクロコンピュータまたは携帯電話で動作することができ,注文速度が非常に速い. TAQへの反応は速く,高周波戦略の開発に最適な選択肢である.