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

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

میں تخلیق کیا: 2024-06-28 09:08:29, تازہ کاری: 2024-11-01 10:08:12
comments   12
hits   2053

[TOC]

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

دیباچہ

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

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

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

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

exchange.GetTickers فنکشن

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

اگر ایکسچینج کے پاس یہ انٹرفیس نہیں ہے (انفرادی تبادلے)، کال کریں۔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
}

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

exchange.CreateOrder فنکشن

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

ملٹی ورائٹی ٹریڈنگ آرڈر کے منظرناموں اور کنکرنٹ منظرناموں میں ڈیزائن کی پیچیدگی بہت کم ہو جاتی ہے۔exchange.CreateOrder()فنکشن کے چار پیرامیٹرز ہیں۔symbolsidepriceamount

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)
}

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

یہ صرف 3 بار لیاexchange.CreateOrder()فنکشن کال مختلف اقسام اور سمتوں کے تین فیوچر آرڈر دیتا ہے۔

exchange.GetHistoryOrders فنکشن

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

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

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

اس طرح کے انٹرفیس اعلیٰ درجے کی مطابقت کے ساتھ سمیٹے ہوئے ہیں، اور اصل استعمال میں، اس بات پر توجہ دی جانی چاہیے کہ آیا وہ حکمت عملی کی ضروریات اور توقعات پر پورا اترتے ہیں۔

تفصیلی فنکشن کی تفصیل یہاں دہرائی نہیں گئی، آپ API دستاویزات میں نحوی دستی کا حوالہ دے سکتے ہیں:

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

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

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

    // 写入图表
    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) +  "`")
}

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

exchange.GetPositions فنکشن

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

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

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

  • exchange.GetPositions() جب کوئی پیرامیٹرز پاس نہیں ہوتے ہیں تو کرنٹتجارتی جوڑے / کنٹریکٹ کوڈموجودہ جہت میں تمام اقسام کے پوزیشن ڈیٹا کی درخواست کریں۔

  • exchange.GetPositions(“ETH_USDT.swap”) مخصوص پروڈکٹ کی معلومات کی وضاحت کرتے وقت (ETH_USDT.swap فارمیٹ کی FMZ پلیٹ فارم کے ذریعے وضاحت کی گئی ہے)، مخصوص پروڈکٹ کے پوزیشن ڈیٹا کی درخواست کریں۔ مثال:BTC_USD.swapETH_USDT.swapETH_USDT.quarterانتظار کرو BTC_USD.swap: BTC کا کرنسی پر مبنی دائمی معاہدہ۔ ETH_USDT.swap: ETH کا U-based مستقل معاہدہ۔ ETH_USDC.swap: ETH کے لیے USDC کے مارجنڈ دائمی معاہدہ۔ (USDT کے علاوہ، آپ مختلف quoteCurrency بھی بتا سکتے ہیں، جسے یہاں نہیں دہرایا جائے گا) ETH_USDT.quarter: ETH کا U-based سہ ماہی ترسیل کا معاہدہ۔ BTC_USD.BTC-USD-201226-24250-C: BTC سکے کے مارجنڈ آپشن کا معاہدہ۔

  • exchange.GetPositions(“USDT.swap”) مخصوص طول و عرض کی حد کے مطابق تمام علامتوں کے لیے پوزیشن ڈیٹا کی درخواست کریں۔ USDT.swap: U-based دائمی معاہدے کی حد۔ USDT.futures: U-based ترسیل کے معاہدوں کی حد۔ USDC.swap: USDC-حاشیہ دائمی معاہدے کی حد۔ (USDT کے علاوہ، آپ مختلف quoteCurrency بھی بتا سکتے ہیں، جسے یہاں نہیں دہرایا جائے گا) USDC.futures: USDC کے مارجنڈ فیوچر معاہدوں کی حد۔ USD.swap: کرنسی پر مبنی دائمی معاہدے کی حد۔ USD.futures: کرنسی پر مبنی مستقبل کے معاہدوں کی حد۔ USDT.option: U-based آپشن معاہدہ کی حد۔ USD.option: کرنسی پر مبنی اختیار کے معاہدے کی حد۔

