avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

میں تخلیق کیا: 2019-09-26 15:47:53, تازہ کاری: 2024-12-17 20:38:08
comments   3
hits   3531

آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

موجد مقداری تجارتی پلیٹ فارم پراسٹریٹجی اسکوائراس وقت انٹرنیٹ پر بہت ساری دلچسپ حکمت عملییں استعمال ہوتی تھیں۔restپروٹوکول کے API انٹرفیس، بہت سے حکمت عملی پر مبنی ہیںrestانٹرفیس، کبھی کبھی مارکیٹ اپ ڈیٹس سست ہیں. اس کے علاوہ، کچھ تبادلے حال ہی میں شائع ہوئے ہیںrestانٹرفیس کی ناکامی پالیسی کے ناقابل استعمال ہونے کا سبب بنتی ہے۔ اگر پالیسی میں ترمیم کی گئی ہے تو شامل کریں۔websocketانٹرفیس سپورٹ کے لیے حکمت عملی کے کوڈ میں کچھ تبدیلیوں کی ضرورت ہوتی ہے، جو عام طور پر پریشان کن ہوتی ہے (حکمت عملی کو تبدیل کرنا اسے دوبارہ لکھنے سے کہیں زیادہ مشکل ہے)۔ میں ایک ہی حکمت عملی کو تبدیل کیے بغیر کیسے استعمال کرسکتا ہوں؟websocketمارکیٹ انٹرفیس کے بارے میں کیا خیال ہے؟ یہ مکمل طور پر موجد مقداری تجارتی پلیٹ فارم کی طاقتور لچک کو ظاہر کرتا ہے:

  • 1. حکمت عملی “ٹیمپلیٹ لائبریری” استعمال کریں۔
  • 2. ہاںexchange.GetTicker مارکیٹ کی معلومات حاصل کرنے کے لیے فنکشن ہک آپریشن۔

یہ حکمت عملی کو کنٹرول کرنے کی اجازت دیتا ہے۔websocketمارکیٹ انٹرفیس سے چلنے والا ڈیٹا چل رہا ہے۔ کوڈنگ زبان استعمال کی گئی۔JavaScriptزبان

تجزیاتی حکمت عملی

مثال کے طور پر، ہم ایک کلاسک پرانی حکمت عملی “آئس بریکر” میں ترمیم کرنا چاہتے ہیں۔

پالیسی کا پتہ

آئیے سب سے پہلے حکمت عملی کے کوڈ کو دیکھیں اور معلوم کریں کہ حکمت عملی ٹک مارکیٹ کے حالات سے چلتی ہے اور بنیادی طور پر استعمال کرتی ہے۔tickerڈیٹا میںBuySellLastیہ صفات،tickerڈیٹا FMZ پلیٹ فارم کے API فنکشن سے حاصل کیا گیا ہے:exchange.GetTicker حاصل کریں۔ اس طرح مقصد واضح ہو جاتا ہے۔exchange.GetTickerفنکشنHookآپریشن (یعنی اسے دوسرے ورژن کے ساتھ دوبارہ لکھنا اور اسے تبدیل کرنا) بس اتنا ہی ضروری ہے۔ تاہم، ہم آئس بریکر کی حکمت عملی کو دوبارہ نہیں لکھ سکتے کیونکہ یہ حکمت عملی کو متاثر کرے گا جو ہم چاہتے ہیں ایک ہموار کنکشن ہے! ! لہذا اگلے مرکزی کردار کو ظاہر ہونے کی ضرورت ہے۔

ٹیمپلیٹ لائبریری فنکشن اورinitفنکشن کوآرڈینیشن

ہم ایک “ٹیمپلیٹ لائبریری” بناتے ہیں اور اسے نام دیتے ہیں:SeamlessConnWSابتدائی کوڈ کو صاف کریں۔

آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

پھر دیناSeamlessConnWSٹیمپلیٹ 2 پیرامیٹرز سیٹ کرتا ہے۔

  • IsUsedWebSocket
  • Hook_GetTicker@IsUsedWebSocket

آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

یہ کنٹرول کرنے کے لیے استعمال کیا جاتا ہے کہ اسے فعال کرنا ہے یا غیر فعال کرنا ہے۔websocketانٹرفیس کی تقریب، کنٹرول اور مخصوص مارکیٹ انٹرفیس کے افتتاح کی وضاحت. محدود جگہ کی وجہ سے، صرفexchange.GetTickerانٹرفیس ہک آپریشن کرتا ہے۔ لہذا پیرامیٹرز صرف فعال ہیں۔GetTickerانٹرفیس ویب ساکٹ موڈ کا کنٹرول پیرامیٹر ہے: Hook_GetTicker۔

ٹیمپلیٹ بننے کے بعد، آپ ٹیمپلیٹ میں رسائی کے لیے مخصوص ایکسچینج لکھ سکتے ہیں۔websocketانٹرفیس، کچھ اقتباسات کو سبسکرائب کریں، اور پھر ڈیٹا کو آگے بڑھانے کے لیے تبادلے کا انتظار کریں۔ مخصوص کوڈ کو یہاں دہرایا نہیں جائے گا آپ SeamlessConnWS کوڈ (عوامی طور پر دستیاب) اور API دستاویزات کا حوالہ دے سکتے ہیں۔ آپ کو جو چیز دیکھنے کی ضرورت ہے وہ ٹیمپلیٹ ہے۔initافعال اور عالمی متغیرات_DictConnectCreater_ConnMap

