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এই গুণাবলী,tickerFMZ প্ল্যাটফর্মের 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আপনার নিজের কৌশল লাইব্রেরিতে টেমপ্লেটটি অনুলিপি করার পরে, আপনাকে শুধুমাত্র এটিকে “আইসব্রেকার” কৌশলটিতে উল্লেখ করতে হবে, যেমন চিত্রে দেখানো হয়েছে:

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

এটি পরীক্ষা করুন, এটি সংরক্ষণ করুন এবং এটিই।

“আইসব্রেকার” কৌশলটি রিয়েল-টাইম রোবট তৈরি করুন এবং বিনিময় আপনাকে ধাপে ধাপে শেখান কিভাবে একটি পুরানো কৌশল ওয়েবসকেট মার্কেট ইন্টারফেসে নির্বিঘ্নে সংযুক্ত করতে হয় হিসাবে Binance বেছে নিন। চালুSeamlessConnWSটেমপ্লেটে পরামিতি নিয়ন্ত্রণ করুন। আপনাকে ধাপে ধাপে শেখান কিভাবে একটি পুরানো কৌশল ওয়েবসকেট মার্কেট ইন্টারফেসে নির্বিঘ্নে সংযুক্ত করতে হয়

চালানোর জন্য: আপনাকে ধাপে ধাপে শেখান কিভাবে একটি পুরানো কৌশল ওয়েবসকেট মার্কেট ইন্টারফেসে নির্বিঘ্নে সংযুক্ত করতে হয়

পুশ করা ডেটা দেখতে সহজ করার জন্য, আমি বিশেষভাবে 157 লাইনে একটি লগ প্রিন্টিং কোড যোগ করেছি, যা এক্সচেঞ্জ দ্বারা পুশ করা ডেটা আউটপুট করবে। আপনাকে ধাপে ধাপে শেখান কিভাবে একটি পুরানো কৌশল ওয়েবসকেট মার্কেট ইন্টারফেসে নির্বিঘ্নে সংযুক্ত করতে হয়

রোবট লগে প্রদর্শন: আপনাকে ধাপে ধাপে শেখান কিভাবে একটি পুরানো কৌশল ওয়েবসকেট মার্কেট ইন্টারফেসে নির্বিঘ্নে সংযুক্ত করতে হয়

এইভাবে, কৌশল কোডের একটি একক লাইন পরিবর্তন করার প্রয়োজন নেই এবং ওয়েবসকেট মার্কেট ইন্টারফেস এবং কৌশলটির মধ্যে বিরামহীন সংযোগ অর্জিত হয়।

এই উদাহরণটি শুধুমাত্র ব্যবহারের জন্যexchange.GetTickerবাজার ইন্টারফেস ফাংশন কৌশল একটি ব্যাখ্যা, অন্যান্য বাজার ইন্টারফেস যেমনexchange.GetDepthexchange.GetTradesexchange.GetRecordsএটা একই কৌশল! নমুনা টেমপ্লেট জন্যSeamlessConnWS, আরও বাড়ানো যেতে পারে।

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

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