avatar of 发明者量化-小小梦 发明者量化-小小梦
پر توجہ دیں نجی پیغام
4
پر توجہ دیں
1271
پیروکار

ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

میں تخلیق کیا: 2020-03-03 10:17:43, تازہ کاری: 2023-10-09 22:49:27
comments   3
hits   3707

ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

I. خلاصہ

وارن بفیٹ کے سرپرست بینجمن گراہم نے ایک بار اپنی کتاب “دی انٹیلیجنٹ انویسٹر” میں اسٹاک اور بانڈز کے درمیان متحرک توازن کے تجارتی ماڈل کا ذکر کیا۔ ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی یہ تجارتی ماڈل بہت آسان ہے:

  • اپنی رقم کا 50% اسٹاک فنڈز میں اور بقیہ 50% بانڈ فنڈز میں لگائیں۔ یعنی، اسٹاک اور بانڈز ہر ایک کا آدھا حصہ ہے۔
  • اسٹاک اثاثوں کے بانڈ اثاثوں کے تناسب کو ابتدائی 1:1 پر بحال کرنے کے لیے مقررہ وقفوں پر یا مارکیٹ میں ہونے والی تبدیلیوں کی بنیاد پر اثاثوں کو دوبارہ متوازن کرنا۔ یہ حکمت عملی کی پوری منطق ہے، بشمول کب خریدنا اور بیچنا ہے، اور کتنا خریدنا اور بیچنا ہے۔ کافی سادہ!

2. متحرک توازن کا اصول

اس طریقہ کار میں، بانڈ فنڈز کی اتار چڑھاؤ دراصل بہت کم ہے، اسٹاک کی اتار چڑھاؤ سے بہت کم، اس لیے بانڈز کو یہاں “ریفرنس اینکر” کے طور پر استعمال کیا جاتا ہے، یعنی بانڈز کا استعمال اس بات کی پیمائش کرنے کے لیے کہ آیا اسٹاک میں بہت زیادہ اضافہ ہوا ہے۔ اب بھی بہت کم ہے.

اگر اسٹاک کی قیمت بڑھ جاتی ہے، تو اسٹاک کی مارکیٹ ویلیو بانڈ کی مارکیٹ ویلیو سے زیادہ ہوگی جب دونوں کی مارکیٹ ویلیو کا تناسب مقررہ حد سے بڑھ جائے گا، تو کل پوزیشن کو ایڈجسٹ کیا جائے گا، اسٹاک فروخت کیا جائے گا۔ اسٹاک بانڈ مارکیٹ ویلیو ریشو کو اصل 1:1 پر بحال کرنے کے لیے بانڈ خریدا جائے گا۔

اس کے برعکس، اگر سٹاک کی قیمت گرتی ہے، تو سٹاک کی مارکیٹ ویلیو بانڈ کی مارکیٹ ویلیو سے کم ہو جائے گی جب دونوں کی مارکیٹ ویلیو کا تناسب مقررہ حد سے زیادہ ہو جائے گا، تو کل پوزیشن کو سٹاک خریدنے کے لیے ایڈجسٹ کیا جائے گا۔ اسٹاک بانڈ مارکیٹ ویلیو ریشو کو اصل 1:1 پر بحال کرنے کے لیے بانڈز فروخت کریں۔ ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

اس طرح، اسٹاک اور بانڈز کے درمیان تناسب کو متحرک طور پر متوازن کرکے، اسٹاک کی ترقی کے ثمرات سے لطف اندوز ہونا اور اثاثوں کے اتار چڑھاؤ کو کم کرنا ممکن ہے۔ قدر کی سرمایہ کاری کے علمبردار کے طور پر، گراہم ہمیں ایک اچھا خیال فراہم کرتا ہے۔ چونکہ یہ ایک مکمل حکمت عملی ہے، اس لیے ہم اسے کرپٹو کرنسیوں پر لاگو کیوں نہیں کرتے؟

3. حکمت عملی کی منطق

Blockchain اثاثہ BTC میں متحرک توازن کی حکمت عملی

