রিসোর্স লোড হচ্ছে... লোডিং...

কমোডিটি ফিউচার এবং ক্রিপ্টোকারেন্সি এক্সচেঞ্জের মধ্যে মিল এবং পার্থক্য API

লেখক:ভাল, তৈরিঃ 2019-09-28 10:22:34, আপডেটঃ 2023-11-06 20:01:39

img

কমোডিটি ফিউচার সিটিপি এবং ক্রিপ্টোকারেন্সি এপিআই এক্সচেঞ্জের উল্লেখযোগ্য পার্থক্য রয়েছে। ক্রিপ্টোকারেন্সি এক্সচেঞ্জ প্রোগ্রামিং ট্রেডিংয়ের সাথে পরিচিত হওয়ার অর্থ কমোডিটি ফিউচার সিটিপি প্রোগ্রামিংয়ের সাথে পরিচিত নয়। আমরা কেবল পদ্ধতি এবং অভিজ্ঞতা অনুলিপি করতে পারি না। এই নিবন্ধটি তাদের মধ্যে মিল এবং পার্থক্য সংক্ষিপ্ত করবে।

ইতিহাসের তথ্য

সিটিপি ইন্টারফেসটি historicalতিহাসিক বাজার কোট সরবরাহ করে না এবং historicalতিহাসিক বাজার কোটটি বাজার কোট এজেন্সির মাধ্যমে সমাধান করা দরকার। লগ ইন ব্যর্থতার কারণে বাজার ডেটা হারিয়ে গেলে, সিটিপি বাজার পুনরায় পূরণের প্রক্রিয়া সরবরাহ করে না। historicalতিহাসিক বাজার কোটগুলি কেবল তৃতীয় পক্ষের এজেন্সির মাধ্যমে পাওয়া যায়। বেশিরভাগ ক্রিপ্টোকারেন্সি এক্সচেঞ্জ সাধারণত কে-লাইন এবং লেনদেনের ইতিহাস পাওয়ার জন্য একটি ইন্টারফেস সরবরাহ করে।

ভিন্ন চুক্তি

ক্রিপ্টোকারেন্সি এক্সচেঞ্জ API সাধারণত একটিRESTএবংwebsocketপ্রোটোকল। সিটিপি অভ্যন্তরীণভাবে নেটওয়ার্ক সম্পর্কিত লজিককে ক্যাপসুল করে এবং টিসিপি প্রোটোকলের উপর ভিত্তি করে এফটিডি প্রোটোকল ব্যবহার করে সিটিপি ব্যাকগ্রাউন্ডের সাথে যোগাযোগ করে। তিনটি মোডে বিভক্তঃ

  • অনুরোধ প্রতিক্রিয়া মোডঃ ক্লায়েন্ট একটি অনুরোধ শুরু করে, এবং সিটিপি ব্যাকগ্রাউন্ড অনুরোধটি গ্রহণ করে এবং প্রতিক্রিয়া জানায়।

  • ব্রডকাস্ট যোগাযোগ মোডঃ ক্লায়েন্ট চুক্তি বাজার কোট সাবস্ক্রাইব করার পরে, সিটিপি বাজারের কোটগুলিকে ব্রডকাস্টের মাধ্যমে ঠেলে দেয়।

  • ব্যক্তিগত যোগাযোগের মোডঃ ক্লায়েন্ট একটি চুক্তি অর্ডার করার পরে, অর্ডার তথ্য, লেনদেনের রিটার্ন ইত্যাদি সিটিপি দ্বারা পয়েন্ট-টু-পয়েন্ট চাপানো হয়।

সিটিপি চুক্তির সমস্ত উদ্ধৃতি এবং অর্ডার লেনদেনগুলি পরিবর্তনের পরে বিজ্ঞাপিত হবে, যখন অনুসন্ধান আদেশ, অ্যাকাউন্ট এবং অবস্থানগুলি সক্রিয়ভাবে অনুসন্ধান করা হয়। উপরের তিনটি মোড ক্রিপ্টোকারেন্সি এক্সচেঞ্জ এপিআইতে অনুরূপ ফর্মগুলি খুঁজে পেতে পারে।

