২.৮ মার্কেট ডেটা আপডেট মোড পরিবর্তন (বিস্তারিত)

লেখক:ছোট্ট স্বপ্ন, তৈরিঃ ২০১৬-০৭-১৩ ১০ঃ০৮ঃ৫০, আপডেটঃ ২০১৭-১১-১১ ১০ঃ২১ঃ২৯

বাজারের ডেটা আপডেটের মোড পরিবর্তন করুন

  • এপিআই ডকুমেন্টেশনে নিম্নলিখিতগুলি উল্লেখ করা হয়েছেঃ
// 只支持Websocket模式(huobi, okcoin.cn, BTCC支持)与商品期货CTP协议
exchange.IO("websocket"); // 切换行情通信协议到websocket(默认为rest), Ticker, Depth会切换为websocket协议来更新, 商品期货CTP无需切换
// 切换GetTicker, GetDepth数据更新模式
exchange.IO("mode", 0); // 立即返回模式, 如果当前还没有接收到交易所最新的行情数据推送, 就立即返回旧的行情数据, 如果有新的数据就返回新的数据
exchange.IO("mode", 1); // 缓存模式(默认模式), 如果当前还没有收到交易所最新的行情数据(同上一次api获取的数据比较), 就等待接收然后再返回, 
                        //如果调用该函数之前收到了最新的行情数据, 就立即返回最新的数据