حکمت عملی کی منطق

  • BTC کی موجودہ قیمت کے مطابق، اکاؤنٹ کا بیلنس £5000 نقد اور 0.1 BTC ہو گا، یعنی BTC کی مارکیٹ ویلیو میں نقد کا ابتدائی تناسب 1:1 ہے۔
  • اگر BTC کی قیمت £6000 تک بڑھ جاتی ہے، یعنی BTC کی مارکیٹ ویلیو اکاؤنٹ بیلنس سے زیادہ ہے، اور ان کے درمیان فرق مقررہ حد سے زیادہ ہے، تو (6000-5000)/6000/2 سکے فروخت کیے جائیں گے۔ اس کا مطلب یہ ہے کہ بی ٹی سی نے تعریف کی ہے اور پیسہ واپس تبدیل کیا جا سکتا ہے.
  • اگر BTC کی قیمت £4000 تک گر جاتی ہے، یعنی BTC کی مارکیٹ ویلیو اکاؤنٹ بیلنس سے کم ہے، اور ان کے درمیان فرق مقررہ حد سے زیادہ ہے، تو (5000-4000)/4000/2 سکے خریدیں۔ اس کا مطلب ہے کہ بی ٹی سی کی قدر کم ہو گئی ہے، اس لیے بی ٹی سی واپس خریدیں۔

اس طرح، اس بات سے کوئی فرق نہیں پڑتا ہے کہ BTC تعریف کرتا ہے یا گھٹتا ہے، اکاؤنٹ بیلنس اور BTC کی مارکیٹ ویلیو ہمیشہ برابر رکھی جاتی ہے۔ اگر بی ٹی سی کی قدر کم ہوتی ہے تو کچھ خریدیں، اور جب یہ واپس آجائے تو کچھ بیچیں، بالکل بیلنس کی طرح۔

4. اسٹریٹجک فریم ورک

تو، کوڈ کے ساتھ اسے کیسے نافذ کیا جائے؟ آئیے ایک مثال کے طور پر موجد کوانٹیٹیو ٹریڈنگ پلیٹ فارم لیتے ہیں، آئیے حکمت عملی کے فریم ورک کو دیکھیں:

// 撤单函数
function CancelPendingOrders() {}

// 下单函数
function onTick() {}

// 主函数
function main() {
    // 过滤非重要信息
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // 轮询模式
        if (onTick()) { // 执行 onTick 函数
            CancelPendingOrders(); // 取消未成交的挂单
            Log(_C(exchange.GetAccount)); // 打印当前账户信息
        }
        Sleep(LoopInterval * 1000); // 休眠
    }
}

پوری حکمت عملی کا فریم ورک اصل میں بہت آسان ہے، ایک مین فنکشن، ایک آن ٹِک آرڈر فنکشن، ایک کینسل پینڈنگ آرڈرز فنکشن، اور ضروری پیرامیٹرز کے ساتھ۔

5. آرڈر ماڈیول

// 下单函数
function onTick() {
    var acc = _C(exchange.GetAccount); // 获取账户信息
    var ticker = _C(exchange.GetTicker); // 获取 Tick 数据
    var spread = ticker.Sell - ticker.Buy; // 获取 Tick 数据的买卖价差
    // 账户余额与当前持仓价值的差值的 0.5倍
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / 账户余额
    LogStatus('ratio:', ratio, _D()); // 打印 ratio和当前时间
    if (Math.abs(ratio) < threshold) { // 如果 ratio的绝对值小于指定阈值
        return false; // 返回 false
    }
    if (ratio > 0) { // 如果 ratio大于 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // 计算下单价格
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // 计算下单量
        if (buyAmount < MinStock) { // 如果下单量小于最小交易量
            return false; // 返回 false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // 买入下单
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // 计算下单价格
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // 计算下单量
        if (sellAmount < MinStock) { // 如果下单量小于最小交易量
            return false; // 返回 false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // 卖出下单
    }
    return true; // 返回 true
}

آرڈر ٹریڈنگ کی منطق واضح ہے اور تمام تبصرے کوڈ میں لکھے گئے ہیں آپ اسے بڑا کرنے کے لیے تصویر پر کلک کر سکتے ہیں۔

اہم عمل مندرجہ ذیل ہے:

  • اکاؤنٹ کی معلومات حاصل کریں۔
  • ٹک ڈیٹا حاصل کریں۔
  • ٹک ڈیٹا پر بولی پوچھنے کے پھیلاؤ کا حساب لگائیں۔
  • اکاؤنٹ بیلنس اور BTC مارکیٹ ویلیو کے درمیان فرق کا حساب لگائیں۔
  • خرید و فروخت کے حالات، آرڈر کی قیمت اور آرڈر کی مقدار کا حساب لگائیں۔
  • آرڈر کریں اور صحیح واپسی کریں۔

6. آرڈر کینسلیشن ماڈیول

// 撤单函数
function CancelPendingOrders() {
    Sleep(1000); // 休眠 1秒
    var ret = false;
    while (true) {
        var orders = null;
        // 持续获取未成交订单数组,如果返回异常,则继续获取
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // 休眠 1秒
        }
        if (orders.length == 0) { // 如果订单数组为空
            return ret; // 返回撤单状态
        }
        for (var j = 0; j < orders.length; j++) { // 遍历未成交订单数组
            exchange.CancelOrder(orders[j].Id); // 依次取消未成交订单
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // 休眠 1秒
            }
        }
    }
}

