আপনি কিভাবে একটি পুরানো কৌশল ডকিং ওয়েবসকেট উদ্ধৃতি ইন্টারফেস করা শিখতে

লেখক:ভাল, তৈরিঃ 2019-10-08 14:56:58, আপডেটঃ 2023-11-06 19:41:28

img

স্কয়ার পেজে অনেক আকর্ষণীয় কৌশল রয়েছে (https://www.fmz.com/squareএফএমজেড কোয়ান্ট প্ল্যাটফর্মের। তখন, বেশিরভাগ ক্রিপ্টোকারেন্সি এক্সচেঞ্জের এপিআই ইন্টারফেসrestপ্রোটোকল, অনেক কৌশলrestএ কারণে, কখনও কখনও বাজার কোট আপডেট ধীর হয়। উপরন্তু, কিছু ক্ষেত্রে যেখানে বিনিময় s হয়েছেrestইন্টারফেসটি অদূর ভবিষ্যতে ব্যর্থ হয়েছে, যার ফলে একটি কৌশল সঠিকভাবে পারফর্ম করতে পারে না।

যতক্ষণ কৌশলটি সংশোধন করা হয়, ওয়েবসকেট ইন্টারফেসের জন্য সমর্থন যোগ করার জন্য কৌশল কোডে কিছু পরিবর্তন প্রয়োজন, যা সাধারণত বেশ ঝামেলাজনক (কৌশল পরিবর্তন করার অসুবিধা এটি পুনরায় লেখার চেয়ে অনেক বেশি) ।

কিভাবে আমরা কৌশল কোড পরিবর্তন না, কিন্তু ওয়েবসকেট বাজার কোট ইন্টারফেস ব্যবহার করতে পারেন?

এখানে FMZ Quant প্ল্যাটফর্মের সম্পূর্ণ নমনীয়তা, আমরা ব্যবহার করতে পারিঃ

  • টেমপ্লেট ক্লাস লাইব্রেরি কৌশলটি ব্যবহার করুন।

  • হুক অপারেশন সম্পাদন করা বিনিময় বাজারের কোট পাওয়ার ফাংশন যেমনঃexchange.GetTicker.

সুতরাং, কৌশল কোড পরিবর্তন ছাড়া, কৌশল ব্যবহার করা যাকwebsocketমার্কেট ইন্টারফেস।

কোড লেখার ভাষাটি জাভাস্ক্রিপ্ট প্রোগ্রামিং ভাষা ব্যবহার করে।

বিশ্লেষণ কৌশল

উদাহরণস্বরূপ, যখন আমরা একটি ক্লাসিক কৌশল পরিবর্তন করতে হবে Icebreaker

কৌশলগত ঠিকানা:https://www.fmz.com/strategy/9929

আসুন আমরা কৌশল কোডটি একবার দেখে নিই এবং দেখি যে কৌশলটিtickএটি মূলত বাজারের মূল্যের বৈশিষ্ট্য ব্যবহার করেBuy, Sell, এবংLastমধ্যেtickerতথ্য.tickerতথ্য FMZ Quant প্ল্যাটফর্মের API ফাংশন দ্বারা প্রাপ্ত হয়ঃexchange.GetTicker. লক্ষ্য এখন পরিষ্কার, আমরা প্রতিস্থাপন করতে পারেনexchange.GetTickerসঙ্গে ফাংশনHookঅপারেশন (যেমন, অন্য সংস্করণ দিয়ে এটি প্রতিস্থাপন) ।

তবে আমরা আইসব্রেকার কৌশল কোডে এটি পুনরায় লিখতে পারি না, এটি কৌশল যুক্তি প্রভাবিত করবে, আমরা ওয়েবসকেটের সাথে নির্বিঘ্নে ডকিং চাই!

তাই আমাদের পরবর্তী নায়িকাকে ডিবিউ করতে হবে।

টেমপ্লেট ক্লাস লাইব্রেরি ফাংশন এবং init ফাংশন একসাথে কাজ করে

আমরা একটি টেমপ্লেট ক্লাস লাইব্রেরি তৈরি নামঃ SeamlessConnWS

img

তারপর 2 পরামিতি সেট করুনSeamlessConnWS template.

  • IsUsedWebSocket ব্যবহার করা হচ্ছে
  • Hook_GetTicker@IsUsedWebSocket

img

এই দুটি ব্যবহার করা হয় কিনা তা নিয়ন্ত্রণ করতে ব্যবহার করা হয়websocketইন্টারফেস ফাংশন, এবং কন্ট্রোল একটি নির্দিষ্ট বাজার কোট ইন্টারফেস খুলতে নির্দিষ্ট করে। এই নিবন্ধের সীমাবদ্ধতা কারণে, আমরা শুধুমাত্র preformhookঅপারেশনexchange.GetTickerইন্টারফেস. অতএব, আমরা প্যারামিটার সক্ষম করতে হবে ((Hook_GetTicker) এরGetTickerইন্টারফেসwebsocket mode.

একবার টেমপ্লেট তৈরি হয়ে গেলে, আমরা এক্সচেঞ্জের নির্দিষ্ট অ্যাক্সেস লিখতে পারিwebsocketটেমপ্লেটে ইন্টারফেস, নির্দিষ্ট উদ্ধৃতি সাবস্ক্রাইব, এবং তারপর এক্সচেঞ্জের ফাংশন কোডের জন্য অপেক্ষা করুন ডেটা চাপতে. নির্দিষ্ট কোড এখানে বর্ণনা করা হয় না, আপনি উল্লেখ করতে পারেনSeamlessConnWSকোড (ইতিমধ্যে ওপেন সোর্স) এবং FMZ Quant অফিসিয়াল এপিআই ডকুমেন্টেশন।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("Switching to the ws interface only for the "exchange" exchange object (ie, the first added exchange object)")
        }
        var isFound = false 
        for (var name in _DictConnectCreater) {
            if (exchange.GetName() == name) {
                connectCreater = _DictConnectCreater[name]
                isFound = true
            }
        }

        if (!isFound) {
            throw "Did not find an implementation"
        }
        
        if (Hook_GetTicker) {
            var symbol = exchange.GetCurrency()
            _ConnMap.GetTicker = connectCreater("GetTicker", symbol)
            exchange.GetTicker = function () {
                return _C(_ConnMap.GetTicker.Read)
            }
        }
        // ... 
        
    }
}