کوڈ:

var _DictConnectCreater = {
    "Huobi" : WSConnecter_Huobi,
    "Binance" : WSConnecter_Binance,
}

var _ConnMap = {}

function init () {
    if (IsUsedWebSocket) {
        var connectCreater = null
        if (exchanges.length != 1) {
            Log("切换为ws接口只针对 exchange 交易所对象(即第一个添加的交易所对象)")
        }
        var isFound = false 
        for (var name in _DictConnectCreater) {
            if (exchange.GetName() == name) {
                connectCreater = _DictConnectCreater[name]
                isFound = true
            }
        }

        if (!isFound) {
            throw "没有找到实现"
        }
        
        if (Hook_GetTicker) {
            var symbol = exchange.GetCurrency()
            _ConnMap.GetTicker = connectCreater("GetTicker", symbol)
            exchange.GetTicker = function () {
                return _C(_ConnMap.GetTicker.Read)
            }
        }
        // ... 
        
    }
}

آپ دیکھ سکتے ہیں کہ یہ ٹیمپلیٹ صرف 2 ایکسچینجز کو لاگو کرتا ہے۔websocketمارکیٹ کے انٹرفیس Binance Spot اور Huobi Spot ہیں۔initفنکشن “آئس بریکر” حکمت عملی کو حوالہ دینے کی اجازت دینا ہے۔SeamlessConnWSٹیمپلیٹ بننے کے بعد، جب اصلی ڈسک چلائی جاتی ہے، تو سب سے پہلے کام کرنا ہوتا ہے۔initفنکشن، جو خود کار طریقے سے کر سکتے ہیںexchange.GetTickerفنکشن کے مواد کو اس سے تبدیل کریں۔websocketہموار کنکشن حاصل کرنے کے لیے انٹرفیس کوڈ کا نفاذwebsocketاقتباسات۔

SeamlessConnWS ٹیمپلیٹ ایڈریس

اسے استعمال کرنے کا طریقہ

یہ بہت آسان ہے! بنڈلSeamlessConnWSٹیمپلیٹ کو اپنی حکمت عملی کی لائبریری میں کاپی کرنے کے بعد، آپ کو صرف “آئس بریکر” حکمت عملی میں اس کا حوالہ دینا ہوگا، جیسا کہ تصویر میں دکھایا گیا ہے:

آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

چیک کریں، محفوظ کریں، اور آپ کا کام ہو گیا۔

ایک “آئس بریکر” حکمت عملی ریئل ٹائم روبوٹ بنائیں اور بائنانس کو بطور ایکسچینج آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔ منتخب کریں۔ کھولیں۔SeamlessConnWSٹیمپلیٹ پر پیرامیٹرز کو کنٹرول کریں۔ آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

اسے چلائیں: آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

پُش کیے گئے ڈیٹا کو دیکھنا آسان بنانے کے لیے، میں نے لائن 157 میں ایک پرنٹ لاگ کوڈ شامل کیا، جو ایکسچینج کے ذریعے دھکیلے گئے ڈیٹا کو آؤٹ پٹ کرے گا۔ آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

روبوٹ لاگ دکھاتا ہے: آپ کو مرحلہ وار سکھاتے ہیں کہ کسی پرانی حکمت عملی کو ویب ساکٹ مارکیٹ انٹرفیس سے بغیر کسی رکاوٹ کے کیسے جوڑنا ہے۔

اس طرح، حکمت عملی کوڈ کی ایک لائن میں ترمیم کرنے کی ضرورت نہیں ہے، اور ویب ساکٹ مارکیٹ کے انٹرفیس اور حکمت عملی کا ہموار انضمام حاصل کیا جاتا ہے۔

یہ مثال صرف استعمال کے لیے ہے۔exchange.GetTickerمارکیٹ انٹرفیس فنکشن کی حکمت عملی کی وضاحت کی گئی ہے جیسے کہ دیگر مارکیٹ انٹرفیسexchange.GetDepthexchange.GetTradesexchange.GetRecordsیہ وہی معمول ہے! نمونے کے سانچے کے لیےSeamlessConnWS، جسے مزید بڑھایا جا سکتا ہے۔

ٹیمپلیٹس میں مخصوص روابط کے لیےwebsocketنفاذ کا استعمال کرتا ہے۔Dialفنکشن (دیکھیں API دستاویزات ڈائل فنکشن)، جسے ضرورت کے مطابق ایڈجسٹ کیا جا سکتا ہے۔ مثال کے طور پر آپ دے سکتے ہیں۔read()فنکشن مخصوص پیرامیٹرز-2، یعنی صرف واپسی ۔websocketکنکشن اپنے بفر میں تازہ ترین ڈیٹا حاصل کرتا ہے۔

پڑھنے کا شکریہ