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

اپنی مرضی کے مطابق ڈیٹا ماخذ

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

پیرامیٹر معنی وضاحت
علامت علامت کا نام اسپاٹ مارکیٹ کے اعداد و شمار، جیسے:BTC_USDT، فیوچر مارکیٹ کے اعداد و شمار جیسے:BTC_USDT.swap، فیوچر پرپک معاہدے کی فنڈنگ کی شرح کے اعداد و شمار، جیسے:BTC_USDT.funding، فیوچر پرپکوٹ معاہدوں کی قیمت انڈیکس کے اعداد و شمار جیسے:BTC_USDT.index
ایڈ تبادلہ جیسے OKX، Futures_OKX
گول اعداد و شمار کی درستگی سچ کا مطلب یہ ہے کہ کسٹم ڈیٹا ماخذ کے ذریعہ واپس آنے والے اعداد و شمار میں مخصوص صحت سے متعلق وضاحت کی گئی ہے۔ کسٹم ڈیٹا ماخذ کو ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم بیک ٹیسٹنگ سسٹم کے ذریعہ بھیجے گئے درخواست کو اس طرح طے کیا گیا ہے:round=true
مدت K لائن ڈیٹا پیریڈ (ملسی سیکنڈ) جیسے:60000ایک منٹ کی مدت ہے
گہرائی گہرائی کی سطحیں 1-20
تجارت ڈیٹا کو تقسیم کرنے کی ضرورت ہے true ((1) / false ((0)
سے آغاز کا وقت یونکس ٹائم اسٹیمپ
کرنے کے لئے اختتام کا وقت یونکس ٹائم اسٹیمپ
تفصیل علامت کی تفصیلات کے لئے درخواست کے اعداد و شمار سچ کا مطلب ہے کہ اسے کسٹم ڈیٹا ماخذ کے ذریعہ فراہم کرنے کی ضرورت ہے۔ کسٹم ڈیٹا ماخذ کو ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم بیک ٹیسٹنگ سسٹم کے ذریعہ بھیجے گئے درخواست کو اس طرح طے کیا گیا ہے:detail=true
رسم اس پیرامیٹر کو نظر انداز کیا جا سکتا ہے

جب اسپاٹ ایکسچینج اور فیوچر ایکسچینج آبجیکٹ کا ڈیٹا ماخذ اپنی مرضی کے مطابق ڈیٹا ماخذ (فیڈر) پر مقرر کیا جاتا ہے تو ، بیک ٹسٹنگ سسٹم اپنی مرضی کے مطابق ڈیٹا ماخذ سروس کو ایک درخواست بھیجتا ہے:

http://customserver:9090/data?custom=0&depth=20&detail=true&eid=Bitget&from=1351641600&period=86400000&round=true&symbol=BTC_USDT&to=1611244800&trades=1
http://customserver:9090/data?custom=0&depth=20&detail=true&eid=Futures_OKX&from=1351641600&period=86400000&round=true&symbol=BTC_USDT.swap&to=1611244800&trades=1

ڈیٹا فارمیٹ

واپسی کی شکل مندرجہ ذیل دو فارمیٹس میں سے ایک ہونا ضروری ہے (جو نظام کی طرف سے خود کار طریقے سے تسلیم کیا جائے گا):

  • تخروپن کی سطح Tick، مندرجہ ذیل JSON ڈیٹا کا ایک مثال ہے:

    {
        "detail": {
            "eid": "Binance",
            "symbol": "BTC_USDT",
            "alias": "BTCUSDT",
            "baseCurrency": "BTC",
            "quoteCurrency": "USDT",
            "marginCurrency": "USDT",
            "basePrecision": 5,
            "quotePrecision": 2,
            "minQty": 0.00001,
            "maxQty": 9000,
            "minNotional": 5,
            "maxNotional": 9000000,
            "priceTick": 0.01,
            "volumeTick": 0.00001,
            "marginLevel": 10
        },
        "schema":["time", "open", "high", "low", "close", "vol"],
        "data":[
            [1564315200000, 9531300, 9531300, 9497060, 9497060, 787],
            [1564316100000, 9495160, 9495160, 9474260, 9489460, 338]
        ]
    }
    
  • روبوٹ کی سطح کی جانچ پڑتال کریں، مندرجہ ذیل JSON ڈیٹا کا ایک مثال ہے: ٹِک لیول بیک ٹسٹ ڈیٹا (مارکیٹ کی گہرائی کے بارے میں معلومات پر مشتمل ہے، اور گہرائی کا فارمیٹ[price, volume]اس میں گہرائی کی متعدد سطحیں ہوسکتی ہیں،asksقیمتوں میں اضافے کے حکم کے لئےbidsقیمت میں کمی کے لئے) ۔

    {
        "detail": {
            "eid": "Binance",
            "symbol": "BTC_USDT",
            "alias": "BTCUSDT",
            "baseCurrency": "BTC",
            "quoteCurrency": "USDT",
            "marginCurrency": "USDT",
            "basePrecision": 5,
            "quotePrecision": 2,
            "minQty": 0.00001,
            "maxQty": 9000,
            "minNotional": 5,
            "maxNotional": 9000000,
            "priceTick": 0.01,
            "volumeTick": 0.00001,
            "marginLevel": 10
        },
        "schema":["time", "asks", "bids", "trades", "close", "vol"],
        "data":[
            [1564315200000, [[9531300, 10]], [[9531300, 10]], [[1564315200000, 0, 9531300, 10]], 9497060, 787],
            [1564316100000, [[9531300, 10]], [[9531300, 10]], [[1564316100000, 0, 9531300, 10]], 9497060, 787]
        ]
    }
    
میدان تفصیل
تفصیل درخواست کردہ ڈیٹا کی قسم کے بارے میں تفصیلی معلومات،

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

تفصیلات کا میدان

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

backtest نظام فنڈنگ کی شرح اور قیمت انڈیکس بھیجنے کے لئے جاری رہے گی درخواستیں.

کالم کے خصوصی صفاتasks, bids, trades:

میدان تفصیل تبصرے
پوچھتا / بولی دیتا ہے [قیمت، حجم،...] مثال کے طور پر،

کےLive Trading Level Tickاعداد و شمار کی مثال:[[9531300, 10]]∙∙ ♪ تجارت ♪ ♪ وقت، سمت، قیمت، حجم،... ♪ مثال کے طور پر، ڈیٹا میںLive Trading Level Tickاعداد و شمار کی مثال:[[1564315200000, 0, 9531300, 10]] |

مستقبل کے تبادلے پر ہمیشہ کے لئے معاہدوں backtesting جب، اپنی مرضی کے مطابق اعداد و شمار کے ذرائع کو بھی اضافی فنڈنگ کی شرح کے اعداد و شمار اور قیمت کی ضرورت ہوتی ہے انڈیکس ڈیٹا۔ بیک ٹیسٹنگ سسٹم درخواستیں بھیجتا رہے گا فنڈنگ کی شرحوں کے لئے صرف جب مطلوبہ مارکیٹ کے اعداد و شمار واپس کیے جائیں اور واپسی کی ساخت میں تفصیلات کے میدان میں مشتمل ہے"contractType": "swap"کلیدی قدر کی جوڑی.

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

فنڈنگ کی شرح کے اعداد و شمار کی ساخت مندرجہ ذیل ہے:

{
    "detail": {
        "eid": "Futures_Binance",
        "symbol": "BTC_USDT.funding",
        "alias": "BTC_USDT.funding",
        "baseCurrency": "BTC",
        "quoteCurrency": "USDT",
        "marginCurrency": "",
        "basePrecision": 8,
        "quotePrecision": 8,
        "minQty": 1,
        "maxQty": 10000,
        "minNotional": 1,
        "maxNotional": 100000000,
        "priceTick": 1e-8,
        "volumeTick": 1e-8,
        "marginLevel": 10
    },
    "schema": [
        "time",
        "open",
        "high",
        "low",
        "close",
        "vol"
    ],
    "data": [
        [
            1584921600000,
            -16795,
            -16795,
            -16795,
            -16795,
            0
        ],
        [
            1584950400000,
            -16294,
            -16294,
            -16294,
            -16294,
            0
        ]
        // ...
    ]
}
  • ملحقہ ادوار کے درمیان وقفہ 8 گھنٹے ہے
  • مثال کے طور پر، بائننس کی فنڈنگ کی شرح ہر 8 گھنٹے میں اپ ڈیٹ کی جاتی ہے۔ کیوں؟ کیا فنڈنگ کی شرح کے اعداد و شمار -16795 ہیں؟ کیونکہ K لائن کے اعداد و شمار کی طرح ، نیٹ ورک ٹرانسمیشن کے دوران فلوٹنگ پوائنٹ کی درستگی کے نقصان سے بچنے کے لئے ، اعداد و شمار عددی قسم کا استعمال کرتے ہیں۔ فنڈنگ کی شرح کے اعداد و شمار بھی منفی ہوسکتے ہیں۔

بیک ٹسٹنگ سے فنڈنگ کی شرح کے اعداد و شمار کی درخواست کا ایک مثال نظام یہ ہے:

http://customserver:9090/data?custom=0&depth=20&detail=true&eid=Futures_Binance&from=1351641600&period=86400000&round=true&symbol=BTC_USDT.funding&to=1611244800&trades=0

قیمت انڈیکس کے اعداد و شمار کی ساخت مندرجہ ذیل ہے:


{
    "detail": {
        "eid": "Futures_Binance",
        "symbol": "BTC_USDT.index",
        "alias": "BTCUSDT",
        "baseCurrency": "BTC",
        "quoteCurrency": "USDT",
        "contractType": "index",
        "marginCurrency": "USDT",
        "basePrecision": 3,
        "quotePrecision": 1,
        "minQty": 0.001,
        "maxQty": 1000,
        "minNotional": 0,
        "maxNotional": 1.7976931348623157e+308,
        "priceTick": 0.1,
        "volumeTick": 0.001,
        "marginLevel": 10,
        "volumeMultiple": 1
    },
    "schema": [
        "time",
        "open",
        "high",
        "low",
        "close",
        "vol"
    ],
    "data": [
        [1584921600000, 58172, 59167, 56902, 58962, 0],
        [1584922500000, 58975, 59428, 58581, 59154, 0],
        // ...
    ]
}

بیک ٹسٹنگ کے ذریعہ بھیجے گئے قیمت انڈیکس ڈیٹا کی درخواست کا ایک مثال نظام یہ ہے:

http://customserver:9090/data?custom=0&depth=20&detail=true&eid=Futures_Binance&from=1351641600&period=86400000&round=true&symbol=BTC_USDT.index&to=1611244800&trades=0

اپنی مرضی کے مطابق ڈیٹا ماخذ کا مثال

ڈیٹا ماخذ کا پتہ بتائیں، مثلاً،http://120.24.2.20:9090/dataاپنی مرضی کے مطابق ڈیٹا ماخذ سروس پروگرام کا استعمال کرتے ہوئے لکھا جاتا ہےGolang:

package main

import (
    "fmt"
    "net/http"
    "encoding/json"
)

func Handle (w http.ResponseWriter, r *http.Request) {
    // e.g. set on backtest DataSourse: http://xxx.xx.x.xx:9090/data

    // request: GET http://xxx.xx.x.xx:9090/data?custom=0&depth=20&detail=true&eid=OKX&from=1584921600&period=86400000&round=true&symbol=BTC_USDT&to=1611244800&trades=1
    //              http://xxx.xx.x.xx:9090/data?custom=0&depth=20&detail=true&eid=Futures_Binance&from=1599958800&period=3600000&round=true&symbol=BTC_USDT.swap&to=1611244800&trades=0
    fmt.Println("request:", r)

    // response
    defer func() {
        // response data
        /* e.g. data
        {
            "detail": {
                "eid": "Binance",
                "symbol": "BTC_USDT",
                "alias": "BTCUSDT",
                "baseCurrency": "BTC",
                "quoteCurrency": "USDT",
                "marginCurrency": "USDT",
                "basePrecision": 5,
                "quotePrecision": 2,
                "minQty": 0.00001,
                "maxQty": 9000,
                "minNotional": 5,
                "maxNotional": 9000000,
                "priceTick": 0.01,
                "volumeTick": 0.00001,
                "marginLevel": 10
            },
            "schema": [
                "time",
                "open",
                "high",
                "low",
                "close",
                "vol"
            ],
            "data": [
                [1610755200000, 3673743, 3795000, 3535780, 3599498, 8634843151],
                [1610841600000, 3599498, 3685250, 3385000, 3582861, 8015772738],
                [1610928000000, 3582499, 3746983, 3480000, 3663127, 7069811875],
                [1611014400000, 3662246, 3785000, 3584406, 3589149, 7961130777],
                [1611100800000, 3590194, 3641531, 3340000, 3546823, 8936842292],
                [1611187200000, 3546823, 3560000, 3007100, 3085013, 13500407666],
                [1611273600000, 3085199, 3382653, 2885000, 3294517, 14297168405],
                [1611360000000, 3295000, 3345600, 3139016, 3207800, 6459528768],
                [1611446400000, 3207800, 3307100, 3090000, 3225990, 5797803797],
                [1611532800000, 3225945, 3487500, 3191000, 3225420, 8849922692]
            ]
        }
        */
        
        // /* Simulation level Tick
        ret := map[string]interface{}{
            "detail": map[string]interface{}{
                "eid": "Binance",
                "symbol": "BTC_USDT",
                "alias": "BTCUSDT",
                "baseCurrency": "BTC",
                "quoteCurrency": "USDT",
                "marginCurrency": "USDT",
                "basePrecision": 5,
                "quotePrecision": 2,
                "minQty": 0.00001,
                "maxQty": 9000,
                "minNotional": 5,
                "maxNotional": 9000000,
                "priceTick": 0.01,
                "volumeTick": 0.00001,
                "marginLevel": 10,
            },
            "schema": []string{"time","open","high","low","close","vol"},
            "data": []interface{}{
                []int64{1610755200000, 3673743, 3795000, 3535780, 3599498, 8634843151},  // 1610755200000 : 2021-01-16 08:00:00
                []int64{1610841600000, 3599498, 3685250, 3385000, 3582861, 8015772738},  // 1610841600000 : 2021-01-17 08:00:00
                []int64{1610928000000, 3582499, 3746983, 3480000, 3663127, 7069811875},
                []int64{1611014400000, 3662246, 3785000, 3584406, 3589149, 7961130777},
                []int64{1611100800000, 3590194, 3641531, 3340000, 3546823, 8936842292},
                []int64{1611187200000, 3546823, 3560000, 3007100, 3085013, 13500407666},
                []int64{1611273600000, 3085199, 3382653, 2885000, 3294517, 14297168405},
                []int64{1611360000000, 3295000, 3345600, 3139016, 3207800, 6459528768},
                []int64{1611446400000, 3207800, 3307100, 3090000, 3225990, 5797803797},
                []int64{1611532800000, 3225945, 3487500, 3191000, 3225420, 8849922692},
            },
        }
        // */

        /* Bot level Tick
        ret := map[string]interface{}{
            "detail": map[string]interface{}{
                "eid": "Binance",
                "symbol": "BTC_USDT",
                "alias": "BTCUSDT",
                "baseCurrency": "BTC",
                "quoteCurrency": "USDT",
                "marginCurrency": "USDT",
                "basePrecision": 5,
                "quotePrecision": 2,
                "minQty": 0.00001,
                "maxQty": 9000,
                "minNotional": 5,
                "maxNotional": 9000000,
                "priceTick": 0.01,
                "volumeTick": 0.00001,
                "marginLevel": 10,
            },
            "schema": []string{"time", "asks", "bids", "trades", "close", "vol"},
            "data": []interface{}{
                []interface{}{1610755200000, []interface{}{[]int64{9531300, 10}}, []interface{}{[]int64{9531300, 10}}, []interface{}{[]int64{1610755200000, 0, 9531300, 10}}, 9497060, 787},
                []interface{}{1610841600000, []interface{}{[]int64{9531300, 15}}, []interface{}{[]int64{9531300, 15}}, []interface{}{[]int64{1610841600000, 0, 9531300, 11}}, 9497061, 789},                
            },
        }
        */

        b, _ := json.Marshal(ret)
        w.Write(b)
    }()
}
func main () {
    fmt.Println("listen http://localhost:9090")
    http.HandleFunc("/data", Handle)
    http.ListenAndServe(":9090", nil)
}

ٹیسٹ کی حکمت عملیJavaScriptمثال:

/*backtest
start: 2021-01-16 08:00:00
end: 2021-01-22 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"OKX","currency":"BTC_USDT","feeder":"http://120.24.2.20:9090/data"}]
args: [["number",2]]
*/

function main() {
    var ticker = exchange.GetTicker()
    var records = exchange.GetRecords()
    Log(exchange.GetName(), exchange.GetCurrency())
    Log(ticker)
    Log(records)
}
بیک ٹسٹ کی ترتیبات محفوظ کریں مقامی بیک ٹسٹ انجن