संसाधन लोड हो रहा है... लोड करना...

एफएमजेड क्वांट की वास्तविक तकनीक - टिक प्राप्त करने की सीमाओं को कैसे तोड़ें

लेखक:निनाबादास, बनाया गयाः 2022-03-31 11:14:14, अद्यतनः 2022-03-31 14:02:25

कमोडिटी फ्यूचर्स की उच्च आवृत्ति वाली ट्रेडिंग रणनीति में, टिक बाजार के उद्धरणों की प्राप्ति की गति रणनीति के लाभ परिणाम पर निर्णायक प्रभाव डालती है। हालांकि, बाजार पर अधिकांश ट्रेडिंग फ्रेमवर्क कॉलबैक मोड तंत्र का उपयोग करते हैं। यह अच्छा होगा कि onBar/onTick और Tick को याद न करें, तो क्यों? क्योंकि onBar/onTick फ़ंक्शन में, आपको पूरे कोड लॉजिक से निपटना होगा, जो समय की बर्बादी है; चाहे आप इसे चाहते हों या नहीं, आपकी रणनीति लॉजिक को बाधित किया जाना चाहिए, और आपको एक स्टेट मशीन मोड का उपयोग करना चाहिए, जैसेः

var state = STATE_IDLE;
function onTick() {
  if (state == STATE_IDLE) {
    // do something...
  } else if (state == ....) {
    // do something
  }
}

FFMZ क्वांट पिछड़े कॉलबैक तंत्र को अपनाता नहीं है, लेकिन main फ़ंक्शन प्रविष्टि तंत्र को अपनाता है जो रणनीति तर्क को बाधित नहीं करता है, ताकि उपयोगकर्ता रणनीति प्रवाह को अधिक स्वाभाविक रूप से नियंत्रित कर सकें; स्थिर रणनीति अंडरलेयर के रूप में सी ++ और गोलांग का उपयोग करें, और तर्क समस्याओं से निपटने के लिए ऊपरी परत पर जावास्क्रिप्ट / पायथन का उपयोग करें। स्क्रिप्टिंग भाषा धीमी नहीं है, जब तक कि आप इसे एनएनएस प्रशिक्षण के लिए उपयोग न करें; भले ही आप एनएनएस प्रशिक्षण का उपयोग करें, जेट हॉट संकलन जोड़ने के बाद, यह किसी भी अवसर के लिए पर्याप्त होगा; क्रोम IE को तुरंत हराकर एक उदाहरण है। घटना ट्रिगरिंग तंत्र के साथ संयुक्त, रणनीति भी पहली बार में सबसे तेज गति से TAQ संसाधित कर सकते हैं। प्रवेश स्तर की रणनीति यहाँ नहीं लिखा जाएगा, जहां तक वायदा में उच्च आवृत्ति टिक के संश्लेषण के बारे में है, उदाहरण के लिए, जब हम एक वायदा कंपनी का उपयोग करते हैं, तो हम केवल इस वायदा कंपनी के TAQ प्राप्त कर सकते हैं। हमें प्राप्त TAQ की गति और गुणवत्ता हमारे स्वयं के नेटवर्क से संबंधित है, और वायदा कंपनी की फ्रंट-एंड मशीन के भार से भी संबंधित है। तो, हम अधिक सटीक वायदा टिक डेटा कैसे प्राप्त कर सकते हैं तेजी से?

रणनीति मॉडल के तहत, आप आसानी से N विभिन्न वायदा कंपनियों के खातों का संचालन कर सकते हैं, उनके TAQ को मर्ज कर सकते हैं, और सबसे तेज गति से ऑर्डर दे सकते हैं। सामान्य परिस्थितियों में, हम वायदा कंपनियों से प्रति सेकंड दो टिक प्राप्त कर सकते हैं, लेकिन TAQ के विलय की तकनीक द्वारा, उदाहरण के लिए MA801 लेते हुए, हम प्रति सेकंड अधिकतम 6 गैर-दोहराने वाले टिक प्राप्त कर सकते हैं।

img

आइए सीधे कोड पर जाएं (कोड केवल बॉट में संचालित किया जा सकता है, बैकटेस्ट में नहीं), और IO फ़ंक्शन का उपयोग निम्न को संदर्भित कर सकता हैःhttps://www.fmz.cn/api#io函数

जब एक बॉट एक मंच जोड़ता है, तो TAQ के समवर्ती विलय को संसाधित करने के लिए N वायदा कंपनियों को जोड़ा जा सकता है; यहां हम अस्थायी रूप से दो जोड़ते हैं और इसे प्रदर्शित करते हैंः

निम्नलिखित कोडः

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
        }
    }
}

परिणाम इस प्रकार है:

img

यह देखा जा सकता है कि 21:24:44 पर, पहली वायदा कंपनी का डेटा दूसरे से पहले आता है, और परिणाम दो वायदा कंपनियों को जोड़कर देखा जा सकता है। यदि 5 से अधिक वायदा कंपनियों को एक साथ विलय करने के लिए जोड़ा जाता है यदि आप उच्च आवृत्ति व्यापार रणनीतियों को विकसित करने के लिए इसका उपयोग करते हैं, तो आपने एक बहुत ही महत्वपूर्ण और निर्णायक कदम को हल कर लिया है, अर्थात् टिक प्राप्त करने की गति, स्थिरता और विश्वसनीयता।

एफएमजेड क्वांट (पूर्व BotVS) एक ऐसा प्लेटफॉर्म है जो विशेष रूप से उन डेवलपर्स के लिए बनाया गया है जिनके पास रणनीति स्थिरता और गति पर महत्वपूर्ण आवश्यकताएं हैं। अंडरलेयर प्रोटोकॉल तकनीक स्वतंत्र रूप से विकसित की गई है, जिसे लिनक्स / विंडोज / मैक / एआरएम सिंगल चिप माइक्रो कंप्यूटर या यहां तक कि मोबाइल फोन के तहत संचालित किया जा सकता है, और इसकी ऑर्डर गति बेहद तेज है। TAQ की प्रतिक्रिया तेज है, और यह उच्च आवृत्ति रणनीतियों को विकसित करने के लिए सबसे अच्छा विकल्प है।


अधिक