کموڈٹی فیوچر کی ہائی فریکوئنسی ٹریڈنگ حکمت عملی میں، ٹِک مارکیٹ کی قیمتوں کا تعین کرنے کی رفتار حکمت عملی کے منافع کے نتائج پر فیصلہ کن اثر انداز کرتی ہے۔ تاہم ، مارکیٹ میں زیادہ تر تجارتی فریم ورک کال بیک موڈ میکانزم کا استعمال کرتے ہیں۔ یہ اچھا ہوگا کہ بار / آن ٹِک اور ٹِک کو یاد نہ کریں ، تو کیوں؟ کیونکہ onBar/onTick فنکشن میں، آپ کو پورے کوڈ منطق سے نمٹنے کے لئے ہے، جو وقت کی بربادی ہے؛ چاہے آپ اسے چاہتے ہیں یا نہیں، آپ کی حکمت عملی منطق کو روکنا ضروری ہے، اور آپ کو ایک ریاست مشین موڈ کا استعمال کرنا ضروری ہے، جیسے:
var state = STATE_IDLE;
function onTick() {
if (state == STATE_IDLE) {
// do something...
} else if (state == ....) {
// do something
}
}
ایف ایف ایم زیڈ کوانٹ نے پیچھے کی کال بیک میکانزم کو اپنایا نہیں ، بلکہ
حکمت عملی ماڈل کے تحت، آپ آسانی سے N مختلف فیوچر کمپنیوں کے اکاؤنٹس کو چلانے، ان کے TAQ ضم، اور تیز ترین رفتار پر احکامات رکھ سکتے ہیں. عام حالات میں، ہم فی سیکنڈ فی فیوچر کمپنیوں سے دو ٹک حاصل کر سکتے ہیں، لیکن TAQ ضم کرنے کی ٹیکنالوجی کی طرف سے، مثال کے طور پر MA801 لے، ہم فی سیکنڈ زیادہ سے زیادہ 6 غیر بار بار ٹک حاصل کر سکتے ہیں.
آئیے براہ راست کوڈ پر جائیں (کوڈ صرف بوٹ میں کام کیا جاسکتا ہے ، بیک ٹیسٹ میں نہیں) ، اور IO فنکشن کا استعمال اس سے مراد ہوسکتا ہے:https://www.fmz.cn/api#io函数
جب ایک بوٹ ایک پلیٹ فارم شامل کرتا ہے تو ، ٹی اے کیو کے متوازی انضمام پر کارروائی کرنے کے لئے این فیوچر کمپنیاں شامل کی جاسکتی ہیں۔ یہاں ہم عارضی طور پر دو شامل کرتے ہیں اور اس کا مظاہرہ کرتے ہیں:
مندرجہ ذیل کوڈ:
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 پر ، پہلی فیوچر کمپنی کے اعداد و شمار دوسرے سے پہلے پہنچتے ہیں ، اور نتیجہ دو فیوچر کمپنیوں کو شامل کرکے دیکھا جاسکتا ہے۔ اگر 5 سے زیادہ فیوچر کمپنیاں مل کر ضم ہوجاتی ہیں پھر آپ کے پاس بنیادی طور پر ٹِک کو یاد کرنے کا کوئی موقع نہیں ہے۔ اگر آپ اسے ہائی فریکوئنسی ٹریڈنگ کی حکمت عملی تیار کرنے کے لئے استعمال کرتے ہیں تو ، آپ نے ایک بہت ہی اہم اور فیصلہ کن قدم حل کیا ہے ، یعنی ٹِک حاصل کرنے کی رفتار ، استحکام اور وشوسنییتا۔
ایف ایم زیڈ کوانٹ (سابقہ بوٹ وی ایس) ایک ایسا پلیٹ فارم ہے جو خاص طور پر ان ڈویلپرز کے لئے تیار کیا گیا ہے جن کے پاس حکمت عملی کے استحکام اور رفتار کی اہم ضروریات ہیں۔ انڈر لیئر پروٹوکول ٹکنالوجی آزادانہ طور پر تیار کی گئی ہے ، جو لینکس / ونڈوز / میک / اے آر ایم سنگل چپ مائکرو کمپیوٹرز یا یہاں تک کہ موبائل فونز کے تحت کام کرسکتی ہے ، اور اس کی آرڈرنگ کی رفتار انتہائی تیز ہے۔ ٹی اے کیو کا رد عمل تیز ہے ، اور یہ اعلی تعدد کی حکمت عملی تیار کرنے کے لئے بہترین انتخاب ہے۔