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

مصنف:چھوٹا سا خواب, تخلیق: 2019-09-26 15:47:53, تازہ کاری: 2023-10-18 19:54:36

img

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

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

  • 1، "ٹیمپلیٹ لائبریری" کی پالیسی کا استعمال کریں۔
  • 2، ہاںexchange.GetTickerہک آپریشن کی طرف سے حاصل کردہ فنکشن کا انتظار کریں۔

اس طرح، اس کی پالیسی کو تبدیل کرنے کے بغیر ایک لائن کوڈ کو تبدیل کرنے کے لۓ، اس کی پالیسی کو تبدیل کرنے کے لۓ.websocketاس کے بعد ، ہم نے اس کے بارے میں مزید معلومات حاصل کرنے کے لئے اس ویب سائٹ کا استعمال کیا۔ کوڈنگ زبان کا استعمالJavaScriptزبانوں کا استعمال۔

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

مثال کے طور پر، ہم ایک کلاسک پرانی حکمت عملی، "آئس بریکر" کو تبدیل کرنا چاہتے ہیں.

حکمت عملی کا پتہ

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

"ٹیمپلیٹ لائبریری" اورinitافعال کا تعاون

ہم نے ایک "ٹیمپلیٹ لائبریری" بنائی جس کا نام ہے:ہموار CONWS، خالی ابتدائی کوڈ۔

img

اور پھرہموار CONWSٹیمپلیٹ میں 2 پیرامیٹرز مقرر کریں

  • IsUsedWebSocket
  • Hook_GetTicker@IsUsedWebSocket

img

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

ٹیمپلیٹ بن گیا ہے، آپ اس میں مخصوص تبادلے کی رسائی لکھ سکتے ہیںwebsocketانٹرفیس ، کچھ صنعتوں کا سبسکرائب کریں ، اور پھر تبادلے کے اعداد و شمار کو آگے بڑھانے کے لئے انتظار کریں۔ مخصوص کوڈ مزید بیان نہیں کیا گیا ہے ، آپ کو دیکھ سکتے ہیں ہموار کنون ڈبلیو ایس کوڈ (پبلک) ، اے پی آئی دستاویزات.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)
            }
        }
        // ... 
        
    }
}

آپ دیکھ سکتے ہیں کہ اس ٹیمپلیٹ میں صرف دو ایکسچینجز کو لاگو کیا گیا ہے۔websocketاس کے علاوہ ، ٹرانزیکشن انٹرفیس ، جو کہ بِیآن کیش اور ٹوکن کیش ہیں۔initفنکشن کا مقصد یہ ہے کہ "آئس بریکر" کی حکمت عملی کا حوالہ دیا جائے۔ہموار CONWSٹیمپلیٹ کے بعد، یہ سب سے پہلے چلتا ہے جب یہ ڈسک چلتا ہے.initفنکشن، خود کار طریقے سے کلک کریںexchange.GetTickerفنکشن کے مواد کو استعمال میں تبدیل کریںwebsocketانٹرفیس کے کوڈ کو لاگو کرنا تاکہ ہموار جوڑتا ہوwebsocketآپ کا کیا خیال ہے؟

سیملیس کان ڈبلیو ایس ٹیمپلیٹ ایڈریس

کس طرح استعمال کیا جائے

بہت آسان!ہموار CONWSایک بار جب ٹیمپلیٹ کو اس کی اپنی پالیسی ریکوری میں کاپی کیا جاتا ہے تو ، یہ صرف "آئس بریکر" کی پالیسی کے حوالہ کے لئے استعمال کیا جاسکتا ہے ، جیسے:

img

آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے۔

"آئس بریکر" کی حکمت عملی، اصلی روبوٹ، تبادلے کا انتخابimg◄ کھولیںہموار CONWSٹیمپلیٹ پر کنٹرول پیرامیٹرز۔img

یہ کام کرتا ہے:img

اس کے علاوہ، میں نے اس کے ساتھ ساتھ ایک پرنٹ لاگ ان کوڈ شامل کیا ہے، جس میں 157 لائنوں پر خاص طور پر تبادلہ کے اعداد و شمار کو ظاہر کرنے کے لئے آسان ہے، جس میں تبادلہ کے اعداد و شمار کو ظاہر ہوتا ہے.img

روبوٹ کی لاگ ان میں دکھایا گیا ہے:img

اس طرح ویب ساکٹ مارکیٹ انٹرفیس اور حکمت عملی کے ہموار جوڑے کا استعمال کرتے ہوئے پالیسی کوڈ کی ایک لائن کو تبدیل کرنے کے بغیر ممکن ہے.

یہ صرف استعمال کے لئے ہےexchange.GetTickerاسٹریٹجیکل انٹرفیس فنکشن کی وضاحت ، دوسرے انٹرفیس جیسےexchange.GetDepthexchange.GetTradesexchange.GetRecordsاور یہ ایک ہی طریقہ ہے!ہموار CONWSاس کے علاوہ ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے۔

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

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


متعلقہ

مزید

congcong009مونگو، کیا آپ مجھے ایک اور پائیتھون ورژن دے سکتے ہیں؟

شادی شدہ خواتین بھییہ ایک اچھی چیز ہے ، اسے پہلے ہی شیئر کرنا چاہئے تھا۔

چھوٹا سا خواببہت اچھا شکریہ مشورہ کے لیے۔