ব্লকচেইন সম্পদের পরিমাণগত লেনদেনে ক্রস-ভারেন্সি হেজিং কৌশল

লেখক:লিডিয়া, সৃষ্টিঃ ২০২২-১২-২৭ 10:11:48, আপডেটঃ ২০২৩-০৯-২০ 10:02:24

img

ব্লকচেইন সম্পদের পরিমাণগত লেনদেনে ক্রস-ভারেন্সি হেজিং কৌশল

হেজিং কৌশলগুলিতে, বিভিন্ন ধরণের হেজিং রয়েছেঃ ক্রস-মার্কেট হেজিং, ক্রস-পিরিয়ড হেজিং ইত্যাদি। আজ আমরা ক্রস-মুদ্রা হেজিং সম্পর্কে কথা বলব, যা ব্লকচেইন সম্পদের পরিমাণগত ব্যবসায়ের ক্রস-মুদ্রা হেজিং কৌশল। সাধারণভাবে, একটি হেজিং লেনদেনের বিষয় একই, যখন ক্রস-মুদ্রা হেজিংয়ে বিভিন্ন বিষয় কেনা বেচা জড়িত থাকে। একই জাতের হেজিংয়ের সময়, আমরা একই জাতের ক্রয় এবং বিক্রয় মূল্য হিসাবে মূল্য পার্থক্য ব্যবহার করতে পারি। একই জাতের সহজ ক্রস-মার্কেট হেজিংয়ের জন্য, দামের পার্থক্য একটি নির্দিষ্ট পরিসরের মধ্যে বারবার ওঠানামা করে। ক্রস-মুদ্রা হেজিংয়ের জন্য দামের পার্থক্য কেনা বিক্রয় মূল্য হিসাবে ব্যবহার করা যায় না, কারণ বিভিন্ন মুদ্রার দামের পার্থক্য পর্যবেক্ষণ করা খুব স্বজ্ঞাত নয়, এবং দামের অনুপাত সাধারণত কেনা বিক্রয় মূল্য হিসাবে ব্যবহৃত হয়।

উদাহরণস্বরূপঃ ট্রেডিং জোড়া A: LTC_USDT ট্রেডিং জোড়া B: ETH_USDT

খোলার পজিশনগুলি মূল্য অনুপাতের মান অনুযায়ী বিতরণ করুনPrice of Trading pair A/Price of Trading pair B. অনুপাত যত বড়, আমরা তত বেশি এ বিক্রি করব এবং বি কিনব। যদি অনুপাত হ্রাস পায়, এ কিনুন এবং বি বিক্রি করুন। প্রতিটি হেজিংয়ের সমতুল্য ইউএসডিটি পরিমাণ আসলে এলটিসি / ইটিএইচের আপেক্ষিক দামের উপর ভিত্তি করে গ্রিড ট্রেডিংয়ের কৌশল। কৌশল ধারণাটি জটিল নয়। তবে, এটি লক্ষ করা উচিত যে এই ধরণের হেজিং পোর্টফোলিও আসলে এলটিসির দাম নির্ধারণের জন্য অ্যাঙ্কর মূল্য মুদ্রা হিসাবে ইটিএইচ ব্যবহার করে। অ্যাঙ্কর মূল্য একতরফা প্রবণতা থেকে বেরিয়ে যাওয়ার সম্ভাবনা রয়েছে। যদিও বেশিরভাগ সময় এটি একটি অস্থির প্রবণতা হতে পারে, তবে এই ঝুঁকিটি বিবেচনা এবং নোট করা দরকার।

FMZ Quant Trading প্ল্যাটফর্ম ব্যবহার করে একটি কৌশল প্রোটোটাইপ লেখা সহজঃ যখন কৌশল কোড চালানো হয়, এটি উল্লেখ করতে হবেimgএবংimgপ্লট লাইব্রেরি:https://www.fmz.com/strategy/27293ডিজিটাল মুদ্রা স্পট ট্রেডিং লাইব্রেরি: প্রতিটি ব্যবহারকারী যখন একটি নতুন কৌশল তৈরি করে তখন এটি টেমপ্লেট বারের সাথে আসে।