এটা দেখা যায় যে এই টেমপ্লেটটি শুধুমাত্রwebsocketদুইটি এক্সচেঞ্জের বাজার ইন্টারফেস, যা Binance এবং Huobi।init আইসব্রেকার কৌশল কল যখনSeamlessConnWSটেমপ্লেট,initএই ফাংশনটি প্রথম বাজারের চলমান অগ্রগতির সময় কার্যকর হবে।

আমরা বিষয়বস্তু প্রতিস্থাপন করতে পারেনexchange.GetTickerকোড সঙ্গে ফাংশন ব্যবহারwebsocketইন্টারফেস, এইভাবে ওয়েবসকেট বাজারে বিরামবিহীন ডকিং অর্জন।

SeamlessConnWSটেমপ্লেট ঠিকানাঃhttps://www.fmz.com/strategy/167755

কিভাবে এটি ব্যবহার করবেন

কপি করার পরSeamlessConnWSআপনার কৌশল লাইব্রেরিতে টেমপ্লেট, আপনি শুধু ব্যবহার করতে পারেন Icebreaker কৌশল এটি রেফারেন্স করার জন্য, চিত্র দেখানো হয়েছেঃ

img

টেমপ্লেট চেক করতে ক্লিক করুন, এবং সংরক্ষণ বোতাম নিশ্চিত করুন.

আইসব্রেকার কৌশল রিয়েল টাইম রোবট তৈরি করুন, এক্সচেঞ্জ ট্রেডিং জোড়া বেছে নেয়।

img

উপর নিয়ন্ত্রণ পরামিতি খুলুনSeamlessConnWS template.

img

চালাও:

img

প্রিন্ট করা ডাটা সহজে দেখতে, লাইন ১৫৭-এ, আমরা বিশেষভাবে একটি প্রিন্ট লগ কোড যুক্ত করেছি, এটি এক্সচেঞ্জ দ্বারা প্রিন্ট করা ডাটা আউটপুট করবে।

img

রোবট লগ প্রদর্শনঃ

img

এই ভাবে, আমরা কৌশল কোড কোন লাইন পরিবর্তন করতে হবে না, এবংwebsocketমার্কেট ইন্টারফেস।

এই উদাহরণটি শুধুমাত্র ব্যবহারের কৌশলটির জন্যexchange.GetTickerমার্কেট ইন্টারফেস ফাংশন, অন্যান্য মার্কেট ইন্টারফেস যেমনঃexchange.GetDepth, exchange.GetTradesএবংexchange.GetRecordsস্ট্যান্ডার্ড টেমপ্লেটের জন্যSeamlessConnWS, আপনি এটি আরও প্রসারিত করার চেষ্টা করতে পারেন।

বিশেষ লিঙ্ক বাস্তবায়নের জন্যwebsocketটেমপ্লেটে,Dialফাংশন (ডায়াল ফাংশন সম্পর্কে এপিআই ডকুমেন্টেশন দেখুন), যা প্রয়োজন অনুযায়ী সামঞ্জস্য করা যেতে পারে। উদাহরণস্বরূপ, আপনি প্যারামিটার -2 নির্দিষ্ট করতে পারেনread()ফাংশন, যা শুধুমাত্র বাফারে সর্বশেষ তথ্য ফেরত যেwebsocketসংযোগ গ্রহণ করে।

পড়ার জন্য ধন্যবাদ।


সম্পর্কিত

আরো