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

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

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

[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 پلیٹ فارم کے ذریعہ متعین کیا جاتا ہے) ، مخصوص پروڈکٹ کے پوزیشن ڈیٹا کی درخواست کریں۔
  • تبادلہ.GetPositions("") تبادلہ پوزیشن انٹرفیس سے پوزیشن کے تمام موجودہ طول و عرض حاصل کرنے کی درخواست کریں۔ (تبادلہ انٹرفیس پروڈکٹ طول و عرض کے مطابق تقسیم) OKX فیوچر سیمولیشن ماحول کا استعمال کرتے ہوئے ٹیسٹ:
function main() {
    exchange.IO("simulate", true)

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

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

    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 پر مبنی مستقل معاہدے کے پوزیشن ڈیٹا حاصل کیے جاسکتے ہیں۔

img

جب پیرامیٹر کو منتقل کر دیاexchange.GetPositions()تقریب ایک خالی تار ہے ، تمام U پر مبنی معاہدوں کی پوزیشن کے اعداد و شمار حاصل کیا جا سکتا ہے. یہ آسان نہیں ہے؟

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) بی ٹی سی پر یو ایس ڈی ٹی مارجن والے مستقل معاہدوں کے لئے تمام غیرمعمولی احکامات کی انکوائری کریں۔
  • تبادلہ.GetOrders("") تبادلہ کے موجودہ طول و عرض میں تمام نامکمل احکامات کی انکوائری (تبادلہ API انٹرفیس طول و عرض کے مطابق تقسیم) ۔

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", ""]) {
        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) +  "`")
}

img

جب کوئی پیرامیٹر منتقل نہیں کیا جاتا ہے تو ، ڈیفالٹ درخواست موجودہ BTC_USDT ٹریڈنگ جوڑی اور سواپ دائمی معاہدے کے تمام غیر مکمل زیر التواء احکامات کے لئے ہے۔

img

جبETH_USDT.swapپیرامیٹر کی وضاحت کی گئی ہے تو، ETH_USDT ٹریڈنگ جوڑی کے مستقل معاہدے کے تمام زیر التواء احکامات کی درخواست کی جاتی ہے۔

img

جب ایک خالی تار""منظور کیا جاتا ہے، تمام USDT مارجن والے معاہدوں کے تمام غیر مکمل احکامات کی درخواست کی جاتی ہے۔

اپ ڈیٹ تبادلہ.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.

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

ٹکر کی ساخت

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

آرڈر ڈھانچہ

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

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

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

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

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

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

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

کے کھیتوں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)
}

مزید