آرڈر کینسلیشن ماڈیول اور بھی آسان ہے، اس کے اقدامات درج ذیل ہیں:

  • آرڈر منسوخ کرنے سے پہلے 1 سیکنڈ تک انتظار کریں، یہ کچھ ایکسچینجز میں ایک مسئلہ ہے۔
  • نامکمل آرڈرز کو حاصل کرنا جاری رکھیں اگر کوئی رعایت واپس آ جاتی ہے تو حاصل کرنا جاری رکھیں۔
  • اگر نامکمل آرڈرز کی صف خالی ہے، تو آرڈر کی منسوخی کی حیثیت فوری طور پر واپس کردی جاتی ہے۔
  • اگر آرڈرز نامکمل ہیں تو پوری صف کو عبور کیا جاتا ہے اور آرڈر نمبر کے مطابق ایک ایک کر کے آرڈر منسوخ کر دیے جاتے ہیں۔

7. مکمل حکمت عملی سورس کوڈ

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



// 撤单函数
function CancelPendingOrders() {
    Sleep(1000); // 休眠 1秒
    var ret = false;
    while (true) {
        var orders = null;
        // 持续获取未成交订单数组,如果返回异常,则继续获取
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // 休眠 1秒
        }
        if (orders.length == 0) { // 如果订单数组为空
            return ret; // 返回撤单状态
        }
        for (var j = 0; j < orders.length; j++) { // 遍历未成交订单数组
            exchange.CancelOrder(orders[j].Id); // 依次取消未成交订单
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // 休眠 1秒
            }
        }
    }
}

