কমোডিটি ফিউচার ট্রেডিং এর হাই ফ্রিকোয়েন্সি ট্রেডিং কৌশলতে টিক মার্কেটের কোটেশন গ্রহণের গতি কৌশলটির মুনাফার ফলাফলের উপর গুরুত্বপূর্ণ প্রভাব ফেলে। যাইহোক, বাজারে বেশিরভাগ ট্রেডিং ফ্রেমওয়ার্ক কলব্যাক মোড প্রক্রিয়া ব্যবহার করে। এটি ভাল হবে না onBar/onTick এবং Tick মিস, তাই কেন? কারণ onBar/onTick ফাংশনে, আপনাকে পুরো কোড লজিক নিয়ে কাজ করতে হবে, যা সময়ের অপচয়; আপনি চান বা না চান, আপনার স্ট্র্যাটেজি লজিককে বিঘ্নিত করতে হবে, এবং আপনাকে একটি স্টেট মেশিন মোড ব্যবহার করতে হবে, যেমনঃ
var state = STATE_IDLE;
function onTick() {
if (state == STATE_IDLE) {
// do something...
} else if (state == ....) {
// do something
}
}
এফএফএমজেড কোয়ান্ট ব্যাকওয়ার্ড কলব্যাক প্রক্রিয়া গ্রহণ করে না, তবে
কৌশল মডেলের অধীনে, আপনি সহজেই N বিভিন্ন ফিউচার কোম্পানির অ্যাকাউন্ট পরিচালনা করতে পারেন, তাদের TAQ একত্রিত করতে পারেন, এবং দ্রুততম গতিতে অর্ডার দিতে পারেন। স্বাভাবিক পরিস্থিতিতে, আমরা ফিউচার কোম্পানি থেকে প্রতি সেকেন্ডে দুইটি টিক পেতে পারি, কিন্তু TAQ একত্রীকরণের প্রযুক্তির মাধ্যমে, MA801 উদাহরণ হিসাবে গ্রহণ করে, আমরা প্রতি সেকেন্ডে সর্বোচ্চ 6 টি পুনরাবৃত্তিহীন টিক পেতে পারি।
আসুন সরাসরি কোডটিতে যাই (কোডটি কেবল বটে পরিচালিত হতে পারে, ব্যাকটেস্টে নয়), এবং আইও ফাংশন ব্যবহারের অর্থ হতে পারেঃ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 এ, প্রথম ফিউচার কোম্পানির তথ্য দ্বিতীয়টির আগে আসে, এবং ফলাফল দুটি ফিউচার কোম্পানি যোগ করে দেখা যায়। যদি 5 টিরও বেশি ফিউচার কোম্পানি একত্রিত হয় আপনি যদি এটিকে উচ্চ-ফ্রিকোয়েন্সি ট্রেডিং কৌশল বিকাশের জন্য ব্যবহার করেন তবে আপনি একটি খুব গুরুত্বপূর্ণ এবং সিদ্ধান্তমূলক পদক্ষেপটি সমাধান করেছেন, অর্থাৎ টিক পাওয়ার গতি, স্থিতিশীলতা এবং নির্ভরযোগ্যতা।
এফএমজেড কোয়ান্ট (পূর্বে বটভিএস) এমন একটি প্ল্যাটফর্ম যা বিশেষত এমন বিকাশকারীদের জন্য তৈরি করা হয়েছে যাদের কৌশল স্থিতিশীলতা এবং গতির জন্য সমালোচনামূলক প্রয়োজনীয়তা রয়েছে। আন্ডারলেয়ার প্রোটোকল প্রযুক্তিটি স্বাধীনভাবে বিকাশ করা হয়েছে, যা লিনাক্স / উইন্ডোজ / ম্যাক / এআরএম একক চিপ মাইক্রো কম্পিউটার বা এমনকি মোবাইল ফোনের অধীনে পরিচালিত হতে পারে এবং এর অর্ডারিং গতি অত্যন্ত দ্রুত। TAQ এর প্রতিক্রিয়া দ্রুত এবং এটি উচ্চ-ফ্রিকোয়েন্সি কৌশল বিকাশের জন্য সেরা পছন্দ।