वर्तमान में सेट ट्रेडिंग जोड़ी, अनुबंध कोड, यानी के-लाइन डेटा के अनुरूप स्पॉट या अनुबंध की {@struct/Record Record} संरचना सरणी प्राप्त करें.
..exchange.GetRecords()
function {@struct/Record Record} संरचनाओं की एक सरणी लौटाता है जब डेटा के लिए अनुरोध सफल होता है, और यह डेटा के लिए अनुरोध विफल होने पर शून्य मान लौटाता है.
{@struct/Record Record} सरणी, शून्य मान
विनिमय.GetRecords() विनिमय.GetRecords ((प्रतीक) exchange.GetRecords ((प्रतीक, बिंदु) exchange.GetRecords ((प्रतीक, अवधि, सीमा) विनिमय.GetRecords (अवधि) exchange.GetRecords (अवधि, सीमा)
पैरामीटरsymbol
{@struct/Record Record} सरणी डेटा के अनुरूप विशिष्ट ट्रेडिंग जोड़ी और अनुबंध कोड निर्दिष्ट करने के लिए प्रयोग किया जाता है। यदि यह पैरामीटर पारित नहीं किया जाता है, तो वर्तमान में सेट ट्रेडिंग जोड़ी और अनुबंध कोड के के-लाइन डेटा का डिफ़ॉल्ट रूप से अनुरोध किया जाएगा।exchange.GetRecords(symbol)
कार्य,exchange
स्पॉट एक्सचेंज ऑब्जेक्ट है। यदि आपको USDT के रूप में मुद्रा और BTC के रूप में लेनदेन मुद्रा के साथ डेटा प्राप्त करने के लिए अनुरोध करने की आवश्यकता है, तो पैरामीटरsymbol
है:"BTC_USDT"
, और प्रारूप एफएमजेड प्लेटफॉर्म द्वारा परिभाषित ट्रेडिंग जोड़ी प्रारूप है।exchange.GetRecords(symbol)
कार्य,exchange
वायदा विनिमय वस्तु है. यदि आप BTCsymbol
है:"BTC_USDT.swap"
, और प्रारूपव्यापारिक जोड़ीऔरअनुबंध कोडFMZ प्लेटफॉर्म द्वारा परिभाषित, वर्ण द्वारा अलग exchange.GetRecords(symbol)
कार्य,exchange
वायदा विनिमय वस्तु है. यदि आप BTCsymbol
है:"BTC_USDT.BTC-240108-40000-C"
(उदाहरण के लिए बिनेंस विकल्प BTC-240108-40000-C लेते हुए), प्रारूपव्यापारिक जोड़ीएफएमजेड प्लेटफॉर्म द्वारा परिभाषित और एक्सचेंज द्वारा परिभाषित विशिष्ट विकल्प अनुबंध कोड, जो वर्ण period
अनुरोधित K-लाइन डेटा की अवधि निर्दिष्ट करता है, उदाहरण के लिएः {@var/PERIOD/PERIOD_M1 PERIOD_M1}, {@var/PERIOD/PERIOD_M5 PERIOD_M5}, {@var/PERIOD/PERIOD_M15 PERIOD_M15} आदि। पैरामीटर का मानperiod
परिभाषित मानक अवधि को ही नहीं, बल्कि सेकंड में पूर्णांक मानों को भी पारित किया जा सकता है। यदि यह पैरामीटर पारित नहीं किया जाता है, तो डिफ़ॉल्ट रूप से अनुरोधित K-लाइन डेटा की अवधि वर्तमान रणनीति वास्तविक समय/बैकटेस्ट कॉन्फ़िगरेशन की डिफ़ॉल्ट K-लाइन अवधि है।
अवधि
झूठी
संख्या
पैरामीटरlimit
अनुरोधित के-लाइन डेटा की लंबाई निर्दिष्ट करने के लिए प्रयोग किया जाता है. यदि यह पैरामीटर पारित नहीं किया जाता है, तो डिफ़ॉल्ट अनुरोध लंबाई एक्सचेंज के-लाइन इंटरफ़ेस के समय अनुरोधित के-लाइन बार की अधिकतम संख्या है. यह पैरामीटर एक्सचेंज के-लाइन डेटा से पूछताछ करने के लिए पेजिंग का कारण बन सकता है, और पेजिंग क्वेरी के दौरान फ़ंक्शन कॉल की समय खपत बढ़ जाएगी.
सीमा
झूठी
संख्या
function main() {
// Print K-line data with a K-line period of 120 seconds (2 minutes)
Log(exchange.GetRecords(60 * 2))
// Print K-line data with a K-line period of 5 minutes
Log(exchange.GetRecords(PERIOD_M5))
}
def main():
Log(exchange.GetRecords(60 * 2))
Log(exchange.GetRecords(PERIOD_M5))
void main() {
Log(exchange.GetRecords(60 * 2)[0]);
Log(exchange.GetRecords(PERIOD_M5)[0]);
}
कस्टम अवधि के लिए के-लाइन डेटा प्राप्त करें।
function main() {
var records = exchange.GetRecords(PERIOD_H1)
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, records is null. When accessing records[0].Time, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
*/
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High)
Log("The second k-line data is Time:", records[1].Time ,"Close:", records[1].Close)
Log("Current K-line (latest)", records[records.length-1], "Previous K-line", records[records.length-2])
}
def main():
records = exchange.GetRecords(PERIOD_H1)
Log("The first k-line data is Time:", records[0]["Time"], "Open:", records[0]["Open"], "High:", records[0]["High"])
Log("The second k-line data Time:", records[1]["Time"], "Close:", records[1]["Close"])
Log("Current K-line (latest)", records[-1], "Previous K-line", records[-2])
void main() {
auto records = exchange.GetRecords(PERIOD_H1);
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High);
Log("The second k-line data Time:", records[1].Time, "Close:", records[1].Close);
Log("Current K-line (latest)", records[records.size() - 1], "Previous K-line", records[records.size() - 2]);
}
आउटपुट K-लाइन बार डेटाः
function main() {
var records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
}
def main():
records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
void main() {
auto records = exchange.GetRecords("BTC_USDT.swap", 60, 100);
Log(records);
}
जब विन्यस्तexchange
वस्तु एक वायदा विनिमय वस्तु है, का उपयोग करेंsymbol
, period
, औरlimit
किसी विशिष्ट उत्पाद (भविष्य के उत्पाद) के के-लाइन डेटा की मांग करने के लिए मापदंड।
डिफ़ॉल्ट के-लाइन अवधि बैकटेस्ट और वास्तविक व्यापार पृष्ठों में सेट किया जा सकता है.exchange.GetRecords()
फ़ंक्शन, उस पैरामीटर अवधि के अनुरूप K-लाइन डेटा प्राप्त किया जाएगा. यदि कोई पैरामीटर फ़ंक्शन बुलाया जाता है जब निर्दिष्ट नहीं है, संबंधित K-लाइन डेटा बैकटेस्ट और वास्तविक बाजार मापदंडों में सेट K-लाइन अवधि के अनुसार लौटाया जाएगा.
रिटर्न मान के एक सरणी हैRecord
संरचनाओं, लौटाए गए K-लाइन डेटा समय के साथ जमा हो जाएगा, संचित K-लाइन सलाखों की ऊपरी सीमाexchange.SetMaxBarLen()
फ़ंक्शन सेटिंग. डिफ़ॉल्ट सीमा 5000 बार है जब यह सेट नहीं है. जब K-लाइन डेटा K-लाइन बार संचय सीमा तक पहुंचता है, तो इसे K-लाइन बार जोड़कर और सबसे पहले K-लाइन बार (जैसे कतार में / बाहर) को हटाकर अपडेट किया जाएगा। कुछ एक्सचेंजों में K-लाइन इंटरफ़ेस प्रदान नहीं किया जाता है, इसलिए डॉकर बाजार लेनदेन रिकॉर्ड डेटा एकत्र करता है (Trade
संरचित सरणी) वास्तविक समय में K-रेखा उत्पन्न करने के लिए।
यदि एक्सचेंज के के-लाइन इंटरफ़ेस पेजिंग क्वेरी का समर्थन करता है, तो कई एपीआई अनुरोध किए जाएंगे जब कॉल किया जाएगाexchange.SetMaxBarLen()
एक बड़ी K-लाइन लंबाई सेट करने के लिए समारोह.
जबexchange.GetRecords()
यदि प्रारंभ में फ़ंक्शन को बुलाया जाता है, तो प्राप्त K-लाइन बार की संख्या बैकटेस्टिंग और वास्तविक ट्रेडिंग के बीच भिन्न होती हैः - बैकटेस्टिंग सिस्टम बैकटेस्टिंग समय सीमा की शुरुआत से पहले एक निश्चित संख्या में K-लाइन बार प्राप्त करेगा (डिफ़ॉल्ट 5000 है, बैकटेस्टिंग सिस्टम की सेटिंग्स और डेटा की मात्रा अंतिम संख्या को प्रभावित करेगी), प्रारंभिक K-लाइन डेटा के रूप में। - वास्तविक ट्रेडिंग के दौरान प्राप्त K-लाइन बार की संख्या एक्सचेंज के K-लाइन इंटरफ़ेस से प्राप्त किए जा सकने वाले डेटा की अधिकतम मात्रा पर आधारित है।
दperiod
पैरामीटर 5 पर सेट है, जो 5 सेकंड की अवधि के साथ K-लाइन डेटा प्राप्त करने के लिए एक अनुरोध है।period
पैरामीटर 60 से विभाजित नहीं है (यानी, प्रतिनिधित्व की गई अवधि मिनटों से विभाजित नहीं है) ।exchange.GetTrades()
लेन-देन रिकॉर्ड डेटा प्राप्त करने और आवश्यक के-लाइन डेटा को संश्लेषित करने के लिए।period
पैरामीटर 60 से विभाजित है, तो आवश्यक K-लाइन डेटा कम से कम 1 मिनट के K-लाइन डेटा का उपयोग करके संश्लेषित किया जाता है (यदि संभव हो, तो आवश्यक K-लाइन डेटा को एक बड़ी अवधि का उपयोग करके संश्लेषित किया जाता है) ।
बैकटेस्टिंग प्रणाली में अनुकरणीय स्तर बैकटेस्टिंग के लिए अंतर्निहित के-लाइन अवधि की सेटिंग की आवश्यकता होती है (जब बैकटेस्टिंग प्रणाली स्तर बैकटेस्टिंग का अनुकरण करती है, तो संबंधित के-लाइन डेटा का उपयोग सेट अंतर्निहित के-लाइन अवधि के अनुसार टिक डेटा उत्पन्न करने के लिए किया जाता है) । यह ध्यान दिया जाना चाहिए कि रणनीति में प्राप्त के-लाइन डेटा की अवधि अंतर्निहित के-लाइन अवधि से कम नहीं होनी चाहिए। क्योंकि सिमुलेशन स्तर बैकटेस्टिंग में, बैकटेस्टिंग प्रणाली में प्रत्येक अवधि के के-लाइन डेटा को अंतर्निहित के-लाइन अवधि के के-लाइन डेटा से संश्लेषित किया जाता है।
दC++
भाषा में निम्न कोड उदाहरण है यदि आपको अपने स्वयं के K-लाइन डेटा का निर्माण करने की आवश्यकता है:
#include <sstream>
void main() {
Records r;
r.Valid = true;
for (auto i = 0; i < 10; i++) {
Record ele;
ele.Time = i * 100000;
ele.High = i * 10000;
ele.Low = i * 1000;
ele.Close = i * 100;
ele.Open = i * 10;
ele.Volume = i * 1;
r.push_back(ele);
}
// Output display: Records[10]
Log(r);
auto ma = TA.MA(r,10);
// Output display: [nan,nan,nan,nan,nan,nan,nan,nan,nan,450]
Log(ma);
}
एक्सचेंजों जो समर्थन नहीं करते हैंexchange.GetRecords()
कार्य:
फ़ंक्शन का नाम | असमर्थित स्पॉट एक्सचेंज | बिना समर्थन वाले फ्यूचर्स एक्सचेंज |
---|---|---|
GetRecords | Zaif / Coincheck / BitFlyer | फ्यूचर्स_एवो |
{@fun/Market/exchange.GetTicker exchange.GetTicker}, {@fun/Market/exchange.GetDepth exchange.GetDepth}, {@fun/Market/exchange.GetTrades exchange.GetTrades}, {@fun/Market/exchange.SetMaxBarLen exchange.SetMaxBarLen}
exchange.GetTrades exchange.GetPeriod