کچھ خصوصی تبادلے کے معاہدے کے طول و عرض کی تقسیم: USDT.futures_combo: Futures_Deribit ایکسچینج کا CFD مجموعہ۔ USD.futures_ff:Futures_Craken ایکسچینج کا مخلوط مارجن ڈیلیوری معاہدہ۔ USD.swap_pf: کریکن ایکسچینج پر فیوچرز_ایک ہائبرڈ مارجن مستقل معاہدہ۔

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

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

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

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

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

exchange.GetFundings فنکشن

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

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

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

exchange.GetTicker فنکشن

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

پیرامیٹرsymbolاشیاء کے تبادلے کے لیےexchangeسپاٹ/مستقبل کے لیے مختلف فارمیٹس ہیں:

  • اسپاٹ ایکسچینج آبجیکٹ شکل یہ ہے:AAA_BBBAAA بیس کرنسی کی نمائندگی کرتا ہے، یعنی لین دین کی کرنسی، اور BBB quoteCurrency کی نمائندگی کرتا ہے، یعنی قیمت کا تعین کرنے والی کرنسی۔ کرنسی کے نام تمام بڑے حروف میں ہیں۔ مثال کے طور پر: BTC_USDT سپاٹ ٹریڈنگ جوڑی۔
  • فیوچر ایکسچینج آبجیکٹ شکل یہ ہے:AAA_BBB.XXX، AAA بیس کرنسی کی نمائندگی کرتا ہے، یعنی لین دین کی کرنسی، BBB quoteCurrency کی نمائندگی کرتا ہے، یعنی قیمتوں کا تعین کرنے والی کرنسی، اور XXX معاہدے کے کوڈ کی نمائندگی کرتا ہے، جیسے دائمی معاہدے کی تبدیلی۔ کرنسی کے نام سبھی بڑے حروف میں ہیں اور کنٹریکٹ کوڈ چھوٹے حروف میں ہیں۔ مثال کے طور پر: BTC_USDT.swap، BTC کا U-based مستقل معاہدہ۔

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

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
}

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

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

exchange.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"))
}

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

exchange.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) +  "`")
}

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

یہ اپ گریڈ کے ساتھ بھی مطابقت رکھتا ہے۔exchange.Go()جب فنکشن پلیٹ فارم API انٹرفیس کو بیک وقت کال کرتا ہے، تو پروڈکٹ کی معلومات کی وضاحت کرنے کے لیے علامت پیرامیٹر کو پاس کیا جاتا ہے۔

exchange.GetRecords فنکشن

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

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

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

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

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相邻Bar时间差值:", r1[1].Time - r1[0].Time, "毫秒, Bar长度:", r1.length)
    Log("r2相邻Bar时间差值:", r2[1].Time - r2[0].Time, "毫秒, Bar长度:", r2.length)
    Log("r3相邻Bar时间差值:", r3[1].Time - r3[0].Time, "毫秒, Bar长度:", r3.length)
    Log("r4相邻Bar时间差值:", r4[1].Time - r4[0].Time, "毫秒, Bar长度:", r4.length)
    Log("r5相邻Bar时间差值:", r5[1].Time - r5[0].Time, "毫秒, Bar长度:", r5.length)
}

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

exchange.GetOrders فنکشن

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

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

  • exchange.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”) USDT کے حاشیہ دار دائمی معاہدے کی حد میں تمام اقسام کے تمام نامکمل آرڈرز (پینڈنگ آرڈرز) کی درخواست کرتا ہے۔

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

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

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

    // 写入图表
    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"USDT کے مارجنڈ دائمی معاہدوں کے تمام بقایا آرڈرز (پینڈنگ آرڈرز) کی درخواست کریں۔

exchange.GetPosition فنکشن

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

exchange.IO فنکشن

کے لیےexchange.IO("api", ...)فنکشن کالنگ کے طریقہ کار کو اپ گریڈ کیا گیا ہے تاکہ تمام ایکسچینج اشیاء کے لیے مکمل درخواست ایڈریس کو براہ راست پاس کرنے میں مدد ملے۔

