وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ایف ایم زیڈ کوانٹ اے پی آئی اپ گریڈ کی تفصیلی وضاحت: حکمت عملی ڈیزائن کے تجربے کو بہتر بنانا

مصنف:FMZ~Lydia, تخلیق: 2024-07-05 09:44:08, تازہ کاری: 2024-09-20 08:52:30

[TOC]

img

پیش لفظ

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

حکمت عملی کے ڈیزائن کو زیادہ آسان ، تجارتی منطق کو واضح اور ابتدائیوں کے لئے شروع کرنا آسان بنانے کے ل the ، پلیٹ فارم نے حکمت عملی کے ذریعہ استعمال ہونے والے API انٹرفیس کو اپ گریڈ کیا ہے۔ تازہ ترین ورژن کا استعمال کرتے ہوئے ڈوکرز ان نئی خصوصیات کو فعال کرسکتے ہیں۔ پلیٹ فارم اب بھی بڑی حد تک پرانے انٹرفیس کالز کے ساتھ مطابقت رکھتا ہے۔ API انٹرفیس کی نئی خصوصیات کے بارے میں معلومات کو ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کے API دستاویزات میں اپ ڈیٹ کیا گیا ہے:

نحو رہنما:https://www.fmz.com/syntax-guideصارف گائیڈ:https://www.fmz.com/user-guide

تو آئیے ایک فوری نظر ڈالتے ہیں کہ کون سے انٹرفیس کو اپ گریڈ کیا گیا ہے اور موجودہ API کے ساتھ ہم آہنگ بنانے کے لئے پرانی حکمت عملیوں کو استعمال کرنے کے لئے کیا تبدیلیوں کی ضرورت ہے۔

1. نیا API انٹرفیس

تبادلہ شامل کر دیا گیا.GetTickers تقریب

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

اگر تبادلے میں یہ انٹرفیس نہیں ہے (انفرادی تبادلے) ، کال کرتے وقتexchange.GetTickers()، ایک غلطی کا پیغام دکھایا گیا ہے: معاونت نہیں کی جاتی ہے۔

اس فنکشن میں کوئی پیرامیٹرز نہیں ہیں اور یہ ایکسچینج کے مجموعی مارکیٹ انٹرفیس میں تمام اقسام کے ریئل ٹائم مارکیٹ ڈیٹا کو واپس کرے گا۔ اسے صرف اس طرح سمجھا جاسکتا ہے:

exchange.GetTickers()تقریب کی مکمل خصوصیات کی درخواست ورژن ہےexchange.GetTicker()تقریب (خبردار دیکھو، ان دو تقریب ناموں کے درمیان فرق صرف واحد اور جمع ہے).

ہم ٹیسٹنگ کے لئے OKX سپاٹ سیمولیشن ماحول کا استعمال کرتے ہیں:

function main() {
    exchange.IO("simulate", true)

    var tickers = exchange.GetTickers()
    if (!tickers) {
        throw "tickers error"
    }

    var tbl = {type: "table", title: "test tickers", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var i in tickers) {
        var ticker = tickers[i]
        tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return tickers.length
}

img

شامل تبادلہ.CreateOrder تقریب

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

کثیر اقسام کے تجارتی آرڈر کی جگہ کے منظرناموں اور متوازی منظرناموں میں ، ڈیزائن کی پیچیدگی بہت کم ہے۔exchange.CreateOrder()فنکشن ہیںsymbol, side, price, amount.

OKX فیوچر سیمولیشن ماحول کا استعمال کرتے ہوئے ٹیسٹ:

function main() {
    exchange.IO("simulate", true)

    var id1 = exchange.CreateOrder("ETH_USDT.swap", "buy", 3300, 1)
    var id2 = exchange.CreateOrder("BTC_USDC.swap", "closebuy", 70000, 1)
    var id3 = exchange.CreateOrder("LTC_USDT.swap", "sell", 110, 1)

    Log("id1:", id1, ", id2:", id2, ", id3:", id3)
}

img

اس طرح، صرف تینexchange.CreateOrder()مختلف اقسام اور سمتوں کے تین فیوچر آرڈر رکھنے کے لئے فنکشن کالز کا استعمال کیا گیا تھا۔

شامل تبادلہ.GetHistoryOrders تقریب

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

تاریخی احکامات کی استفسار کے لئے ، مختلف تبادلے کے ذریعہ لاگو ہونے والے انٹرفیس بہت مختلف ہوتے ہیں:

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

تفصیلی تقریب کی وضاحت یہاں دہرایا نہیں ہے، آپ API دستاویزات میں نحو دستی کا حوالہ دے سکتے ہیں:

https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders

بائننس اسپاٹ ٹریڈنگ ماحول کا استعمال کرتے ہوئے تجربہ کیا:

function main() {
    var orders = exchange.GetHistoryOrders("ETH_USDT")

    // Write to chart
    var tbl = {type: "table", title: "test GetHistoryOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
    for (var order of orders) {
        tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
    }
    
    LogStatus("orders.length:", orders.length, "\n", "`" + JSON.stringify(tbl) +  "`")
}

img

شامل تبادلہ.GetPositions تقریب

پوزیشن ڈیٹا حصول کی تقریب کا پرانا ورژن ہےexchange.GetPosition()اس اپ ڈیٹ میں ایک نیا پوزیشن حصول فنکشن شامل کیا گیا ہے تاکہ فنکشن نام دینے والے سیمانٹکس سے بہتر مطابقت ہو:exchange.GetPositions()ایک ہی وقت میں، یہ اب بھی GetPosition تقریب کے ساتھ ہم آہنگ / اپ گریڈ ہے.

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

کےexchange.GetPositions()فنکشن کی تین کالنگ شکلیں ہیں:

  • تبادلہ.GetPositions() جب کوئی پیرامیٹرز منظور نہیں کر رہے ہیں، موجودہ طول و عرض میں تمام اقسام کی پوزیشن کے اعداد و شمار موجودہ کی ترتیبات کے مطابق کی درخواست کی جاتی ہےتجارتی جوڑا / معاہدہ کا کوڈ.

  • exchange.GetPositions ((ETH_USDT.swap) مخصوص پروڈکٹ کی معلومات کی وضاحت کرتے وقت (ETH_USDT.swap کا فارمیٹ FMZ پلیٹ فارم کے ذریعہ متعین کیا جاتا ہے) ، مخصوص پروڈکٹ کے پوزیشن ڈیٹا کی درخواست کریں۔ مثلاً:BTC_USD.swap, ETH_USDT.swap, ETH_USDT.quarter، وغیرہ BTC_USD.swap: BTC کی کرنسی پر مبنی دائمی معاہدہ۔ ETH_USDT.swap: ETH کا U پر مبنی دائمی معاہدہ۔ ETH_USDT.quarter: ETH کا U پر مبنی سہ ماہی ترسیل کا معاہدہ۔ BTC_USD.BTC-USD-201226-24250-C: BTC سکے پر مبنی آپشن معاہدہ۔

  • exchange.GetPositions ((USDT.swap) مخصوص طول و عرض کی حد کے مطابق تمام مصنوعات کے لئے پوزیشن کے اعداد و شمار کی درخواست کریں۔ USDT.swap: U پر مبنی مستقل معاہدہ رینج۔ USDT.futures: U پر مبنی ترسیل کے معاہدے کی حد. USD.swap: سکوں پر مبنی مستقل معاہدے کی حد۔ USD.futures: سکے پر مبنی ترسیل کے معاہدے کی حد۔ USDT.option: U پر مبنی آپشن معاہدے کی حد۔ USD.option: سکے پر مبنی آپشن معاہدے کی حد۔

    کچھ خصوصی تبادلہ معاہدے کے طول و عرض کے ڈویژن: USDT.futures_combo: Futures_Deribit exchanges پھیلاؤ مجموعہ معاہدہ. USD.futures_ff: Futures_Kraken exchange کا مخلوط مارجن ڈلیوری معاہدہ۔ USD.swap_pf: Futures_Kraken exchanges مخلوط مارجن دائمی معاہدہ. طول و عرض کے لئے جو تبادلہ API انٹرفیس کی طرف سے حمایت نہیں کی جاتی ہے، ایک غلطی کی اطلاع دی جائے گی اور کال کرنے پر ایک null قدر واپس کردی جائے گی.

OKX فیوچر سیمولیشن ماحول کا استعمال کرتے ہوئے ٹیسٹ:

function main() {
    exchange.IO("simulate", true)

    exchange.SetCurrency("BTC_USDT")
    exchange.SetContractType("swap")

    var p1 = exchange.GetPositions()
    var p2 = exchange.GetPositions("BTC_USDT.swap")

    var tbls = []
    for (var positions of [p1, p2]) {
        var tbl = {type: "table", title: "test GetPosition/GetPositions", cols: ["Symbol", "Amount", "Price", "FrozenAmount", "Type", "Profit", "Margin", "ContractType", "MarginLevel"], rows: []}
        for (var p of positions) {
            tbl.rows.push([p.Symbol, p.Amount, p.Price, p.FrozenAmount, p.Type, p.Profit, p.Margin, p.ContractType, p.MarginLevel])
        } 
        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

جب پیرامیٹر کو منتقل کر دیاexchange.GetPositions()فنکشن ہےETH_USDT.swap، ETH کے U پر مبنی مستقل معاہدے کے پوزیشن ڈیٹا حاصل کیے جاسکتے ہیں۔

جب پیرامیٹرز کےexchange.GetPositions()فنکشن میں منتقل نہیں ہوتے ہیں، تبادلے پر درج تمام U پر مبنی دائمی معاہدوں کے پوزیشن ڈیٹا حاصل کیے جاسکتے ہیں (کیونکہ موجودہ ٹریڈنگ جوڑی BTC_USDT ہے اور معاہدہ تبادلہ ہے ، درخواست موجودہ ٹریڈنگ جوڑی اور معاہدے کی طول و عرض کی حد پر مبنی ہے) ۔ یہ کال کرنے کے برابر ہے۔exchange.GetPositions("USDT.swap")اور درخواست کی حد کی وضاحت.

2. API انٹرفیس اپ گریڈ

اپ ڈیٹ تبادلہ.GetTicker تقریب

مارکیٹ فنکشن کی اہم اپ گریڈexchange.GetTicker()اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ ، اس کے علاوہ

پیرامیٹرsymbolتبادلہ کے مقصد کے لئے اسپاٹ/فیوچر کے لئے مختلف فارمیٹس ہیںexchange:

  • اسپاٹ ایکسچینج آبجیکٹ فارمیٹ یہ ہے:AAA_BBB، اے اے اے بی ایس کرنسی ، یعنی تجارتی کرنسی کی نمائندگی کرتا ہے ، اور بی بی بی کوٹ کرنسی ، یعنی قیمتوں کا تعین کرنے والی کرنسی کی نمائندگی کرتا ہے۔ کرنسی کے نام سب بڑے حروف میں ہیں۔ مثال کے طور پر: BTC_USDT اسپاٹ ٹریڈنگ جوڑی۔
  • فیوچر ایکسچینج کا مقصد فارمیٹ یہ ہے:AAA_BBB.XXX، AAA بیس کرنسی ، یعنی تجارتی کرنسی کی نمائندگی کرتا ہے ، BBB کوٹ کرنسی ، یعنی قیمتوں کا تعین کرنے والی کرنسی کی نمائندگی کرتا ہے ، اور XXX معاہدے کے کوڈ کی نمائندگی کرتا ہے ، جیسے دائمی معاہدہ تبادلہ۔ کرنسی کے نام سب بڑے حروف میں ہیں ، اور معاہدے کے کوڈز چھوٹے حروف میں ہیں۔ مثال کے طور پر: BTC_USDT.swap، BTC کا U پر مبنی دائمی معاہدہ۔ بائننس فیوچر کے لائیو ماحول کا استعمال کرتے ہوئے تجربہ کیا:
var symbols = ["BTC_USDT.swap", "BTC_USDT.quarter", "BTC_USD.swap", "BTC_USD.next_quarter", "ETH_USDT.swap"]

function main() {
    exchange.SetCurrency("ETH_USD")
    exchange.SetContractType("swap")

    var arr = []
    var t = exchange.GetTicker()
    arr.push(t)

    for (var symbol of symbols) {
        var ticker = exchange.GetTicker(symbol)
        arr.push(ticker)
    }

    var tbl = {type: "table", title: "test GetTicker", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var ticker of arr) {
        tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return arr
}

img

ایک مخصوص علامت کے لئے مارکیٹ کے اعداد و شمار کے ایک بیچ کی درخواست بہت آسان ہو گیا ہے.

اپ ڈیٹ تبادلہ.GetDepth تقریب

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

بائننس فیوچر کے لائیو ماحول کا استعمال کرتے ہوئے تجربہ کیا:

function main() {
    exchange.SetCurrency("LTC_USD")
    exchange.SetContractType("swap")

    Log(exchange.GetDepth())
    Log(exchange.GetDepth("ETH_USDT.quarter"))
    Log(exchange.GetDepth("BTC_USD.swap"))
}

img

اپ ڈیٹ تبادلہ.GetTrades تقریب

GetTicker فنکشن کی طرح،exchange.GetTrades()فنکشن ایک علامت پیرامیٹر بھی شامل کرتا ہے۔ اس سے ہمیں مارکیٹ ٹرانزیکشن ڈیٹا کی درخواست کرتے وقت براہ راست علامت کی وضاحت کرنے کی اجازت ملتی ہے۔

بائننس فیوچر کے لائیو ماحول کا استعمال کرتے ہوئے تجربہ کیا:

function main() {
    var arr = []
    var arrR = []
    var symbols = ["LTC_USDT.swap", "ETH_USDT.quarter", "BTC_USD.swap"]    

    for (var symbol of symbols) {
        var r = exchange.Go("GetTrades", symbol)
        arrR.push(r)
    }

    for (var r of arrR) {
        arr.push(r.wait())
    }
    
    var tbls = []
    for (var i = 0; i < arr.length; i++) {
        var trades = arr[i]
        var symbol = symbols[i]

        var tbl = {type: "table", title: symbol, cols: ["Time", "Amount", "Price", "Type", "Id"], rows: []}
        for (var trade of trades) {
            tbl.rows.push([trade.Time, trade.Amount, trade.Price, trade.Type, trade.Id])
        }

        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

یہ اپ گریڈ بھی علامت پیرامیٹر کی طرف سے مخصوص کے ساتھ ہم آہنگ ہےexchange.Go()پلیٹ فارم API انٹرفیس کو بیک وقت کال کرتے وقت فنکشن.

اپ ڈیٹ تبادلہ.GetRecords تقریب

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

کال کرنے کا طریقہexchange.GetRecords()فنکشن ہے:

  • تبادلہ.GetRecords() اگر کوئی پیرامیٹرز متعین نہیں کیے گئے ہیں تو ، موجودہ ٹریڈنگ جوڑی / معاہدے کے کوڈ کے مطابق مصنوع کے K لائن ڈیٹا کی درخواست کی جاتی ہے۔ K لائن مدت حکمت عملی بیک ٹسٹنگ انٹرفیس میں یا براہ راست تجارت میں طے شدہ ڈیفالٹ K لائن مدت ہے۔
  • تبادلہ.GetRecords ((60 * 15) جب صرف K لائن پیریڈ پیرامیٹر کی وضاحت کی جاتی ہے تو، موجودہ ٹریڈنگ جوڑی/معاہدہ کوڈ کے مطابق مصنوعات کے K لائن ڈیٹا کی درخواست کی جاتی ہے۔
  • exchange.GetRecords ((BTC_USDT.swap) جب صرف پروڈکٹ کی معلومات کی وضاحت کی جاتی ہے تو ، مخصوص پروڈکٹ کے K لائن ڈیٹا کی درخواست کی جاتی ہے۔ K لائن مدت حکمت عملی بیک ٹسٹنگ انٹرفیس میں یا براہ راست تجارت میں طے شدہ ڈیفالٹ K لائن مدت ہے۔
  • exchange.GetRecords ((BTC_USDT.swap، 60 * 60) مصنوعات کی معلومات اور مخصوص K لائن کی مدت کی وضاحت کریں تاکہ K لائن کے اعداد و شمار کی درخواست کی جاسکے۔
  • exchange.GetRecords ((BTC_USDT.swap، 60، 1000) مصنوعات کی معلومات کی وضاحت کریں، مخصوص K لائن مدت کی وضاحت کریں، اور K لائن ڈیٹا کی درخواست کرنے کے لئے متوقع K لائن کی لمبائی کی وضاحت کریں. نوٹ کریں کہ جب حد پیرامیٹر ایکسچینج سے ایک واحد درخواست کی زیادہ سے زیادہ لمبائی سے تجاوز کرتا ہے تو ، ایک پیجنگ کی درخواست تیار کی جائے گی (یعنی ، ایکسچینج کے لائن انٹرفیس میں متعدد کالیں) ۔

بائننس فیوچر کے لائیو ماحول کا استعمال کرتے ہوئے تجربہ کیا:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    var r1 = exchange.GetRecords()
    var r2 = exchange.GetRecords(60 * 60)
    var r3 = exchange.GetRecords("BTC_USDT.swap")
    var r4 = exchange.GetRecords("BTC_USDT.swap", 60)
    var r5 = exchange.GetRecords("LTC_USDT.swap", 60, 3000)

    Log("r1 time difference between adjacent bars:", r1[1].Time - r1[0].Time, "Milliseconds, Bar length:", r1.length)
    Log("r2 time difference between adjacent bars:", r2[1].Time - r2[0].Time, "Milliseconds, Bar length:", r2.length)
    Log("r3 time difference between adjacent bars:", r3[1].Time - r3[0].Time, "Milliseconds, Bar length:", r3.length)
    Log("r4 time difference between adjacent bars:", r4[1].Time - r4[0].Time, "Milliseconds, Bar length:", r4.length)
    Log("r5 time difference between adjacent bars:", r5[1].Time - r5[0].Time, "Milliseconds, Bar length:", r5.length)
}

img

اپ ڈیٹ تبادلہ.GetOrders تقریب

GetOrders فنکشن بھی شامل کرتا ہےsymbolپیرامیٹرز، جو ایک مخصوص علامت کی وضاحت کرنے اور اس علامت کے نامکمل احکامات (انتظامی احکامات) کی پوچھ گچھ کرنے کے لئے استعمال کیا جا سکتا ہے؛ یہ بھی مخصوص طول و عرض کی حد میں تمام علامات کے نامکمل احکامات (انتظامی احکامات) کی پوچھ گچھ کرنے کی حمایت کرتا ہے.

کےexchange.GetOrders()فنکشن مندرجہ ذیل طریقوں سے بلایا جا سکتا ہے:

  • تبادلہ.GetOrders() مستقبل کے تبادلے کے لئے: جب کوئی پیرامیٹرز منظور نہیں ہوتے ہیں تو ، موجودہ طول و عرض کی حد میں تمام آلات کے لئے تمام زیر التواء آرڈرز (انتظار کے احکامات) کی درخواست موجودہ طول و عرض کے مطابق کی جاتی ہے۔تجارتی جوڑا / معاہدہ کا کوڈترتیبات. اسپاٹ ایکسچینج کے لئے: جب کوئی پیرامیٹرز منظور نہیں ہوتے ہیں تو ، تمام اسپاٹ پروڈکٹس کے تمام بقایا احکامات (انتظامی احکامات) کے لئے درخواستیں کی جاتی ہیں۔
  • exchange.GetOrders ((BTC_USDT.swap) یا exchange.GetOrders ((BTC_USDT) فیوچر ایکسچینجز کے لئے: exchange.GetOrders ((BTC_USDT.swap) ، BTC کے USDT پر مبنی دائمی معاہدے کے لئے تمام بقایا احکامات (انتظامی احکامات) کی انکوائری کریں۔ اسپاٹ ایکسچینجز کے لئے: exchange.GetOrders ((BTC_USDT) ، BTC_USDT اسپاٹ ٹریڈنگ جوڑی کے لئے تمام زیر التواء آرڈرز (انتظامی آرڈرز) کی انکوائری کریں۔
  • صرف فیوچر ایکسچینج کے لئے معاونت.GetOrders ((USDT.swap) تمام اقسام کے لئے زیر التواء احکامات (انتظار احکامات) کی درخواست کرنے کے لئے طول و عرض کی حد کی وضاحت کرتا ہے طول و عرض کی حد فنکشن GetPositions میں حد کے مطابق ہے. مثال کے طور پر: exchange.GetOrders ((USDT.swap) U پر مبنی دائمی معاہدے کی حد میں تمام اقسام کے تمام بقایا احکامات (انتظامی احکامات) کی درخواست کرتا ہے۔

OKX فیوچر سیمولیشن ماحول کا استعمال کرتے ہوئے ٹیسٹ:

function main() {
    exchange.IO("simulate", true)

    exchange.SetCurrency("BTC_USDT")
    exchange.SetContractType("swap")

    // Write to chart
    var tbls = []
    for (var symbol of ["null", "ETH_USDT.swap", "USDT.swap"]) {
        var tbl = {type: "table", title: symbol, cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}

        var orders = null
        if (symbol == "null") {
            orders = exchange.GetOrders()
        } else {
            orders = exchange.GetOrders(symbol)
        }

        for (var order of orders) {
            tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        }

        tbls.push(tbl)
    }
    
    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

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

جب پیرامیٹرETH_USDT.swapوضاحت کی گئی ہے، ETH کے USDT پر مبنی مستقل معاہدے کے نامکمل احکامات (انتظامی احکامات) کی درخواست کی جاتی ہے۔

جب سٹرنگ"USDT.swap"منظور کیا جاتا ہے، تمام یو ایس ڈی ٹی پر مبنی مستقل معاہدوں کے نامکمل احکامات (انتظامی احکامات) کی درخواست کی جاتی ہے۔

اپ ڈیٹ تبادلہ.GetPosition تقریب

یہ اب بھی پرانے پوزیشن حصول کے فنکشن کے نام کے ساتھ مطابقت رکھتا ہے، اور علامت پیرامیٹر بھی شامل کرتا ہے، جو مخصوص مطلوبہ پوزیشن کے اعداد و شمار کی قسم کی معلومات کی وضاحت کرسکتا ہے. اس فنکشن کا استعمال بالکل اسی طرح ہےexchange.GetPositions().

تازہ کاریexchange.IOفنکشن

کے لئےexchange.IO("api", ...)فنکشن کالز، تمام تبادلہ اشیاء مکمل درخواست پتوں کی براہ راست گزر حمایت کرنے کے لئے اپ گریڈ کیا گیا ہے. مثال کے طور پر، اگر آپ OKX انٹرفیس کو کال کرنا چاہتے ہیں:

// GEThttps://www.okx.com/api/v5/account/max-withdrawal ccy: بی ٹی سی

بیس ایڈریس پر براہ راست لکھنے کی حمایت کرتا ہےhttps://www.okx.comپہلے بیس ایڈریس تبدیل کرنے اور پھر IO فنکشن کو کال کرنے کے بغیر.

OKX فیوچر سیمولیشن ماحول کا استعمال کرتے ہوئے ٹیسٹ:

function main() {
    exchange.IO("simulate", true)

    return exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
}

img

3. API انٹرفیس اثر

تبادلہ.GetOrder تقریب کو متاثر کرتا ہے

یہ اپ گریڈ بنیادی طور پر پیرامیٹر کو متاثر کرتا ہےidکےexchange.GetOrder(id)فنکشن۔ آئی ڈی پیرامیٹر کو اصل ایکسچینج آرڈر آئی ڈی سے تبدیل کر کے اسٹرینگ فارمیٹ میں تبدیل کیا جاتا ہے جس میں ٹریڈنگ پروڈکٹ شامل ہوتا ہے۔ ایف ایم زیڈ پلیٹ فارم پر تمام آرڈر آئی ڈی اس فارمیٹ میں ہیں۔

مثلاً:

  • ایکسچینج آرڈر میں متعین کردہ ایکسچینج کا اصل آرڈر آئی ڈی:123456اس اپ گریڈ سے پہلے، اگر آپ GetOrder تقریب کو فون کرنا چاہتے ہیں تو، آرڈر ID میں منتقل کیا جاتا ہے123456.
  • ایکسچینج آرڈر میں بیان کردہ ایکسچینج کے ذریعہ نامزد کردہ پروڈکٹ کوڈ:BTC-USDT. نوٹ کریں کہ اس سے مراد تبادلے کے ذریعہ نامزد کردہ تجارتی مصنوع کا کوڈ ہے ، نہ کہ ایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ تجارتی جوڑی۔

اس اپ گریڈ کے بعد، پیرامیٹر آئی ڈی کی شکل جس میں پاس کرنے کی ضرورت ہےexchange.GetOrder(id)فنکشن کو ایڈجسٹ کیا جاتا ہے:BTC-USDT,123456.

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

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

تبادلے پر اثر انداز ہوتا ہے۔ آرڈر فنکشن منسوخ کریں

اس اپ گریڈ کے اثراتexchange.CancelOrder()تقریب کے طور پر ایک ہی ہےexchange.GetOrder() function.

تبادلے پر اثر انداز ہوتا ہے۔ خریدنے کی تقریب

اس اپ گریڈ کے اثراتexchange.Buy()تقریب کے طور پر ایک ہی ہےexchange.GetOrder()فنکشن. آرڈر ID کی طرف سے واپسexchange.Buy()فنکشن ایک نیا ڈھانچہ ہے، مثال کے طور پر، OKX ایکسچینج پر فیوچر آرڈر رکھنے پر واپس آئی ڈی ہے:LTC-USDT-SWAP,1578360858053058560.

تبادلے پر اثر انداز ہوتا ہے۔ فروخت کی تقریب

اس اپ گریڈ کے اثراتexchange.Sell()تقریب کے طور پر ایک ہی ہےexchange.GetOrder()فنکشن. آرڈر ID کی طرف سے واپسexchange.Sell()فنکشن ایک نیا ڈھانچہ ہے، مثال کے طور پر، OKX ایکسچینج پر فیوچر آرڈر رکھنے پر واپس آئی ڈی ہے:ETH-USDT-SWAP,1578360832820125696.

تبادلہ.GetPosition تقریب کو متاثر کرتا ہے

صرف فیوچر ایکسچینج آبجیکٹ اس فنکشن کی حمایت کرتے ہیں۔ پوزیشن کے اعداد و شمار حاصل کرنے کے لئے تبادلہ.GetPosition() فنکشن کے ل a ، ایک نیا تبادلہ.GetPositions() نام شامل کیا جاتا ہے ، اور دونوں طرز عمل بالکل ایک جیسے ہیں۔

پرانی تعریف: exchange.GetPosition() فنکشن، جب کسی بھی پیرامیٹرز کی وضاحت کے بغیر بلایا جاتا ہے، موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کی طرف سے مقرر مخصوص معاہدے کی پوزیشن کے اعداد و شمار حاصل کرتا ہے. ایڈجسٹمنٹ اور ترمیم کے بعد، نئی تعریف: exchange.GetPosition() تقریب، جب کسی بھی پیرامیٹرز کی وضاحت کے بغیر بلایا جاتا ہے، موجودہ سیٹ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کی طرف سے مقرر طول و عرض کی حد میں تمام اقسام کی پوزیشن حاصل کرتا ہے.

مثال کے طور پر ، موجودہ تجارتی جوڑی BTC_USDT ہے اور معاہدہ کا کوڈ تبادلہ ہے۔ اس وقت ، کال کریں:

exchange.GetPosition() // Equivalent to calling exchange.GetPosition("USDT.swap")

یہ فنکشن تمام کرنسیوں کے U پر مبنی مستقل معاہدوں کے پوزیشن ڈیٹا کی درخواست کرے گا۔

تبادلہ.GetOrders تقریب کو متاثر کرتا ہے

  1. اسپاٹ ایکسچینج کے لئے:

پرانی تعریف: exchange.GetOrders() تقریب، جب کسی بھی پیرامیٹرز کی وضاحت کے بغیر بلایا جاتا ہے، موجودہ ٹریڈنگ جوڑی کے تمام نامکمل احکامات حاصل کرتا ہے. ایڈجسٹمنٹ اور ترمیم کے بعد ، نئی تعریف یہ ہے: exchange.GetOrders() فنکشن ، جب کسی بھی پیرامیٹر کی وضاحت کیے بغیر بلایا جاتا ہے تو ، تمام اسپاٹ ٹریڈنگ جوڑوں کے نامکمل آرڈرز حاصل کرتا ہے۔

  1. مستقبل کے تبادلے کے لئے:

پرانی تعریف: exchange.GetOrders() فنکشن، جب کسی بھی پیرامیٹرز کی وضاحت کے بغیر بلایا جاتا ہے، تو موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کی طرف سے مقرر کردہ مخصوص معاہدے کے تمام نامکمل احکامات حاصل کرتا ہے. ایڈجسٹمنٹ اور ترمیم کے بعد ، نئی تعریف یہ ہے: exchange.GetOrders() فنکشن ، جب کسی بھی پیرامیٹر کی وضاحت کیے بغیر بلایا جاتا ہے ، تو موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کے ذریعہ طے شدہ طول و عرض کی حد کے تمام نامکمل احکامات حاصل کرتا ہے۔

مثال کے طور پر ، موجودہ تجارتی جوڑی BTC_USD ہے اور معاہدہ کا کوڈ سہ ماہی ہے۔ اس وقت ، کال کریں:

exchange.GetOrders()   // Equivalent to calling exchange.GetOrders("USD.futures")

یہ فنکشن تمام سکے پر مبنی فیوچر معاہدوں کے بقایا آرڈر ڈیٹا کی درخواست کرے گا۔

4. ساختی موافقت

ٹکر کی ساخت

اس اپ ڈیٹ میں ٹکر ڈھانچے میں ایک علامت فیلڈ شامل کیا گیا ہے، جو موجودہ ٹکر ڈھانچے کی مارکیٹ کی معلومات کو ریکارڈ کرتا ہے۔ اس فیلڈ کی شکل بالکل ایک ہی علامت پیرامیٹر کی شکل کے طور پر ہےexchange.GetTicker() function.

آرڈر ڈھانچہ

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

پوزیشن کی ساخت

یہ اپ ڈیٹ پوزیشن ڈھانچے میں ایک علامت فیلڈ کا اضافہ کرتا ہے. اس فیلڈ کی شکل بالکل اسی طرح کی علامت پیرامیٹر کی شکل کے طور پر ہےexchange.GetTicker() function.

5. بیک ٹیسٹنگ سسٹم

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

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

اضافی تازہ ترین معلومات

اکاؤنٹ کی ساخت میں نئے شعبے ایکویٹی اور یو پی این ایل

کے کھیتوںAccountکی طرف سے واپس کی ساختGetAccountفیوچر ایکسچینج آبجیکٹ کے رکن کی تقریب میں توسیع کی گئی ہے.

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

  • یو پی این ایل موجودہ مارجن اثاثہ کرنسی میں رکھی گئی تمام پوزیشنوں کے غیر منقولہ منافع اور نقصان۔ زیادہ تر فیوچر ایکسچینجز اس فیلڈ کی حمایت کرتے ہیں ، سوائے کچھ کے جو نہیں کرتے ہیں۔

سیٹ مارجن لیول فنکشن کو علامت پیرامیٹر کی حمایت کے لئے اپ گریڈ کیا گیا

فیوچر ایکسچینج آبجیکٹ کے رکن فنکشن سیٹ مارجن لیول کو اپ گریڈ کیا گیا ہے اور پیرامیٹر علامت شامل کی گئی ہے۔

ٹیسٹ کا مثال:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    // The current trading pair is ETH_USDT, the contract code is swap, and the leverage value is set to 10
    exchange.SetMarginLevel(10)
    
    // Directly specify the trading pair BTC_USDT, contract code swap, and set the leverage value to 20
    exchange.SetMarginLevel("BTC_USDT.swap", 20)
}

3. مارکیٹ کی ساخت حاصل مارکیٹس فنکشن کی طرف سے واپس کی گئی CtValCcy فیلڈ شامل

میدانCtValCcyکسی معاہدے کی ویلیو یونٹ ریکارڈ کرتا ہے۔ معاہدے کی ویلیو یونٹ ہو سکتی ہے: بی ٹی سی ، امریکی ڈالر ، ای ٹی ایچ وغیرہ۔ میدانCtValایکسچینج پر ٹریڈنگ کی مصنوعات کے ایک معاہدے کی قیمت ریکارڈ کرتا ہے، اور یونٹ کرنسی ہے جو ایکسچینج میں ریکارڈ کیا جاتا ہےCtValCcyشعبہ۔ مثال کے طور پر:CtVal0.01 ہے، اورCtValCcyہے BTC، جس کا مطلب ہے کہ ایک معاہدہ کی قیمت 0.01 بی ٹی سی ہے۔


مزید