ওয়ারেন বাফেটের পরামর্শদাতা বেঞ্জামিন গ্রাহাম তার বই
ট্রেডিং মোড খুবই সহজ: - ৫০% তহবিল স্টক ফান্ডে এবং বাকি ৫০% বন্ড ফান্ডে বিনিয়োগ করুন। অর্থাৎ, স্টক এবং বন্ড একে অপরের অর্ধেক। -নির্দিষ্ট সময়সীমা বা বাজারের পরিবর্তনের ভিত্তিতে, স্টক সম্পদ এবং বন্ড সম্পদগুলির অনুপাতকে প্রাথমিক 1: 1 এ ফিরিয়ে আনতে একটি সম্পদ পুনরায় ভারসাম্য বজায় রাখা। কবে কিনতে হবে, কত টাকা কিনতে হবে, কত টাকা বিক্রি করতে হবে, সেসব বিষয় নিয়ে পুরো কৌশলটি সহজেই করা যায়।
এই পদ্ধতিতে, বন্ড তহবিলের অস্থিরতা আসলে খুব ছোট, স্টকগুলির অস্থিরতার তুলনায় অনেক কম, তাই বন্ডগুলি এখানে "রেফারেন্স অ্যাঙ্কর" হিসাবে ব্যবহৃত হয়, অর্থাৎ, স্টকগুলি বন্ড দ্বারা খুব বেশি বা খুব কম বেড়েছে কিনা তা পরিমাপ করতে। যদি স্টক মূল্য বৃদ্ধি পায়, স্টকটির বাজার মূল্য বন্ডের বাজার মূল্যের চেয়ে বেশি হবে। যখন দুটির বাজার মূল্য অনুপাত নির্ধারিত প্রান্তিক সীমা অতিক্রম করে, তখন মোট অবস্থান পুনরায় সামঞ্জস্য করা হবে, স্টক বিক্রি করা হবে, এবং বন্ডগুলি কেনা হবে, যাতে স্টক এবং বন্ডের বাজার মূল্য অনুপাত মূল 1: 1 এ ফিরে আসবে। বিপরীতে, যদি স্টক মূল্য হ্রাস পায়, স্টকটির বাজার মূল্য বন্ডের বাজার মূল্যের চেয়ে কম হবে। যখন দুটির বাজার মূল্য অনুপাত নির্ধারিত প্রান্তিক সীমা অতিক্রম করে, তখন মোট অবস্থান পুনরায় সামঞ্জস্য করা হবে, স্টক কেনা হবে এবং বন্ড বিক্রি করা হবে, যাতে স্টক এবং বন্ডের বাজার মূল্য অনুপাত মূল 1: 1 এ ফিরে আসবে। এইভাবে, আমরা স্টক বৃদ্ধির ফল উপভোগ করতে পারি এবং সঞ্চয় এবং বন্ডের মধ্যে অনুপাতকে গতিশীলভাবে ভারসাম্য বজায় রেখে সম্পদ অস্থিরতা হ্রাস করতে পারি। মূল্য বিনিয়োগের অগ্রদূত হিসাবে, গ্রাহাম আমাদের একটি ভাল ধারণা সরবরাহ করেছেন। যেহেতু এটি একটি সম্পূর্ণ কৌশল, কেন আমরা এটি ডিজিটাল মুদ্রায় ব্যবহার করি না?
ব্লকচেইন সম্পদ বিটিসিতে গতিশীল ভারসাম্য কৌশল
কৌশলগত যুক্তি
এইভাবে, বিটিসি মূল্যবান বা অবমূল্যায়ন হোক না কেন, আমরা সর্বদা অ্যাকাউন্ট ব্যালেন্স এবং বিটিসি এর বাজার মূল্যকে গতিশীলভাবে সমান রাখি। যদি বিটিসি অবমূল্যায়ন হয়, আমরা কিনে থাকি, এবং যদি এটি আবার বেড়ে যায়, আমরা কিছু বিক্রি করি, ঠিক ব্যালেন্সের মতো।
সুতরাং, কিভাবে এটি কোডে বাস্তবায়ন করা যায়? আমরা উদাহরণ হিসাবে 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 ফাংশন এবং প্রয়োজনীয় পরামিতি রয়েছে।
// 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
}
অর্ডার ট্রেডিং লজিক ভালভাবে সংগঠিত, এবং সব মন্তব্য কোডে লেখা হয়েছে. আপনি জুম ইন করতে ইমেজ ক্লিক করতে পারেন.
মূল প্রক্রিয়াটি নিম্নরূপঃ
// 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
}
}
}
}
প্রত্যাহার মডিউলটি সহজ। পদক্ষেপগুলি নিম্নরূপঃ
// 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
}
}
বাহ্যিক পরামিতি
পরবর্তী, আসুন এই সহজ গতিশীল ভারসাম্য কৌশলটি পরীক্ষা করে দেখুন এটি কাজ করে কিনা। নিম্নলিখিতটি কেবলমাত্র রেফারেন্সের জন্য বিটিসির historicalতিহাসিক ডেটাতে একটি ব্যাকটেস্ট।
ব্যাকটেস্টিং পরিবেশ
ব্যাকটেস্টিং পারফরম্যান্স
ব্যাকটেস্টিং কার্ভ
ব্যাকটেস্টের সময়কালে, বিটিসি 8 মাস পর্যন্ত হ্রাস অব্যাহত রেখেছে, এমনকি সর্বাধিক হ্রাসের সাথে 70% এরও বেশি, যা অনেক বিনিয়োগকারীকে ব্লকচেইন সম্পদের প্রতি আস্থা হারাতে বাধ্য করেছে। এই কৌশলটির সমষ্টিগত রিটার্ন 160% পর্যন্ত এবং বার্ষিক রিটার্ন ঝুঁকি অনুপাত 5 ছাড়িয়ে গেছে। এই জাতীয় সহজ বিনিয়োগ কৌশলটির জন্য, বিনিয়োগের রিটার্নের হার বেশিরভাগ লোকের তুলনায় বেশি যা পূর্ণ অবস্থানে রয়েছে।
এফএমজেড কোয়ান্টের অফিসিয়াল ওয়েবসাইটে কৌশলটির উৎস কোড প্রকাশিত হয়েছে:https://www.fmz.com/strategy/110545. কনফিগার করার দরকার নেই, আপনি অনলাইনে সরাসরি ব্যাকটেস্টিং করতে পারেন।
এই নিবন্ধে গতিশীল ভারসাম্য কৌশলটি কেবলমাত্র একটি মূল পরামিতি (থ্রেশহোল্ড) রয়েছে, যা একটি খুব সহজ বিনিয়োগ পদ্ধতি। এটি যা অনুসরণ করে তা অতিরিক্ত রিটার্ন নয়, তবে স্থিতিশীল রিটার্ন। প্রবণতা কৌশলটির বিপরীতে, গতিশীল ভারসাম্য কৌশল প্রবণতার বিরুদ্ধে। তবে গতিশীল ভারসাম্য কৌশলটি ঠিক বিপরীত। যখন বাজার জনপ্রিয় হয়, অবস্থান হ্রাস করা, যখন বাজার অপ্রচলিত হয়, অবস্থান স্কেলিং, যা ম্যাক্রোইকোনমিক নিয়ন্ত্রণের অনুরূপ।
আসলে, গতিশীল ভারসাম্য কৌশল একটি কারুশিল্প যা অনির্দেশ্য মূল্যের ধারণা উত্তরাধিকার সূত্রে পায় এবং একই সাথে দামের ওঠানামা ধারণ করে। গতিশীল ভারসাম্য কৌশলটির মূল বিষয় হ'ল সম্পদ বরাদ্দ অনুপাত, পাশাপাশি ট্রিগার থ্রেশহোল্ড সেট এবং সামঞ্জস্য করা। দৈর্ঘ্যের কারণে, একটি নিবন্ধটি সম্পূর্ণ হতে পারে না। আপনার জানা উচিত যে শব্দগুলির বাইরেও একটি হৃদয় রয়েছে। গতিশীল ভারসাম্য কৌশলটির সবচেয়ে গুরুত্বপূর্ণ অংশটি বিনিয়োগের ধারণা। আপনি এমনকি এই নিবন্ধে পৃথক বিটিসি সম্পদগুলিকে ব্লকচেইন সম্পদ পোর্টফোলিওগুলির একটি ঝুড়িতে প্রতিস্থাপন করতে পারেন।
অবশেষে, আসুন বেঞ্জামিন গ্রাহামের বইয়ের