রিসোর্স লোড হচ্ছে... লোডিং...

ডিজিটাল মুদ্রার উপর ভিত্তি করে গতিশীল ভারসাম্য কৌশল

লেখক:এফএমজেড-লিডিয়া, সৃষ্টিঃ ২০২২-১২-০১ ১৬ঃ১৭ঃ২৯, আপডেটঃ ২০২৩-০৯-২০ ৯ঃ৪৩ঃ৩০

img

I. সংক্ষিপ্তসার

ওয়ারেন বাফেটের পরামর্শদাতা বেঞ্জামিন গ্রাহাম তার বই দ্য ইন্টেলিজেন্ট ইনভেস্টর-এ স্টক এবং বন্ডের একটি গতিশীল ভারসাম্য ব্যবসায়ের পদ্ধতি উল্লেখ করেছেন।

img

ট্রেডিং মোড খুবই সহজ: - ৫০% তহবিল স্টক ফান্ডে এবং বাকি ৫০% বন্ড ফান্ডে বিনিয়োগ করুন। অর্থাৎ, স্টক এবং বন্ড একে অপরের অর্ধেক। -নির্দিষ্ট সময়সীমা বা বাজারের পরিবর্তনের ভিত্তিতে, স্টক সম্পদ এবং বন্ড সম্পদগুলির অনুপাতকে প্রাথমিক 1: 1 এ ফিরিয়ে আনতে একটি সম্পদ পুনরায় ভারসাম্য বজায় রাখা। কবে কিনতে হবে, কত টাকা কিনতে হবে, কত টাকা বিক্রি করতে হবে, সেসব বিষয় নিয়ে পুরো কৌশলটি সহজেই করা যায়।

II. গতিশীল ভারসাম্য নীতি

এই পদ্ধতিতে, বন্ড তহবিলের অস্থিরতা আসলে খুব ছোট, স্টকগুলির অস্থিরতার তুলনায় অনেক কম, তাই বন্ডগুলি এখানে "রেফারেন্স অ্যাঙ্কর" হিসাবে ব্যবহৃত হয়, অর্থাৎ, স্টকগুলি বন্ড দ্বারা খুব বেশি বা খুব কম বেড়েছে কিনা তা পরিমাপ করতে। যদি স্টক মূল্য বৃদ্ধি পায়, স্টকটির বাজার মূল্য বন্ডের বাজার মূল্যের চেয়ে বেশি হবে। যখন দুটির বাজার মূল্য অনুপাত নির্ধারিত প্রান্তিক সীমা অতিক্রম করে, তখন মোট অবস্থান পুনরায় সামঞ্জস্য করা হবে, স্টক বিক্রি করা হবে, এবং বন্ডগুলি কেনা হবে, যাতে স্টক এবং বন্ডের বাজার মূল্য অনুপাত মূল 1: 1 এ ফিরে আসবে। বিপরীতে, যদি স্টক মূল্য হ্রাস পায়, স্টকটির বাজার মূল্য বন্ডের বাজার মূল্যের চেয়ে কম হবে। যখন দুটির বাজার মূল্য অনুপাত নির্ধারিত প্রান্তিক সীমা অতিক্রম করে, তখন মোট অবস্থান পুনরায় সামঞ্জস্য করা হবে, স্টক কেনা হবে এবং বন্ড বিক্রি করা হবে, যাতে স্টক এবং বন্ডের বাজার মূল্য অনুপাত মূল 1: 1 এ ফিরে আসবে। এইভাবে, আমরা স্টক বৃদ্ধির ফল উপভোগ করতে পারি এবং সঞ্চয় এবং বন্ডের মধ্যে অনুপাতকে গতিশীলভাবে ভারসাম্য বজায় রেখে সম্পদ অস্থিরতা হ্রাস করতে পারি। মূল্য বিনিয়োগের অগ্রদূত হিসাবে, গ্রাহাম আমাদের একটি ভাল ধারণা সরবরাহ করেছেন। যেহেতু এটি একটি সম্পূর্ণ কৌশল, কেন আমরা এটি ডিজিটাল মুদ্রায় ব্যবহার করি না?

III. কৌশলগত যুক্তি

ব্লকচেইন সম্পদ বিটিসিতে গতিশীল ভারসাম্য কৌশল