// 下单函数
function onTick() {
    var acc = _C(exchange.GetAccount); // 获取账户信息
    var ticker = _C(exchange.GetTicker); // 获取 Tick 数据
    var spread = ticker.Sell - ticker.Buy; // 获取 Tick 数据的买卖价差
    // 账户余额与当前持仓价值的差值的 0.5倍
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / 账户余额
    LogStatus('ratio:', ratio, _D()); // 打印 ratio和当前时间
    if (Math.abs(ratio) < threshold) { // 如果 ratio的绝对值小于指定阈值
        return false; // 返回 false
    }
    if (ratio > 0) { // 如果 ratio大于 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // 计算下单价格
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // 计算下单量
        if (buyAmount < MinStock) { // 如果下单量小于最小交易量
            return false; // 返回 false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // 买入下单
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // 计算下单价格
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // 计算下单量
        if (sellAmount < MinStock) { // 如果下单量小于最小交易量
            return false; // 返回 false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // 卖出下单
    }
    return true; // 返回 true
}

// 主函数
function main() {
    // 过滤非重要信息
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // 轮询模式
        if (onTick()) { // 执行 onTick 函数
            CancelPendingOrders(); // 取消未成交的挂单
            Log(_C(exchange.GetAccount)); // 打印当前账户信息
        }
        Sleep(LoopInterval * 1000); // 休眠
    }
}

بیرونی پیرامیٹرز ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

8. حکمت عملی بیک ٹیسٹنگ

اگلا، آئیے اس سادہ متحرک توازن کی حکمت عملی کو جانچتے ہیں کہ آیا یہ کام کرتی ہے۔ مندرجہ ذیل بی ٹی سی کے تاریخی ڈیٹا پر ایک بیک ٹیسٹ ہے، صرف آپ کے حوالہ کے لیے۔

بیک ٹیسٹنگ ماحول ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

بیک ٹیسٹ پرفارمنس ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

بیکٹیسٹ وکر ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

یہاں اسی مدت کے لئے ایک اور BTC قیمت چارٹ ہے ڈیجیٹل کرنسی پر مبنی متحرک توازن کی حکمت عملی

بیکٹیسٹ مدت کے دوران، بی ٹی سی 8 ماہ تک گر رہا ہے، جس میں زیادہ سے زیادہ گراوٹ 70% سے تجاوز کر گئی ہے، جس کی وجہ سے بہت سے سرمایہ کاروں کا بلاک چین اثاثوں پر اعتماد ختم ہو گیا ہے۔ اس حکمت عملی کی مجموعی واپسی 160% تک زیادہ ہے، اور سالانہ واپسی کے خطرے کا تناسب 5 سے زیادہ ہے۔ اس طرح کی سادہ سرمایہ کاری کی حکمت عملی کے لیے، سرمایہ کاری پر یہ واپسی ان لوگوں کی اکثریت سے بڑھ گئی ہے جو سب کچھ حاصل کرتے ہیں۔

9. حکمت عملی کا ماخذ کوڈ حاصل کریں۔

حکمت عملی کے ماخذ کوڈ کو Inventor Quantitative https://www.fmz.com/strategy/110545 کی سرکاری ویب سائٹ پر عام کر دیا گیا ہے، براہ راست آن لائن بیک ٹیسٹنگ کے لیے کسی ترتیب کی ضرورت نہیں ہے۔

10. نتیجہ

اس متحرک توازن کی حکمت عملی میں صرف ایک بنیادی پیرامیٹر (تھریش ہولڈ) ہے، جو کہ سرمایہ کاری کا ایک بہت ہی آسان طریقہ ہے جو اضافی منافع کے بجائے مستحکم منافع حاصل کرتا ہے۔ رجحان کی حکمت عملی کے برعکس، متحرک توازن کی حکمت عملی رجحان کے خلاف جاتی ہے۔ متحرک توازن کی حکمت عملی اس کے بالکل برعکس ہے جب مارکیٹ گرم ہوتی ہے، تو آپ پوزیشنز کو کم کرتے ہیں اور جب مارکیٹ پرسکون ہوتی ہے، تو یہ کچھ حد تک میکرو اکنامک ریگولیشن سے ملتا جلتا ہے۔

درحقیقت، متحرک توازن کی حکمت عملی ایک ایسی مہارت ہے جو اس تصور پر قائم رہتی ہے کہ قیمتوں کے اتار چڑھاو کو پکڑتے ہوئے قیمتیں غیر متوقع ہیں۔ متحرک توازن کی حکمت عملی کی کلید اثاثہ مختص کرنے کے تناسب اور محرک کی حد کو ترتیب دینا اور ایڈجسٹ کرنا ہے۔ جگہ کی تنگی کی وجہ سے، مضمون کے لیے ہر چیز کا احاطہ کرنا ناممکن ہے، آپ کو یہ جاننا ہوگا کہ لفظوں سے آگے دل ہے۔ متحرک توازن کی حکمت عملی کے بارے میں سب سے اہم بات یہ ہے کہ آپ اس مضمون میں ایک BTC اثاثہ کو بلاکچین اثاثوں کی ٹوکری سے بھی بدل سکتے ہیں۔

آخر میں، ہم اس مضمون کو بینجمن گراہم کی کتاب The Intelligent Investor کے ایک مشہور اقتباس کے ساتھ ختم کرتے ہیں:سٹاک مارکیٹ ایک “ووٹنگ مشین” نہیں ہے جو قیمت کو درست طریقے سے ماپ سکتی ہے، بلکہ یہ ایک “ووٹ ڈالنے والی مشین” ہے جو کئی بار عقلیت اور جذبات کا مجموعہ ہوتی ہے۔ عقلی قدر کا فیصلہ سرمایہ کاری کا راز اس وقت سرمایہ کاری کرنا ہے جب قیمتیں اندرونی قدر سے بہت کم ہوں اور یقین کریں کہ مارکیٹ کا رجحان بحال ہو جائے گا۔ —— بینجمن گراہم، ذہین سرمایہ کار