বর্তমান সেট ট্রেডিং জোড়া, চুক্তি কোড, অর্থাৎ কে-লাইন ডেটা অনুসারে স্পট বা চুক্তির {@struct/Record Record} কাঠামো অ্যারে পান।
দ্যexchange.GetRecords()
ফাংশন {@struct/Record Record} স্ট্রাকচারগুলির একটি অ্যারে ফেরত দেয় যখন ডেটা অনুরোধ সফল হয়, এবং এটি ডাটা অনুরোধ ব্যর্থ হলে শূন্য মান ফেরত দেয়।
{@struct/Record Record} অ্যারে, শূন্য মান
এক্সচেঞ্জ.গেট রেকর্ডস ((() exchange.GetRecords (প্রতীক) exchange.GetRecords (প্রতীক, বিন্দু) exchange.GetRecords ((প্রতীক, সময়সীমা, সীমা) এক্সচেঞ্জ.গেট রেকর্ডস (অবধি) exchange.GetRecords ((সময়সীমা, সীমা)
প্যারামিটারsymbol
{@struct/Record Record} অ্যারে ডেটার সাথে সংশ্লিষ্ট নির্দিষ্ট ট্রেডিং জোড়া এবং চুক্তি কোড নির্দিষ্ট করতে ব্যবহৃত হয়। যদি এই পরামিতিটি পাস না করা হয়, তাহলে বর্তমানে সেট করা ট্রেডিং জোড়া এবং চুক্তি কোডের কে-লাইন ডেটা ডিফল্টরূপে অনুরোধ করা হবে। যখন কল করা হয়exchange.GetRecords(symbol)
ফাংশন,exchange
যদি আপনি USDT হিসাবে নামযুক্ত মুদ্রা এবং BTC হিসাবে লেনদেন মুদ্রা সঙ্গে তথ্য পেতে অনুরোধ করতে হবে, পরামিতিsymbol
হচ্ছেঃ"BTC_USDT"
, এবং ফরম্যাট হল ট্রেডিং জোড়া ফরম্যাট যা FMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত।exchange.GetRecords(symbol)
ফাংশন,exchange
যদি আপনি BTC symbol
হচ্ছেঃ"BTC_USDT.swap"
, এবং ফরম্যাটটি হলট্রেডিং জুটিএবংচুক্তির কোডFMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত, অক্ষর দ্বারা পৃথক exchange.GetRecords(symbol)
ফাংশন,exchange
যদি আপনি BTCsymbol
হচ্ছেঃ"BTC_USDT.BTC-240108-40000-C"
(উদাহরণস্বরূপ Binance Option BTC-240108-40000-C) ফরম্যাটটি হলট্রেডিং জুটিFMZ প্ল্যাটফর্ম দ্বারা সংজ্ঞায়িত এবং এক্সচেঞ্জ দ্বারা সংজ্ঞায়িত নির্দিষ্ট বিকল্প চুক্তির কোড, অক্ষর 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]);
}
আউটপুট কে-লাইন বার ডেটাঃ
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
একটি নির্দিষ্ট পণ্যের (ভবিষ্যতের পণ্য) কে-লাইন ডেটা অনুরোধ করার জন্য পরামিতি।
ডিফল্ট K-লাইন সময়কাল ব্যাকটেস্ট এবং বাস্তব ট্রেডিং পৃষ্ঠাগুলিতে সেট করা যেতে পারে. আপনি যদি একটি পরামিতি নির্দিষ্ট যখন কলexchange.GetRecords()
ফাংশন, সেই প্যারামিটার সময়ের সাথে সম্পর্কিত কে-লাইন ডেটা প্রাপ্ত হবে। যদি ফাংশনটি কল করার সময় কোনও প্যারামিটার নির্দিষ্ট করা না হয় তবে ব্যাকটেস্ট এবং বাস্তব বাজারের প্যারামিটারে সেট করা কে-লাইন সময়ের সাথে সম্পর্কিত সম্পর্কিত কে-লাইন ডেটা ফেরত দেওয়া হবে।
রিটার্ন মান একটি অ্যারেRecord
কাঠামো, ফিরে K-লাইন তথ্য সময়ের সাথে সাথে জমা হবে, জমা K-লাইন বার উপরের সীমা দ্বারা প্রভাবিত হয়exchange.SetMaxBarLen()
ফাংশন সেটিং। ডিফল্ট সীমা 5000 বার যখন এটি সেট করা হয় না। যখন কে-লাইন ডেটা কে-লাইন বার জমে থাকা সীমাতে পৌঁছে যায়, এটি একটি কে-লাইন বার যুক্ত করে এবং প্রাথমিক কে-লাইন বারটি মুছে ফেলার মাধ্যমে আপডেট করা হবে (যেমন কিউ ইন / আউট) । কিছু এক্সচেঞ্জ একটি কে-লাইন ইন্টারফেস সরবরাহ করে না, তাই ডকার বাজার লেনদেন রেকর্ড ডেটা সংগ্রহ করে (Trade
কাঠামোগত অ্যারে) রিয়েল টাইমে K-লাইন তৈরি করতে।
যদি এক্সচেঞ্জের কে-লাইন ইন্টারফেস পেজিং ক্যোয়ারী সমর্থন করে, একাধিক এপিআই অনুরোধ করা হবে যখন কলexchange.SetMaxBarLen()
একটি বৃহত্তর কে-লাইন দৈর্ঘ্য সেট করার জন্য ফাংশন।
যখনexchange.GetRecords()
ফাংশনটি প্রাথমিকভাবে কল করা হলে, ব্যাকটেস্টিং এবং বাস্তব ট্রেডিংয়ের মধ্যে প্রাপ্ত কে-লাইন বারগুলির সংখ্যা পৃথক হয়ঃ - ব্যাকটেস্টিং সিস্টেম ব্যাকটেস্টিং সময়সীমার শুরু হওয়ার আগে একটি নির্দিষ্ট সংখ্যক কে-লাইন বারগুলি প্রাপ্ত করবে (ডিফল্টটি 5000, ব্যাকটেস্টিং সিস্টেমের সেটিংস এবং ডেটা পরিমাণটি চূড়ান্ত সংখ্যাটি প্রভাবিত করবে), প্রাথমিক কে-লাইন ডেটা হিসাবে। - প্রকৃত ট্রেডিংয়ের সময় প্রাপ্ত কে-লাইন বারগুলির সংখ্যা এক্সচেঞ্জের কে-লাইন ইন্টারফেস থেকে প্রাপ্ত করা যেতে পারে এমন সর্বোচ্চ পরিমাণের উপর ভিত্তি করে।
দ্যperiod
প্যারামিটার 5 সেট করা হয়, যা 5 সেকেন্ডের একটি সময়ের সাথে K- লাইন তথ্য পেতে একটি অনুরোধ।period
প্যারামিটারটি 60 দ্বারা বিভাজ্য নয় (যেমন, প্রতিনিধিত্ব করা সময়টি মিনিটে বিভাজ্য নয়) ।exchange.GetTrades()
লেনদেনের রেকর্ডের তথ্য সংগ্রহ এবং প্রয়োজনীয় কে-লাইন ডেটা সংকলন।period
প্যারামিটারটি ৬০ দ্বারা বিভাজ্য হলে, প্রয়োজনীয় কে-লাইন ডেটা কমপক্ষে ১ মিনিটের কে-লাইন ডেটা ব্যবহার করে সংশ্লেষণ করা হয় (যদি সম্ভব হয়, প্রয়োজনীয় কে-লাইন ডেটা বৃহত্তর সময়কাল ব্যবহার করে সংশ্লেষণ করা হয়) ।
ব্যাকটেস্টিং সিস্টেমে সিমুলেটেড লেভেল ব্যাকটেস্টিংয়ের জন্য অন্তর্নিহিত কে-লাইন সময়ের সেটিং প্রয়োজন (যখন ব্যাকটেস্টিং সিস্টেম স্তরের ব্যাকটেস্টিং সিমুলেট করে, তখন সংশ্লিষ্ট কে-লাইন ডেটা সেট অন্তর্নিহিত কে-লাইন সময়ের অনুযায়ী টিক ডেটা তৈরি করতে ব্যবহৃত হয়) । এটি লক্ষ করা উচিত যে কৌশলটিতে প্রাপ্ত কে-লাইন ডেটার সময়কাল অন্তর্নিহিত কে-লাইন সময়ের চেয়ে ছোট হওয়া উচিত নয়। কারণ সিমুলেশন স্তরের ব্যাকটেস্টিংয়ে, ব্যাকটেস্টিং সিস্টেমের প্রতিটি সময়ের কে-লাইন ডেটা অন্তর্নিহিত কে-লাইন সময়ের কে-লাইন ডেটা থেকে সংশ্লেষিত হয়।
দ্যC++
যদি আপনার নিজের কে-লাইন ডেটা তৈরি করতে হয় তাহলে এই ভাষার নিম্নলিখিত কোড উদাহরণ রয়েছেঃ
#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