কৌশলগত যুক্তি

  • বর্তমান বিটিসি মূল্য অনুযায়ী, অ্যাকাউন্ট ব্যালেন্স ¥5000 এবং 0.1 বিটিসি নগদ রিজার্ভ করে, অর্থাৎ, বিটিসির বাজার মূল্যের তুলনায় নগদটির প্রাথমিক অনুপাত 1:1।
  • যদি বিটিসির দাম ¥6000-এ বৃদ্ধি পায়, অর্থাৎ বিটিসির বাজারমূল্য অ্যাকাউন্ট ব্যালেন্সের চেয়ে বেশি হয় এবং তাদের মধ্যে পার্থক্য নির্ধারিত প্রান্তিক সীমা অতিক্রম করে, তাহলে (6000-5000)/6000/2 মুদ্রা বিক্রি করুন। এর অর্থ হল যে বিটিসি মূল্যবান হয়েছে এবং আমরা টাকা ফেরত বিনিময় করতে পারি।
  • যদি বিটিসির দাম ¥4000 এ কমে যায়, অর্থাৎ, বিটিসির বাজারমূল্য অ্যাকাউন্ট ব্যালেন্সের চেয়ে কম হয়, এবং তাদের মধ্যে পার্থক্য নির্ধারিত প্রান্তিক সীমা অতিক্রম করে, তাহলে (5000-4000)/4000/2 মুদ্রা কিনুন। এর অর্থ হল যে বিটিসির মূল্য হ্রাস পেয়েছে, এবং আমরা বিটিসি ফিরে কিনতে পারি।

এইভাবে, বিটিসি মূল্যবান বা অবমূল্যায়ন হোক না কেন, আমরা সর্বদা অ্যাকাউন্ট ব্যালেন্স এবং বিটিসি এর বাজার মূল্যকে গতিশীলভাবে সমান রাখি। যদি বিটিসি অবমূল্যায়ন হয়, আমরা কিনে থাকি, এবং যদি এটি আবার বেড়ে যায়, আমরা কিছু বিক্রি করি, ঠিক ব্যালেন্সের মতো।

৪. কৌশলগত কাঠামো

সুতরাং, কিভাবে এটি কোডে বাস্তবায়ন করা যায়? আমরা উদাহরণ হিসাবে FMZ কোয়ান্ট ট্রেডিং প্ল্যাটফর্ম নিতে, প্রথম কৌশল কাঠামো তাকান যাকঃ

// function to cancel orders
function CancelPendingOrders() {}

// function to place an order
function onTick() {}

// main function
function main() {
    // filter non-important information
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // polling mode
        if (onTick()) { // execute onTick function
            CancelPendingOrders(); // cancel the outstanding pending orders
            Log(_C(exchange.GetAccount)); // print the current account information
        }
        Sleep(LoopInterval * 1000); // sleep
    }
}

সমগ্র কৌশল কাঠামোটি আসলে খুবই সহজ, যার মধ্যে একটি প্রধান ফাংশন, একটি অনটিক অর্ডার স্থাপন ফাংশন, একটি CancelPendingOrders ফাংশন এবং প্রয়োজনীয় পরামিতি রয়েছে।

V. অর্ডার প্লেসমেন্ট মডিউল

// order-placing function
function onTick() {
    var acc = _C(exchange.GetAccount); // obtain account information
    var ticker = _C(exchange.GetTicker); // obtain Tick data
    var spread = ticker.Sell - ticker.Buy; // obtain bid ask spread of Tick data
    // 0.5 times of the difference between the account balance and the current position value
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / account balance
    LogStatus('ratio:', ratio, _D()); // Print ratio and current time
    if (Math.abs(ratio) < threshold) { // If the absolute value of the ratio is less than the specified threshold
        return false; // return false
    }
    if (ratio > 0) { // if ratio > 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the price of an order
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
        if (buyAmount < MinStock) { // If the order quantity is less than the minimum transaction quantity
            return false; // return false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // Purchase order
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the price of an order
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
        if (sellAmount < MinStock) { // If the order quantity is less than the minimum transaction quantity
            return false; // return false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // Sell and place an order
    }
    return true; // return true
}

অর্ডার ট্রেডিং লজিক ভালভাবে সংগঠিত, এবং সব মন্তব্য কোডে লেখা হয়েছে. আপনি জুম ইন করতে ইমেজ ক্লিক করতে পারেন.

মূল প্রক্রিয়াটি নিম্নরূপঃ

  • অ্যাকাউন্টের তথ্য সংগ্রহ করো।
  • টিকের তথ্য সংগ্রহ করো।
  • টিক ডেটার বিড-অ্যান্ড-প্রোস স্প্রেড গণনা করুন।
  • অ্যাকাউন্টের ব্যালেন্স এবং বিটিসির বাজারমূল্যের মধ্যে পার্থক্য গণনা করুন।
  • ক্রয় এবং বিক্রয় শর্ত, অর্ডার মূল্য এবং অর্ডার পরিমাণ গণনা করুন।
  • অর্ডার দিন এবং সত্য ফিরে আসুন।

VI. প্রত্যাহার মডিউল

// Withdrawal function
function CancelPendingOrders() {
    Sleep(1000); // Sleep for 1 second
    var ret = false;
    while (true) {
        var orders = null;
        // Obtain the unsettled order array continuously. If an exception is returned, continue to obtain
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // Sleep for 1 second
        }
        if (orders.length == 0) { // If the order array is empty
            return ret; // Return to order withdrawal status
        }
        for (var j = 0; j < orders.length; j++) { // Iterate through the array of unfilled orders
            exchange.CancelOrder(orders[j].Id); // Cancel unfilled orders in sequence
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // Sleep for 1 second
            }
        }
    }
}

