현재 설정된 거래 쌍, 계약 코드, 즉 K-라인 데이터에 대응하는 스팟 또는 계약의 {@struct/Record Record} 구조 배열을 얻으십시오.
이exchange.GetRecords()
function는 데이터 요청이 성공할 때 {@struct/Record Record} 구조의 배열을 반환하고, 데이터 요청이 실패할 때 null 값을 반환합니다.
{@struct/Record Record} 배열, null 값
교환.GetRecords() 교환.GetRecords (기호) exchange.GetRecords (표자, 점) exchange.GetRecords (기호, 지점, 제한) 교환.GetRecords (정기) 교환.GetRecords (기간, 제한)
매개 변수symbol
요청된 {@struct/Record Record} 배열 데이터에 대응하는 특정 거래 쌍 및 계약 코드를 지정하는 데 사용됩니다. 이 매개 변수가 전달되지 않으면 현재 설정된 거래 쌍 및 계약 코드의 K-라인 데이터가 기본적으로 요청됩니다.exchange.GetRecords(symbol)
기능exchange
즉석 교환 대상이 됩니다. USDT로 표기된 통화와 BTC로 거래 화폐로 데이터를 요청해야 하는 경우, 매개 변수symbol
이 경우:"BTC_USDT"
, 그리고 형식은 FMZ 플랫폼에 의해 정의 거래 쌍 형식입니다.exchange.GetRecords(symbol)
기능exchange
미래에셋 거래소 객체입니다. 당신이 BTC의 U-표준 영구 계약의 주문서 데이터를 요청해야 하는 경우, 매개 변수symbol
이 경우:"BTC_USDT.swap"
, 그리고 형식은거래 쌍그리고계약 코드FMZ 플랫폼에 의해 정의, 문자 exchange.GetRecords(symbol)
기능exchange
미래에셋 거래소 객체입니다. BTCsymbol
이 경우:"BTC_USDT.BTC-240108-40000-C"
(Binance 옵션 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
요청된 K-라인 데이터의 길이를 지정하는 데 사용됩니다. 이 매개 변수가 전달되지 않으면 기본 요청 길이는 교환 K-라인 인터페이스의 한 시간에 요청되는 최대 K-라인 바 수입니다. 이 매개 변수는 교환 K-라인 데이터를 검색하는 페이징을 유발할 수 있으며 페이징 질의 중에 함수 호출의 시간 소모가 증가합니다.
한계
거짓
번호
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]);
}
맞춤형 기간에 대한 K-라인 데이터를 가져와
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
특정 제품 (미래 제품) 의 K-라인 데이터를 요청하는 매개 변수
기본 K-라인 기간은 백테스트 및 실제 거래 페이지에서 설정할 수 있습니다.exchange.GetRecords()
함수, 그 매개 변수 기간에 대응하는 K-라인 데이터가 얻을 것입니다. 함수를 호출 할 때 매개 변수가 지정되지 않으면, 해당 K-라인 데이터가 백테스트와 실제 시장 매개 변수에서 설정된 K-라인 기간에 따라 반환됩니다.
반환 값은Record
구조, 반환 K-선 데이터는 시간이 지남에 따라 축적됩니다, 축적된 K-선 바의 상한 한계는exchange.SetMaxBarLen()
함수 설정. 설정되지 않은 경우 기본 제한은 5000 바입니다. K-라인 데이터가 K-라인 바 축적 제한에 도달하면 K-라인 바를 추가하고 가장 오래된 K-라인 바를 삭제하여 업데이트됩니다. 일부 거래소는 K-라인 인터페이스를 제공하지 않으므로 도커는 시장 거래 기록 데이터를 수집합니다 (Trade
구조화된 배열) 를 실시간으로 K선을 생성합니다.
만약 교환의 K-라인 인터페이스가 페이징 쿼리를 지원한다면, 여러 API 요청이exchange.SetMaxBarLen()
더 큰 K-선 길이를 설정하는 함수입니다.
그 때exchange.GetRecords()
함수는 초기 K-라인 데이터로 호출되면 얻은 K-라인 바의 수는 백테스팅과 실제 거래에 따라 다릅니다. - 백테스팅 시스템은 백테스팅 시간 범위가 시작되기 전에 일정 수의 K-라인 바를 미리 얻을 것입니다. (예정값은 5000, 백테스팅 시스템의 설정 및 데이터 양은 반환된 최종 숫자에 영향을 줄 것입니다.) - 실제 거래 중에 얻은 K-라인 바의 수는 거래소의 K-라인 인터페이스에서 얻을 수있는 최대 데이터 양에 기반합니다.
의period
매개 변수가 5로 설정되면, 5초의 기간으로 K-라인 데이터를 얻기 위한 요청입니다.period
매개 변수는 60으로 나눌 수 없습니다 (즉, 표시된 기간은 분으로 나눌 수 없습니다). 기본 시스템은exchange.GetTrades()
거래 기록 데이터를 얻고 필요한 K-라인 데이터를 합성합니다.period
이 매개 변수는 60으로 나눌 수 있습니다. 그러면 필요한 K-라인 데이터는 최소 1분 K-라인 데이터를 사용하여 합성됩니다. 가능하면 필요한 K-라인 데이터는 더 큰 기간을 사용하여 합성됩니다.
백테스팅 시스템에서 시뮬레이션 레벨 백테스팅은 기본 K-라인 기간을 설정해야 합니다 (백테스팅 시스템이 레벨 백테스팅을 시뮬레이션할 때, 대응하는 K-라인 데이터는 기본 K-라인 기간에 따라 Tick 데이터를 생성하는 데 사용됩니다). 전략에서 얻은 K-라인 데이터의 기간이 기본 K-라인 기간보다 작지 않아야 한다는 점에 유의해야 합니다. 시뮬레이션 레벨 백테스팅에서 백테스팅 시스템 내의 각 기간의 K-라인 데이터는 기본 K-라인 기간의 K-라인 데이터로부터 합성됩니다.
의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 | 자이프 / 코인체크 / 비트플라이어 | 퓨처스_에보 |
{@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