مثال کے طور پر، اگر آپ OKX انٹرفیس کو کال کرنا چاہتے ہیں:

GET https://www.okx.com /api/v5/account/max-withdrawal ccy: BTC

بیس ایڈریس پر براہ راست لکھنے کی حمایت کریں۔https://www.okx.comIO فنکشن کو کال کرنے سے پہلے بیس ایڈریس کو تبدیل کرنے کی ضرورت نہیں ہے۔

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

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

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

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

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

exchange.GetOrder فنکشن

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

مثال کے طور پر:

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

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

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

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

exchange.CancelOrder فنکشن

یہ اپ گریڈ کے لیے ہے۔exchange.CancelOrder()افعال کا اثر اورexchange.GetOrder()افعال ایک جیسے ہیں۔

exchange.buy تقریب

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

exchange.Sell فنکشن

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

exchange.GetPosition فنکشن

صرف فیوچر ایکسچینج اشیاء اس فنکشن کو سپورٹ کرتی ہیں۔

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

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

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

exchange.GetPosition() // 等价于调用 exchange.GetPosition("USDT.swap")

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

exchange.GetOrders فنکشن

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

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

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

  1. فیوچر ایکسچینج کے لیے:

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

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

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

exchange.GetOrders()   // 等价于调用 exchange.GetOrders("USD.futures")

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

4. ساختی ایڈجسٹمنٹ

ٹکر کا ڈھانچہ

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

ترتیب کا ڈھانچہ

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

پوزیشن کا ڈھانچہ

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

فنڈنگ ​​کا ڈھانچہ

GetFundings فنکشن فنڈنگ ​​ڈھانچے کی ایک صف کو لوٹاتا ہے۔

{
    "Info": {...},               // 交易所资金费率接口原始应答数据
    "Symbol": "BTC_USDT.swap",   // FMZ平台定义的品种名称
    "Interval": 28800000,        // 8小时间隔,单位毫秒
    "Time": 1729728000000,       // 本期资金费率收取时间
    "Rate": 0.0001,              // 资金费率,即 0.01 %
}

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

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

پلیٹ فارم کی حکمت عملی API انٹرفیس اپ گریڈ کے مطابق، پلیٹ فارم کے بیک ٹیسٹنگ سسٹم میں API انٹرفیس کو ہم وقت سازی کے ساتھ اپ ڈیٹ کیا گیا ہے، اس کے علاوہ، بیک ٹیسٹنگ سسٹم نے اس کے لیے تعاون شامل کیا ہے:

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

سپلیمنٹری اپڈیٹس

1. اکاؤنٹ کے ڈھانچے میں ایکویٹی اور UPnL فیلڈز کو شامل کیا گیا۔

فیوچر ایکسچینج آبجیکٹ کے ممبر کے افعالGetAccountواپسیAccountڈھانچے کو کھیتوں کے ساتھ بڑھا دیا گیا ہے۔

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

2. SetMarginLevel فنکشن علامت پیرامیٹر سپورٹ کو اپ گریڈ کرتا ہے۔

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

ٹیسٹ کی مثال:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    // 当前交易对为ETH_USDT,合约代码为swap,设置杠杆值为10
    exchange.SetMarginLevel(10)
    
    // 直接指定交易对BTC_USDT,合约代码swap,设置杠杆值20
    exchange.SetMarginLevel("BTC_USDT.swap", 20)
}

3. GetMarkets فنکشن کے ذریعے واپس کیے گئے مارکیٹ کے ڈھانچے میں CtValCcy فیلڈ شامل کریں۔

  • فیلڈزCtValCcyکسی معاہدے کی قدر کی اکائی کو ریکارڈ کریں: BTC، USD، ETH، وغیرہ۔
  • فیلڈزCtValاس ٹریڈنگ پروڈکٹ کے ایک معاہدے کی قیمت کو ایکسچینج پر، کی اکائیوں میں ریکارڈ کریں۔CtValCcyفیلڈ ریکارڈ کی کرنسی۔ مثال کے طور پر:CtVal0.01 ہے،CtValCcy“BTC” کا مطلب ہے کہ ایک معاہدہ کی قیمت 0.01 BTC ہے۔