/*backtest
start: 2019-05-01 00:00:00
end: 2019-11-04 00:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"LTC_USDT","balance":100000,"stocks":30},{"eid":"OKEX","currency":"ETH_USDT","balance":100000,"stocks":30}]
*/

/*
A exchanges[0] : EOS_USDT   
B exchanges[1] : ETH_USDT
*/

var Interval = 500

// parameters
var numPoint = 100        // Number of nodes
var distance = 0.08       // Proportional distance
var amountPoint = 100     // Node amount in USDT
var arrHedgeList = []

function main () {
    var isFirst = true
    while(true) {
        var rA = exchanges[0].Go("GetTicker")
        var rB = exchanges[1].Go("GetTicker")

        var tickerA = rA.wait()
        var tickerB = rB.wait()

        if (tickerA && tickerB) {
            var priceRatioSell = tickerB.Buy / tickerA.Sell     // B sell , A buy
            var priceRatioBuy = tickerB.Sell / tickerA.Buy      // B buy , A sell
            
            if (isFirst) {
                for (var i = 0 ; i < numPoint ; i++) {
                    var point = {
                        priceRatio : priceRatioSell + (i + 1) * distance,
                        coverRatio : priceRatioSell + i * distance,
                        amount : (0.08 * i + 1) * amountPoint,
                        isHold : false,
                    }
                    arrHedgeList.push(point)
                }
                isFirst = false
            }

            for (var j = 0 ; j < arrHedgeList.length; j++) {
                if (priceRatioSell > arrHedgeList[j].priceRatio && arrHedgeList[j].isHold == false) {
                    // B sell , A buy
                    Log("Hedging, price ratio", priceRatioSell, "#FF0000")
                    $.Buy(exchanges[0], arrHedgeList[j].amount / tickerA.Sell)
                    $.Sell(exchanges[1], arrHedgeList[j].amount / tickerB.Buy)
                    arrHedgeList[j].isHold = true
                    LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
                    $.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
                    break 
                }

                if (priceRatioBuy < arrHedgeList[j].coverRatio && arrHedgeList[j].isHold == true) {    
                    // B buy , A sell
                    Log("hedge, price ratio", priceRatioBuy, "#32CD32")
                    $.Sell(exchanges[0], arrHedgeList[j].amount / tickerA.Buy)
                    $.Buy(exchanges[1], arrHedgeList[j].amount / tickerB.Sell)
                    arrHedgeList[j].isHold = false
                    LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
                    $.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
                    break
                }
            }
        }
        Sleep(Interval)
    }
}

ব্যাকটেস্টিং এর মাধ্যমে, আমরা প্রাথমিকভাবে কৌশলগত ধারণা যাচাই করতে পারি

ডিফল্ট ব্যাকটেস্টিং সেটিংস ব্যবহার করুনঃ

img img

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

if (isFirst) {
    for (var i = 0 ; i < numPoint ; i++) {
        var point = {
            priceRatio : priceRatioSell + (i + 1) * distance,
            coverRatio : priceRatioSell + i * distance,
            amount : (0.08 * i + 1) * amountPoint,          // 8% of amountPoint per increment
            isHold : false,
        }
        arrHedgeList.push(point)
    }
    isFirst = false
}

এইভাবে, তুলনামূলকভাবে ভারী পজিশনগুলি একটি উচ্চ মূল্য অনুপাতের পজিশনে কেন্দ্রীভূত করা যেতে পারে, যাতে দামের অনুপাত কম হলে বড় পজিশনগুলি দখল করা হয় না। অবশ্যই, এই ধরনের ক্রস-মুদ্রা হেজিং খুব ঝুঁকিপূর্ণ। যদি একটি মুদ্রার দাম অন্য মুদ্রার দামের তুলনায় বৃদ্ধি অব্যাহত থাকে, তবে ভাসমান ক্ষতি হবে। অতএব, ক্রস-মুদ্রা হেজিংয়ের জন্য দুটি মুদ্রার মধ্যে একটি শক্তিশালী সম্পর্ক প্রয়োজন।

এই কৌশলটি কেবল একটি প্রাথমিক ডেমো, যা আরও উন্নত এবং অপ্টিমাইজ করা যেতে পারে।


সম্পর্কিত

আরো