وسائل لوڈ ہو رہے ہیں... لوڈنگ...

اجناس کے فیوچر اور کریپٹوکرنسی ایکسچینج API کے مابین مماثلت اور اختلافات

مصنف:نیکی, تخلیق: 2019-09-28 10:22:34, تازہ کاری: 2023-11-06 20:01:39

img

کموڈٹی فیوچر سی ٹی پی اور کریپٹوکرنسی API ایکسچینج میں اہم اختلافات ہیں۔ کریپٹوکرنسی ایکسچینج پروگرامنگ ٹریڈنگ سے واقف ہونے کا مطلب یہ نہیں ہے کہ ہم کموڈٹی فیوچر سی ٹی پی پروگرامنگ سے واقف ہیں۔ ہم صرف طریقہ کار اور تجربے کی نقل نہیں کرسکتے ہیں۔ یہ مضمون ان کے مابین مماثلتوں اور اختلافات کا خلاصہ کرے گا۔

تاریخی اعداد و شمار

سی ٹی پی انٹرفیس تاریخی مارکیٹ کوٹیشن فراہم نہیں کرتا ہے ، اور تاریخی مارکیٹ کوٹیشن کو مارکیٹ کوٹیشن ایجنسی کے ذریعہ حل کرنے کی ضرورت ہے۔ اگر لاگ ان کرنے میں ناکامی کی وجہ سے مارکیٹ کے اعداد و شمار ضائع ہوجاتے ہیں تو ، سی ٹی پی مارکیٹ کی بحالی کا کوئی طریقہ کار فراہم نہیں کرتا ہے۔ تاریخی مارکیٹ کوٹیشن صرف تیسری پارٹی کی ایجنسی کے ذریعے حاصل کی جاسکتی ہے۔ زیادہ تر کریپٹوکرنسی ایکسچینجز عام طور پر کے لائن اور لین دین کی تاریخ حاصل کرنے کے لئے ایک انٹرفیس فراہم کرتی ہیں۔

مختلف معاہدہ

cryptocurrency تبادلے API عام طور پر ایک ہےRESTاورwebsocketسی ٹی پی اندرونی طور پر نیٹ ورک سے متعلق منطق کو احاطہ کرتا ہے اور ٹی سی پی پروٹوکول پر مبنی ایف ٹی ڈی پروٹوکول کا استعمال کرتے ہوئے سی ٹی پی پس منظر کے ساتھ بات چیت کرتا ہے۔ تین طریقوں میں تقسیم:

  • درخواست جواب موڈ: کلائنٹ ایک درخواست شروع کرتا ہے، اور CTP پس منظر درخواست وصول کرتا ہے اور جواب دیتا ہے.

  • براڈکاسٹ مواصلات کا موڈ: کلائنٹ کے معاہدے کی مارکیٹ کی قیمتوں کا تعین کرنے کے بعد، سی ٹی پی مارکیٹ کی قیمتوں کا تعین براڈکاسٹ کے ذریعے دھکا دیتا ہے.

  • نجی مواصلات کا موڈ: کلائنٹ کے معاہدے کے بعد ، آرڈر کی معلومات ، ٹرانزیکشن کی واپسی وغیرہ کو سی ٹی پی کے ذریعہ نقطہ سے نقطہ تک دھکا دیا جاتا ہے۔

سی ٹی پی معاہدے کے تمام کوٹس اور آرڈر ٹرانزیکشنز کو تبدیلیوں کے بعد مطلع کیا جائے گا ، جبکہ انکوائری آرڈرز ، اکاؤنٹس اور پوزیشنوں کو فعال طور پر سوال کیا جاتا ہے۔ مذکورہ بالا تین طریقوں کو کریپٹوکرنسی ایکسچینج API میں اسی طرح کی شکلیں مل سکتی ہیں۔

اعداد و شمار کی مختلف سطحیں

سی ٹی پی پروٹوکول کی گہرائی صرف تازہ ترین خرید و فروخت کی قیمت ہے ، مارکیٹ کی گہری قیمتیں جیسے خرید و فروخت کی قیمت کی پانچ پرتیں مہنگی ہیں ، اسے حاصل کرنے کے ل you آپ کو فیوچر ایکسچینج کو اضافی رقم ادا کرنے کی ضرورت ہے۔ دوسری طرف ، کریپٹوکرنسی ایکسچینج عام طور پر خرید و فروخت کی قیمتوں کی 200 تہوں تک مکمل گہرائی حاصل کرسکتا ہے۔

اس کے علاوہ ، سی ٹی پی حقیقی ٹرانزیکشن کوٹس کو آگے نہیں بڑھاتا ہے ، اسے صرف پوزیشن کی تبدیلیوں کے ذریعہ ہی الٹ کیا جاسکتا ہے ، اور کریپٹوکرنسی ایکسچینج API حقیقی تفصیلی ٹرانزیکشن کوٹس حاصل کرسکتا ہے۔ سی ٹی پی پلیٹ فارم کی مارکیٹ ڈیٹا ٹِک لیول 2 ٹِک فی سیکنڈ ہے۔ زیادہ تر کریپٹوکرنسی ایکسچینج ویب ساکٹ فی سیکنڈ 10 ٹِک تک کرسکتا ہے۔

