3
پر توجہ دیں
1444
پیروکار

Commodity Futures اور Cryptocurrency Exchange APIs کے درمیان مماثلتیں اور فرق

میں تخلیق کیا: 2019-09-21 17:37:21, تازہ کاری: 2024-12-17 20:41:43
comments   0
hits   2551

Commodity Futures اور Cryptocurrency Exchange APIs کے درمیان مماثلتیں اور فرق

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

تاریخی ڈیٹا

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

مختلف پروٹوکول

Cryptocurrency APIs عام طور پر REST اور ویب ساکٹ پروٹوکول ہوتے ہیں CTP اندرونی طور پر نیٹ ورک سے متعلق منطق کو سمیٹتا ہے اور CTP پس منظر کے ساتھ بات چیت کرنے کے لیے TCP پروٹوکول پر مبنی FTD پروٹوکول کا استعمال کرتا ہے۔ تین موڈ ہیں:

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

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

ڈیٹا کی نفاست کی مختلف سطحیں۔

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

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

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

استحکام

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

FMZ مقداری پلیٹ فارم پر CTP پروٹوکول کے بہترین طرز عمل

CTP کے پہلے سے طے شدہ موڈ میں، مارکیٹ کی معلومات حاصل کرنے کے لیے انٹرفیس، جیسے GetTicker، GetDepth، اور GetRecords، صرف اس صورت میں تازہ ترین ڈیٹا حاصل کر سکتے ہیں جب کوئی ڈیٹا موجود نہ ہو، یہ ڈیٹا موجود ہونے تک انتظار کرے گا۔ حکمت عملی کو سونے کی ضرورت نہیں ہے۔ جب مارکیٹ میں کوئی تبدیلی آتی ہے، تو اس وقت، ان میں سے کسی بھی انٹرفیس کو کال کرنے پر، اور کال کرنے والے انٹرفیس کی حیثیت کو اپ ڈیٹ کرنے کے لیے اگلی کال پر سیٹ کر دیا جائے گا۔ ایک ہی انٹرفیس نئے ڈیٹا کی واپسی تک انتظار کرے گا۔ کچھ غیر مقبول معاہدوں یا قیمت کی حدوں کا طویل عرصے تک کاروبار نہیں کیا جائے گا، حکمت عملی کا طویل عرصے تک پھنس جانا معمول ہے۔

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

کسی ایک معاہدے کو چلاتے وقت، ڈیفالٹ وضع استعمال کریں۔ تاہم، اگر ایک سے زیادہ معاہدے ہیں، تو یہ ممکن ہے کہ ایک معاہدے نے مارکیٹ کی معلومات کو اپ ڈیٹ نہ کیا ہو، جس کے نتیجے میں مارکیٹ کی معلومات کے حصول کے انٹرفیس میں رکاوٹ پیدا ہو جائے، اور دوسرے معاہدوں کی مارکیٹ کی معلومات کی اپ ڈیٹس حاصل نہیں کی جا سکتیں۔ اس مسئلے کو حل کرنے کے لیے، آپ فوری اپڈیٹ موڈ استعمال کر سکتے ہیں، لیکن ہائی فریکوئنسی کی حکمت عملی لکھنا تکلیف دہ ہے۔ اس وقت، آپ آرڈر اور مارکیٹ کی معلومات حاصل کرنے کے لیے ایونٹ پش موڈ استعمال کر سکتے ہیں۔ ترتیب کا طریقہ ہے exchange.IO(“انتظار”)۔ اگر متعدد ایکسچینج اشیاء کو شامل کیا جاتا ہے، جو کموڈٹی فیوچرز میں نایاب ہے، تو آپ exchange.IO(“wait_any”) استعمال کر سکتے ہیں، اور لوٹا ہوا انڈیکس واپس کیے گئے ایکسچینج انڈیکس کی نشاندہی کرے گا۔

مارکیٹ ٹک چینج پش: {ایونٹ:“ٹک”، انڈیکس: ایکسچینج انڈیکس (جس ترتیب میں روبوٹ ایکسچینج شامل کیا جاتا ہے)، نینو:ایونٹ کا نانو سیکنڈ ٹائم، علامت:معاہدے کا نام} آرڈر پش: {ایونٹ:“آرڈر”، انڈیکس: ایکسچینج انڈیکس، نینو:ایونٹ نینو سیکنڈ ٹائم، آرڈر: آرڈر کی معلومات (گیٹ آرڈر کی طرح)}

اس مقام پر حکمت عملی کا ڈھانچہ اس طرح لکھا جا سکتا ہے:

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")){ //判断链接状态
            exchange.IO("mode", 0)
            _C(exchange.SetContractType, "MA888")//订阅MA,只有第一次是真正的发出订阅请求,接下来都是程序切换,不耗时间。
            _C(exchange.SetContractType, "rb888")//订阅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)
        }
    }
}