exchange.IO("mode", 2); // 强制更新模式, 进入等待一直到接收到交易所下一次的最新推送数据后返回
// 如果想第一时间获取最新的行情可以切换到websocket后不Sleep的立即检测数据, GetTicker, GetDepth用缓存模式进行工作
exchange.IO("websocket");
while (true) {
    Log(exchange.GetTicker());
}
  • ব্যবহারকারীদের বোঝার জন্য, নিচে বিস্তারিত আলোচনা করা হলঃ

    • ১। প্ল্যাটফর্ম সিস্টেম ডিফল্টরূপে rest মোডে রয়েছেঃ rest মোডে একটি API ডেটা অনুরোধ, এক্সচেঞ্জ সার্ভার একটি ডেটা ফেরত ((বর্তমানের সর্বশেষতম) । এক্সচেঞ্জ সার্ভারগুলি ব্যবহারকারীদের কাছে সর্বশেষতম ডেটা প্রেরণ করে না। সুতরাং কৌশলটি হ'ল রিস্ট মোড ব্যবহারের সময় প্রায়শই ডেটা অনুরোধ করার প্রয়োজন যাতে সর্বশেষতম ডেটা সময়মতো পাওয়া যায় ((নতুন ডেটা উত্পন্ন হওয়ার সাথে সাথে এটি পেতে পারে না, কারণ একটি প্রশ্নের উত্তর, প্রশ্নের উত্তর) ।

    • ২। ওয়েবসকেট মোড সমর্থিত এপিআই আছে GetTicker, GetDepth।exchanges[0].IO("websocket");ফাংশনের পরে, ওয়েবসকেট মোড চালু করুন। মনোযোগ সহ শিক্ষার্থীরা দেখতে পাবে কেন এক্সচেঞ্জ [০] এইভাবে লেখা আছে। নীচের চিত্রটি দেখুন।imgউদাহরণস্বরূপ, একটি নীতিতে দুটি এক্সচেঞ্জ যুক্ত করা হয় (এমনকি একাধিক হতে পারে) এবং প্ল্যাটফর্মের সংজ্ঞায়িত গ্লোবাল অবজেক্টগুলির মধ্যে একটি অ্যারে রয়েছে যা নীতিতে যুক্ত সমস্ত এক্সচেঞ্জকে প্রতিনিধিত্ব করে। এই অ্যারেটি হ'ল এক্সচেঞ্জ প্যানেল। এক্সচেঞ্জ অবজেক্টের অ্যারেটি হ'ল মূল এক্সচেঞ্জের বস্তু যা অ্যারেটির প্রথম (সূচক 0 এর উপাদান): এক্সচেঞ্জ[০] টিকট এক্সচেঞ্জ অবজেক্ট; দ্বিতীয় এক্সচেঞ্জের বস্তুঃ এক্সচেঞ্জ[১] OKCoin এক্সচেঞ্জ অবজেক্ট; বিনিময় এক্সচেঞ্জ[০] । ওয়েবসকেট দ্বারা সমর্থিত লেনদেন সমস্ত টিকট, OKCoin ক্যাশ, বিটিসিসি। সিটিপি পণ্য ফিউচারগুলি সিটিপি প্রোটোকল, ওয়েবসকেট এর মতো, যখন ব্যবহার করা হয় তখন কোনও সুইচ প্রয়োজন হয় না।

    • ৩. ওয়েবসকেট মোড থেকে পার্থক্যঃ ওয়েবসকেট মোডে, ম্যানেজার এক্সচেঞ্জ সার্ভারে একটি সাবস্ক্রিপশন অনুরোধ পাঠায়, এক্সচেঞ্জ সার্ভার এটি পাওয়ার পরে; যখনই সর্বশেষ তথ্য থাকে তখন এটি ম্যানেজারকে সক্রিয়ভাবে ধাক্কা দেয়। ম্যানেজার এই ডেটা ক্যাশে করে, যখন কৌশলগত রোবটগুলি ডেটা অনুরোধ করে তখন এটি দ্রুত পাওয়া যায় এবং ডেটা সর্বশেষ হয়। (যেহেতু এক্সচেঞ্জ সার্ভারগুলি নতুন ডেটা আপডেট করার সময় সক্রিয়ভাবে ধাক্কা দেয়)

    • ৪. ওয়েবসকেট মোড চালু হলে, তিনটি কাজের মোড সেট করা যায়ঃ

      • <1> exchange.IO("mode",0);// তাত্ক্ষণিক রিটার্ন মোডঃ এই মোডটি তাত্ক্ষণিকভাবে বর্তমান ডেটা ((বর্তমান আপডেট) ফিরিয়ে দেয়) ।

      • <2> exchange.IO("mode", 1);//ক্যাশে মোড ((ডিফল্ট মোড): এই মোডটি দুটি প্রসেসিং শাখায় বিভক্ত, যা একটি প্রসেসিং শাখার সাথে একত্রিত হয়। প্রথমত, এপিআই যখন ডেটা অনুরোধ করে, তখন অনুরোধ করা ডেটা এপিআই প্রত্যাশা করে, যদি বর্তমান ক্যাশে থাকা ডেটা আগের এপিআই থেকে নেওয়া ডেটার সাথে তুলনা করা হয় তবে এটি ফিরে আসে। দ্বিতীয়ত, এপিআই যখন ডেটা অনুরোধ করে, তখন তাৎক্ষণিকভাবে তাৎক্ষণিক ডেটা ফিরিয়ে দেয় যদি বর্তমান ক্যাশে থাকা ডেটাটি সর্বশেষ এপিআই-র সাথে তুলনা করা হয় (যেমন, এপিআই অনুরোধের ডেটা কল করার আগে সর্বশেষ ট্রেডিং ডেটা পাওয়া যায়) ।

      • <3> exchange.IO("mode", 2);// বাধ্যতামূলক আপডেট মোডঃ এই মোডটি ক্যাশে মোডের একটি লজিকাল শাখার সাথে এক নজরে বিভ্রান্ত হতে পারে। ক্যাশেড মোড হ'ল ক্যাশেড ডেটার আপডেট কিনা তা বিচার করা। যখন বাধ্যতামূলক আপডেট মোড হ'ল বর্তমান বাজারটি আপডেট কিনা তা পরবর্তী আপডেট হওয়া পর্যন্ত অপেক্ষা করা। (এই সময়ের মধ্যে অনুরোধ করা ডেটার এপিআই অপেক্ষা করে থাকে)


আরো

হক্শেলাতো``js function main (() { exchange.IO (("websocket"); while (true) { Log ((exchange.GetTicker))); } } `` ১. পুনরাবৃত্তি করা যায়নি, ত্রুটি রিপোর্ট `main:2:12 - ReferenceError: setLastError is not defined `, অনুমান করা হয় যে পুনরাবৃত্তি সিস্টেম অ্যাসিনক্রোনিক তথ্য প্রেরণ সমর্থন করে না। ২. অ্যানালগ ডিস্ক ত্রুটি রিপোর্ট করে, `Futures_OP 4: period not support `, তারপর শুধুমাত্র একটি টিকার ডেটা গ্রহণ করে, এবং রোবটটি স্বাভাবিকভাবে থামতে পারে না।

ফ্যাংবিক্যাশে কতগুলো ডাটা আছে এবং ক্যাশে কতদিন থাকবে?

হক্শেলাতোবুঝলাম, ধন্যবাদ!

ছোট্ট স্বপ্ন১, পুনরায় পরিমাপের মধ্যে rest নেই, ওয়েবসকেট ভাগ। ২, এনালগ ডিস্কে ওয়েবসকেট মোড নেই। ডকুমেন্টেশনঃ শুধুমাত্র OKEX টিকটোন প্রো ওয়েবসকেট প্রোটোকল সমর্থন করে।

ছোট্ট স্বপ্নআমি এই নিবন্ধটি দেখতে চাই, তবে আমি এটিতে কিছু তথ্য সংরক্ষণ করতে চাই।