প্রত্যাহার মডিউলটি সহজ। পদক্ষেপগুলি নিম্নরূপঃ

  • অর্ডার বাতিল করার আগে ১ সেকেন্ড অপেক্ষা করুন।
  • অবিচ্ছিন্নভাবে unsettled অর্ডার অ্যারে পান. যদি একটি ব্যতিক্রম ফিরে আসে, পেতে চালিয়ে যান.
  • যদি অনির্ধারিত অর্ডার অ্যারে খালি থাকে, তাহলে অবিলম্বে প্রত্যাহারের অবস্থা ফেরত দেওয়া হবে।
  • যদি একটি অনির্ধারিত অর্ডার থাকে, পুরো অ্যারেটি অতিক্রম করা হয় এবং অর্ডারটি অর্ডার নম্বর অনুসারে বাতিল করা হয়।

সপ্তম. সম্পূর্ণ কৌশল উৎস কোড

// Backtest environment
/*backtest
start: 2018-01-01 00:00:00
end: 2018-08-01 11:00:00
period: 1m
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/



// Order withdrawal function
function CancelPendingOrders() {
    Sleep(1000); // Sleep for 1 second
    var ret = false;
    while (true) {
        var orders = null;
        // Obtain the unsettled order array continuously. If an exception is returned, continue to obtain
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // Sleep for 1 second
        }
        if (orders.length == 0) { // If the order array is empty
            return ret; // Return to order withdrawal status
        }
        for (var j = 0; j < orders.length; j++) { // Iterate through the array of unfilled orders
            exchange.CancelOrder(orders[j].Id); // Cancel unfilled orders in sequence
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // Sleep for 1 second
            }
        }
    }
}

// Order function
function onTick() {
    var acc = _C(exchange.GetAccount); // obtain account information
    var ticker = _C(exchange.GetTicker); // obtain Tick data
    var spread = ticker.Sell - ticker.Buy; // obtain bid ask spread of Tick data
    // 0.5 times of the difference between the account balance and the current position value
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / account balance
    LogStatus('ratio:', ratio, _D()); // Print ratio and current time
    if (Math.abs(ratio) < threshold) { // If the absolute value of ratio is less than the specified threshold
        return false; // return false
    }
    if (ratio > 0) { // if ratio > 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the order price
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
        if (buyAmount < MinStock) { // If the order quantity is less than the minimum trading quantity
            return false; // return false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // buy order
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the order price
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
        if (sellAmount < MinStock) { // If the order quantity is less than the minimum trading quantity
            return false; // return false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // sell order
    }
    return true; // return true
}

// main function
function main() {
    // Filter non-important information
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // Polling mode
        if (onTick()) { // Execute onTick function
            CancelPendingOrders(); // Cancel pending orders
            Log(_C(exchange.GetAccount)); // Print current account information
        }
        Sleep(LoopInterval * 1000); // sleep
    }
}

বাহ্যিক পরামিতি

img

VIII. কৌশল ব্যাকটেস্টিং

পরবর্তী, আসুন এই সহজ গতিশীল ভারসাম্য কৌশলটি পরীক্ষা করে দেখুন এটি কাজ করে কিনা। নিম্নলিখিতটি কেবলমাত্র রেফারেন্সের জন্য বিটিসির historicalতিহাসিক ডেটাতে একটি ব্যাকটেস্ট।

ব্যাকটেস্টিং পরিবেশimg

ব্যাকটেস্টিং পারফরম্যান্সimg

ব্যাকটেস্টিং কার্ভimg

ব্যাকটেস্টের সময়কালে, বিটিসি 8 মাস পর্যন্ত হ্রাস অব্যাহত রেখেছে, এমনকি সর্বাধিক হ্রাসের সাথে 70% এরও বেশি, যা অনেক বিনিয়োগকারীকে ব্লকচেইন সম্পদের প্রতি আস্থা হারাতে বাধ্য করেছে। এই কৌশলটির সমষ্টিগত রিটার্ন 160% পর্যন্ত এবং বার্ষিক রিটার্ন ঝুঁকি অনুপাত 5 ছাড়িয়ে গেছে। এই জাতীয় সহজ বিনিয়োগ কৌশলটির জন্য, বিনিয়োগের রিটার্নের হার বেশিরভাগ লোকের তুলনায় বেশি যা পূর্ণ অবস্থানে রয়েছে।

নবম. কৌশল সোর্স কোড পান

এফএমজেড কোয়ান্টের অফিসিয়াল ওয়েবসাইটে কৌশলটির উৎস কোড প্রকাশিত হয়েছে:https://www.fmz.com/strategy/110545. কনফিগার করার দরকার নেই, আপনি অনলাইনে সরাসরি ব্যাকটেস্টিং করতে পারেন।

X. সংক্ষিপ্ত বিবরণ

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

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

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


সম্পর্কিত

আরো