বিভিন্ন স্তরের তথ্য

সিটিপি প্রোটোকলের গভীরতা শুধুমাত্র সর্বশেষ ক্রয় এবং বিক্রয় মূল্য, যেমন পাঁচ স্তর ক্রয় এবং বিক্রয় মূল্যের মতো গভীর বাজার কোট ব্যয়বহুল, এটি পেতে আপনাকে ফিউচার এক্সচেঞ্জে অতিরিক্ত অর্থ প্রদান করতে হবে। অন্যদিকে, ক্রিপ্টোকারেন্সি এক্সচেঞ্জ সাধারণত ক্রয় এবং বিক্রয় মূল্যের 200 স্তর পর্যন্ত পূর্ণ গভীরতা পেতে পারে।

এছাড়াও, সিটিপি প্রকৃত লেনদেনের উদ্ধৃতিকে ঠেলে দেয় না, এটি কেবল অবস্থান পরিবর্তনের মাধ্যমে বিপরীত হতে পারে এবং ক্রিপ্টোকারেন্সি এক্সচেঞ্জ এপিআই প্রকৃত বিশদ লেনদেনের উদ্ধৃতি পেতে পারে। সিটিপি প্ল্যাটফর্মের বাজারের ডেটা টিক স্তর প্রতি সেকেন্ডে 2 টিক। বেশিরভাগ ক্রিপ্টোকারেন্সি এক্সচেঞ্জ ওয়েবসকেট প্রতি সেকেন্ডে 10 টি টিক পর্যন্ত করতে পারে।

বিভিন্ন অ্যাক্সেস সীমাবদ্ধতা

ক্রিপ্টোকারেন্সি এক্সচেঞ্জগুলি সাধারণত প্রতি সেকেন্ডে 10 টি টিকের মধ্যে সীমাবদ্ধ থাকে। অর্ডার প্রত্যাহারের জন্য কোনও বিশেষ প্রয়োজনীয়তা নেই। সক্রিয়ভাবে প্রেরণ করা দরকার এমন অনুরোধগুলিতে সিটিপি কঠোর বিধিনিষেধ রয়েছে। সাধারণত, প্রতি 2 সেকেন্ডে একবার বেশ নিরাপদ, এবং প্রত্যাহারের সংখ্যার জন্যও প্রয়োজনীয়তা রয়েছে।

স্থিতিশীলতা

সিটিপি প্রোটোকল খুব স্থিতিশীল এবং প্রায় কোনও ত্রুটি বা নেটওয়ার্ক সমস্যা নেই। ক্রিপ্টোকারেন্সি এক্সচেঞ্জের কারণে কম সীমাবদ্ধতা, দীর্ঘতর লেনদেনের সময়, সিস্টেম রক্ষণাবেক্ষণ, ডেটা বিলম্ব এবং নেটওয়ার্ক ত্রুটিগুলি খুব সাধারণ।

FMZ কোয়ান্ট প্ল্যাটফর্ম সিটিপি প্রোটোকল সেরা অনুশীলন

যেমন বাজার ইন্টারফেস পেতে CTP ডিফল্ট মোডGetTicker, GetDepth, GetRecordsসর্বশেষ তথ্য পেতে ক্যাশে করা হয়, যদি কোন তথ্য আছে না পর্যন্ত অপেক্ষা করবে তথ্য আছে, তাই কৌশল ব্যবহার করতে পারবেন নাSleepযখন বাজার কোট পরিবর্তন হয়,ticker, depth, এবংrecordsএই পয়েন্টে, যে কোন ইন্টারফেস অবিলম্বে ফিরে আসবে যখন এটি কল করা হবে। তারপর কল করা ইন্টারফেস অবস্থা আপডেট মোডের জন্য অপেক্ষা করতে সেট করা হয়, যখন পরবর্তী সময় একই ইন্টারফেস বলা হয়, এটি নতুন ডেটা ফিরে আসার জন্য অপেক্ষা করবে।

