ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کا بیک ٹسٹنگ سسٹم کسٹم ڈیٹا ذرائع کی حمایت کرتا ہے ، بیک ٹسٹنگ سسٹم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
]
// ...
]
}
بیک ٹسٹنگ سے فنڈنگ کی شرح کے اعداد و شمار کی درخواست کا ایک مثال نظام یہ ہے:
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)
}
بیک ٹسٹ کی ترتیبات محفوظ کریں
مقامی بیک ٹسٹ انجن