재화 선물의 고주파 거래 전략에서, 틱 시장 코팅의 수신 속도는 전략의 수익 결과에 결정적인 영향을 미친다. 그러나 시장의 대부분의 거래 프레임워크는 콜백 모드 메커니즘을 사용합니다. 왜냐하면 onBar/onTick 함수에서는 전체 코드 로직을 처리해야 하기 때문에, 이는 시간 낭비입니다. 당신이 그것을 원하든 원하지 않든, 당신의 전략 로직은 중단되어야 하며, 당신은 상태 기계 모드를 사용해야 합니다.
var state = STATE_IDLE;
function onTick() {
if (state == STATE_IDLE) {
// do something...
} else if (state == ....) {
// do something
}
}
FFMZ 퀀트는 역으로 호출 메커니즘을 채택하지 않고 전략 논리를 중단하지 않는
전략 모델에 따라, 당신은 쉽게 N개의 다른 선물 회사의 계좌를 운영하고, 그들의 TAQ를 통합하고, 가장 빠른 속도로 주문을 할 수 있습니다. 정상적인 상황에서는 미래에셋 회사로부터 초당 2개의 틱을 받을 수 있지만, TAQ 합병 기술을 통해, 예를 들어 MA801을 이용하면 초당 최대 6개의 반복되지 않는 틱을 얻을 수 있습니다.
바로 코드로 넘어가자 (코드는 배트에서만 작동할 수 있고 백테스트에서는 작동할 수 없다) IO 함수의 사용은 다음을 가리킬 수 있습니다:https://www.fmz.cn/api#io函数
봇이 플랫폼을 추가할 때, N 개의 선물 회사가 추가되어 TAQ의 동시 합병을 처리할 수 있습니다. 여기서 우리는 일시적으로 두 개를 추가하고 이것을 보여줍니다.
코드는 다음과 같습니다.
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에 첫 번째 선물 회사의 데이터가 두 번째보다 먼저 도착한다는 것을 볼 수 있습니다. 두 개의 선물 회사를 더하면 결과를 볼 수 있습니다. 당신은 기본적으로 틱을 놓칠 기회가 없습니다. 당신은 높은 주파수 거래 전략을 개발하는 데 사용할 경우, 당신은 매우 중요하고 결정적인 단계를 해결, 즉, 속도, 안정성 및 신뢰성 틱을 얻는.
FMZ 퀀트 (옛 BotVS) 는 전략 안정성과 속도에 대한 중요한 요구사항을 가진 개발자를 위해 특별히 만들어진 플랫폼이다. 하층 프로토콜 기술은 독립적으로 개발되었으며, 리눅스/윈도우/맥/ARM 싱글 칩 마이크로 컴퓨터 또는 모바일 폰에서도 작동 할 수 있으며 주문 속도는 매우 빠르다. TAQ에 대한 반응은 빠르며 고주파 전략을 개발하는 데 가장 좋은 선택이다.