কিছু অপ্রচলিত ট্রেডিং চুক্তি বা দাম দৈনিক সীমিত মূল্যের কাছে পৌঁছায় কোনও ট্রেডিং ক্রিয়াকলাপ ছাড়াই দীর্ঘ সময় ধরে ঘটবে, যা কৌশলটির দীর্ঘ সময়ের জন্য আটকে থাকা স্বাভাবিক।

আপনি যদি তথ্য পেতে চান যখনই আপনি বাজার উদ্ধৃতি পেতে, এমনকি পুরানো তথ্য, আপনি বাজারে স্যুইচ করতে পারেন অবিলম্বে আপডেট মোডexchange.IO ("mode", 0). এই সময়ে, কৌশল একটি ইভেন্ট ড্রাইভার হিসাবে লেখা যাবে না. আপনি একটি যোগ করতে হবেSLeepএকটি দ্রুত অসীম লুপ এড়াতে ইভেন্ট. কিছু নিম্ন ফ্রিকোয়েন্সি কৌশল এই মোড ব্যবহার করতে পারেন, এবং কৌশল নকশা সহজ. ব্যবহারexchange.IO("mode", 1)ডিফল্ট ক্যাশে মোডে ফিরে যেতে।

একটি একক চুক্তি পরিচালনা করার সময়, ডিফল্ট মোডটি ব্যবহার করা ভাল হবে। তবে, যদি একাধিক ট্রেডিং চুক্তি থাকে তবে এটি সম্ভব যে একটি চুক্তি আপডেট করা হয়নি, যার ফলে বাজারের ইন্টারফেসটি অবরুদ্ধ হয়ে যায় এবং অন্যান্য ট্রেডিং চুক্তির বাজার কোট আপডেটগুলি উপলব্ধ নেই। এই সমস্যাটি সমাধানের জন্য, আপনি তাত্ক্ষণিক আপডেট মোড ব্যবহার করতে পারেন, তবে উচ্চ ফ্রিকোয়েন্সি কৌশল লিখতে সুবিধাজনক নয়। এই মুহুর্তে আপনি অর্ডার এবং কোটগুলির ধাক্কা পেতে ইভেন্ট পুশ মোড ব্যবহার করতে পারেন। সেটিং পদ্ধতিটি হলexchange.IO("wait"). যদি একাধিক বিনিময় বস্তু যোগ করা হয়, এই কমোডিটি ফিউচার ট্রেডিং মধ্যে বিরল পরিস্থিতি, আপনি ব্যবহার করতে পারেনexchange.IO ("wait_any"), এবং ফিরেindexরিটার্ন এক্সচেঞ্জের সূচক নির্দেশ করবে।

বাজার মূল্যtickপরিবর্তন চাপঃ

{Event:"tick", Index: exchange index (in the order of robot exchange added), Nano: event nanosecond time, Symbol: contract name}

অর্ডার ধাক্কা:

{Event:"order", Index: Exchange Index, Nano: Event Nanosecond Time, Order: Order Information (consistent with GetOrder)}

এই পর্যায়ে কৌশল কাঠামোটি নিম্নরূপ লেখা যেতে পারেঃ

function on_tick(symbol){
     Log("symbol update")
     exchange.SetContractType(symbol)
     Log(exchange.GetTicker())
}

function on_order(order){
     Log("order update", order)
}

function main(){
     while(true){
         if(exchange.IO("status")){ //Determine the link status
             exchange.IO("mode", 0)
             _C (exchange.SetContractType, "MA888") // subscribe to the MA, only the first time is the real request to send a subscription, the following are just program switch, won't consume any time.
             _C(exchange.SetContractType, "rb888") // Subscribe rb
             While(True){
                 Var e = exchange.IO("wait")
                 If(e){
                     If(e.event == "tick"){
                         On_tick(e.Symbol)
                     }else if(e.event == "order"){
                         On_order(e.Order)
                     }
                 }
            }
         }else{
             Sleep(10*1000)
         }
     }
}

সম্পর্কিত

আরো