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

লেখক:ছোট্ট স্বপ্ন, তৈরিঃ 2019-09-26 15:47:53, আপডেটঃ 2023-10-18 19:54:36

img

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

এই প্ল্যাটফর্মটি একটি নতুন প্রযুক্তির সাথে যুক্ত।কৌশল প্রাসাদঅনেক মজার কৌশল আছে, যেগুলো মূলত ডিজিটাল মুদ্রা বিনিময়ের জন্য ব্যবহার করা হত।restপ্রোটোকলের এপিআই ইন্টারফেস, অনেক কৌশল নির্ভর করেrestতবে কিছু কিছু এক্সচেঞ্জের ক্ষেত্রে, এটি প্রায়শই খুব ধীর গতিতে আপডেট হয়।restইন্টারফেস ত্রুটি, যা নীতিটি ব্যবহার করতে অক্ষম করে তোলে।websocketইন্টারফেস সমর্থন করার জন্য নীতি কোডে কিছু পরিবর্তন করা প্রয়োজন, যা সাধারণত তুলনামূলকভাবে ঝামেলা (নীতি পরিবর্তন করা পুনর্লিখনের চেয়ে অনেক বেশি কঠিন) । কিভাবে কৌশল পরিবর্তন না করেও ব্যবহার করা যায়?websocketকিন্তু ইন্টারফেস কি? এখানে, আমরা একটি উদ্ভাবক পরিমাণগত ট্রেডিং প্ল্যাটফর্মের শক্তিশালী নমনীয়তা প্রদর্শন করি, যা আমরা ব্যবহার করতে পারিঃ

  • ১। "টেমপ্লেট ক্লাস লাইব্রেরি" নীতি ব্যবহার করুন।
  • ২, হ্যাঁ।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ইন্টারফেসটি hook অপারেশন করে. সুতরাং প্যারামিটার শুধুমাত্র চালু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

SeamlessConnWS টেমপ্লেট ঠিকানা

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

খুব সহজ!সিউমলেস CONWSটেমপ্লেটটি তার নিজস্ব নীতিমালায় অনুলিপি করার পরে, এটি কেবল "আইস ব্রেকার" নীতিমালার জন্য ব্যবহার করা যেতে পারে, যেমনঃ

img

আপনি যদি এই ছবিটি দেখতে চান তবে এটি আপনার পছন্দসই ছবি।

"আইস ব্রেকার" কৌশল তৈরি করা, রিয়েল-টাইপ রোবট, এক্সচেঞ্জ বেছে নিয়েছে বিনয়img◄ চালুসিউমলেস CONWSটেমপ্লেটের নিয়ন্ত্রণ প্যারামিটারসমূহ ।img

এটি চালু হয়েছেঃimg

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

রোবটের লগ থেকে দেখা যাচ্ছেঃimg

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

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

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

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


সম্পর্কিত

আরো

congcong009মঙ্গো, আপনি কি পাইথন সংস্করণ একটু বাড়িয়ে দিতে পারবেন?

নববধূওভাল জিনিস, আগে শেয়ার করা উচিত ছিল।

ছোট্ট স্বপ্নভাল, পরামর্শের জন্য ধন্যবাদ।