مختلف رسائی کی پابندی

کریپٹوکرنسی تبادلے عام طور پر فی سیکنڈ 10 ٹکس تک محدود ہیں۔ آرڈر کی واپسی کے لئے کوئی خاص تقاضے نہیں ہیں۔ سی ٹی پی کی درخواستوں پر سخت پابندیاں ہیں جن کو فعال طور پر بھیجنے کی ضرورت ہے۔ عام طور پر ، ہر 2 سیکنڈ میں ایک بار کافی محفوظ ہے ، اور واپسی کی تعداد کے لئے بھی تقاضے ہیں۔

استحکام

سی ٹی پی پروٹوکول بہت مستحکم ہے اور تقریبا کوئی غلطیاں یا نیٹ ورک کے مسائل نہیں ہیں۔ کریپٹوکرنسی ایکسچینج کی وجہ سے کم پابندی ، طویل ٹرانزیکشن کا وقت ، سسٹم کی بحالی ، ڈیٹا میں تاخیر اور نیٹ ورک کی غلطیاں بہت عام ہیں۔

ایف ایم زیڈ کوانٹ پلیٹ فارم سی ٹی پی پروٹوکول بہترین طریقوں

سی ٹی پی ڈیفالٹ موڈ جیسے مارکیٹ انٹرفیس حاصل کرنے کے لئےGetTicker, GetDepth, GetRecordsتازہ ترین حاصل کرنے کے لئے کیش ڈیٹا ہیں، اگر کوئی ڈیٹا نہیں ہے جب تک ڈیٹا ہے انتظار کریں گے، تاکہ حکمت عملی کا استعمال نہیں کر سکتےSleepجب مارکیٹ کی قیمت میں تبدیلی ہوتی ہے،ticker, depth، اورrecordsاپ ڈیٹ کیا جائے گا۔ اس وقت ، جب کسی بھی انٹرفیس کو بلایا جائے گا تو فوری طور پر واپس کردیا جائے گا۔ پھر بلایا ہوا انٹرفیس کی حالت کو اپ ڈیٹ موڈ کا انتظار کرنے کے لئے ترتیب دیا گیا ہے ، اگلی بار جب اسی انٹرفیس کو بلایا جائے گا تو ، یہ نئے ڈیٹا کی واپسی کا انتظار کرے گا۔

کچھ غیر مقبول تجارتی معاہدے یا قیمت روزانہ محدود قیمت تک پہنچ جاتی ہے جو کسی بھی تجارتی سرگرمی کے بغیر طویل عرصے تک ہوتی ہے ، جو حکمت عملی کے لئے طویل عرصے تک پھنس جانے کے لئے معمول ہے۔

اگر آپ کو ہر بار آپ کو مارکیٹ کوٹیشن حاصل ڈیٹا حاصل کرنا چاہتے ہیں، یہاں تک کہ پرانے اعداد و شمار، آپ کو فوری طور پر مارکیٹ اپ ڈیٹ موڈ پر سوئچ کر سکتے ہیںexchange.IO ("mode", 0). اس وقت، حکمت عملی ایک واقعہ ڈرائیور کے طور پر نہیں لکھا جا سکتا. آپ کو ایک شامل کرنے کی ضرورت ہےSLeepایک تیز لامحدود لوپ سے بچنے کے لئے. کچھ کم تعدد کی حکمت عملی اس موڈ کا استعمال کر سکتے ہیں، اور حکمت عملی کے ڈیزائن آسان ہے. استعمالexchange.IO("mode", 1)ڈیفالٹ کیش موڈ پر واپس سوئچ کرنے کے لئے.

ایک معاہدہ چلانے کے دوران ، ڈیفالٹ موڈ کا استعمال ٹھیک ہوگا۔ تاہم ، اگر متعدد تجارتی معاہدے ہیں تو ، یہ ممکن ہے کہ ایک معاہدہ اپ ڈیٹ نہ ہو ، جس کے نتیجے میں مارکیٹ انٹرفیس بلاک ہوجائے ، اور دوسرے تجارتی معاہدے کی قیمتوں کا تعین مارکیٹ کی تازہ کاری دستیاب نہ ہو۔ اس مسئلے کو حل کرنے کے ل you ، آپ فوری اپ ڈیٹ موڈ کا استعمال کرسکتے ہیں ، لیکن اعلی تعدد کی حکمت عملی لکھنا آسان نہیں ہے۔ اس مقام پر آپ آرڈرز اور قیمتوں کا تعین کرنے کے لئے ایونٹ پش موڈ استعمال کرسکتے ہیں۔ ترتیب دینے کا طریقہ یہ ہے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)
         }
     }
}

متعلقہ

مزید