60 لائنوں کے ساتھ مثلث ہیجنگ کی حکمت عملی (تعلیم)

مصنف:چھوٹا سا خواب، تاریخ: 2019-04-16 12:55:22
ٹیگز:مطالعہہیجمثلث

تعلیمی حکمت عملی کے لئے مثلث ہیجنگ

اصول

  • مثال کے طور ایکسچینج: ETH_BTC ایکسچینج بی: ETH_USDT ایکسچینج سی (اصل میں ایکسچینج بی کے لئے ایک اور ٹریڈنگ جوڑی ہے، جو منطقی طور پر C سمجھا جاتا ہے): BTC_USDT

  • بی۔ سی۔ ایکسچینج ٹریڈنگ کا جوڑا ETH_BTC اور اے۔ ایکسچینج ہیجنگ کو یکجا کرتا ہے۔ اس طرح بی۔ سی۔ اصل میں ایک ایکسچینج اکاؤنٹ ہے۔

جگہ کو بہتر بنانا

  • کرنسی کا توازن۔
  • ہیرجنگ کی قیمت، متحرک فرق، اور اس کی شرح کے مطابق حساب لگایا جاتا ہے۔
  • ہائیڈرولک ٹرانسپورٹ۔
  • آرڈر کی گہرائی میں اسکین کریں اور بہترین ہیجنگ کا حساب لگائیں۔ ...

BUG کی رائے

  • اگر کوئی غلطی ہو تو تبصرے کا خیر مقدم کرتے ہیں۔

// 交易对以 ETH_BTC , ETH_USDT , BTC_USDT 为例
// 教学策略,还有很大优化空间,例如:币平衡模块,根据手续费率控制对冲差价,硬搬砖等等。
function main () {                                                                                      
    if (exchanges[0].GetQuoteCurrency() != exchanges[2].GetCurrency().split("_")[0] || 
        exchanges[0].GetCurrency().split("_")[0] != exchanges[1].GetCurrency().split("_")[0]) {
        throw "交易所 交易对 配置错误。"
    }
    var marketSlideRate = 1 // 1.02
    var hedgeDiff = 0.0007
    var hedgeAmount = 0.1
    var isFirst = true
    var concurrenter = function (funcName, isWait, tasks, amounts) {
        for (var i = 0 ; i < exchanges.length; i++) {
            if (isFirst) {
                exchanges[i].acc = _C(exchanges[i].GetAccount)
                exchanges[i].initAcc = exchanges[i].acc
            }
            if (isWait) {
                var a = funcName == "GetTicker" ? exchanges[i].ticker = exchanges[i].tiR.wait() : exchanges[i].id = exchanges[i].trR.wait()
                if (funcName == "trade") {
                    exchanges[i].acc = _C(exchanges[i].GetAccount)
                }
            } else {
                var b = funcName == "GetTicker" ? exchanges[i].tiR = exchanges[i].Go(funcName) : exchanges[i].trR = exchanges[i].Go(tasks[i], -1, amounts[i], exchanges[i].GetCurrency())
            }
        }
        if (funcName == "trade" && isWait) {
            Log("BTC:", exchange.BTC = exchanges[0].acc.Balance + exchanges[2].acc.Stocks, "ETH:", exchange.ETH = exchanges[0].acc.Stocks + exchanges[1].acc.Stocks, "USDT:", 
                exchange.USDT = exchanges[1].acc.Balance + exchanges[2].acc.Balance, "#FF0000")
            LogProfit(exchange.USDT - (exchanges[1].initAcc.Balance + exchanges[2].initAcc.Balance) - 
                (exchanges[0].initAcc.Balance + exchanges[2].initAcc.Stocks - exchange.BTC) * exchanges[2].ticker.Last -
                (exchanges[0].initAcc.Stocks + exchanges[1].initAcc.Stocks - exchange.ETH) * exchanges[1].ticker.Last)
        }
        isFirst = false
    }

    while (1) {
        concurrenter("GetTicker", false)
        concurrenter("GetTicker", true)
        var tickerA = exchanges[0].ticker
        var tickerB = exchanges[1].ticker
        var tickerC = exchanges[2].ticker

        var tickerBC = {
            Buy : tickerB.Buy / tickerC.Sell,
            Sell : tickerB.Sell / tickerC.Buy,
        }

        if (tickerA.Buy - tickerBC.Sell > hedgeDiff && exchanges[0].acc.Stocks > 0.2 && exchanges[1].acc.Balance > 500 && exchanges[2].acc.Stocks > 0.03) {                          // Sell A , Buy BC (Buy B Sell C)
            concurrenter("trade", false, ["Sell", "Buy", "Sell"], [hedgeAmount, marketSlideRate * tickerB.Sell * hedgeAmount, tickerB.Sell * hedgeAmount / tickerC.Buy])
            concurrenter("trade", true)
        }
        if (tickerBC.Buy - tickerA.Sell > hedgeDiff && exchanges[0].acc.Balance > 0.03 && exchanges[1].acc.Stocks > 0.2 && exchanges[2].acc.Balance > 500) {                          // Buy A , Sell BC (...)
            concurrenter("trade", false, ["Buy", "Sell", "Buy"], [marketSlideRate * hedgeAmount * tickerA.Sell, hedgeAmount, marketSlideRate * hedgeAmount * tickerA.Sell * tickerC.Sell])
            concurrenter("trade", true)
        }
        Sleep(500)
    }
}



متعلقہ

مزید

بی این ایم بی این ایمپرو: TypeError: اہم میں null کی جائیداد 'Sell' نہیں پڑھ سکتا (__FILE__:45) پرو: GetTicker: 429: {"msg":"درخواستیں بہت کثرت سے.","کوڈ":"50011"}

بی این ایم بی این ایمہیلو، یہ تین سککوں کے ساتھ چلتا ہے، یا USDT کے ساتھ چلتا ہے.

بی این ایم بی این ایمکیوں نہیں بھاگتے؟

fmzeroتعلیم کی ویڈیو کہاں ہے؟

چھوٹا سا خوابتین سکے درکار ہیں۔

چھوٹا سا خواببہت کثرت سے درخواستیں!

بی این ایم بی این ایمہیلو، یہ تین سککوں کے ساتھ چلتا ہے، یا USDT کے ساتھ چلتا ہے.

بی این ایم بی این ایمکیا آپ 0.03 پر ٹریڈنگ کی مقدار مقرر کر سکتے ہیں؟ 0.007 اور 1/1.02 کا کیا مطلب ہے؟

بی این ایم بی این ایمٹھیک ہے، میں پھر دوڑتا ہوں

چھوٹا سا خوابیہاں غلطی کی اطلاع بھیجیں یا ایف ایم زیڈ کے سرکاری گروپ @ dreamback پر جائیں۔

بی این ایم بی این ایمکیا آپ اپنا ویکی میسج نیچے کر سکتے ہیں؟

چھوٹا سا خوابہم آپ کو بتاتے ہیں کہ ہم کس طرح کام کر رہے ہیں ، ہم آپ کو بتاتے ہیں کہ ہم کیا کر رہے ہیں۔

بی این ایم بی این ایمکیا میں آپ کو ویکی میسج کر سکتا ہوں؟

چھوٹا سا خوابیہ ایک فوری حکمت عملی ہے ، اگر کوئی مسئلہ ہے تو ، مخصوص سوالات بھیجنے کی ضرورت ہے۔