O recurso está a ser carregado... Carregamento...

exchange.GetRecords

Obter a matriz de estrutura {@struct/Record Record} do ponto ou contrato correspondente ao par de negociação atualmente definido, código do contrato, ou seja, dados de linha K.

Oexchange.GetRecords()A função retorna uma matriz de estruturas {@struct/Record Record} quando a solicitação de dados é bem-sucedida e retorna valores nulos quando a solicitação de dados falha. {@struct/Record Record} matrizes, valores nulos

troca.GetRecords ((() Troca.GetRecords (símbolo) exchange.GetRecords (símbolo, ponto) exchange.GetRecords (símbolo, ponto, limite) troca.GetRecords (período) troca.GetRecords (período, limite)

O parâmetrosymbolé usado para especificar o par de negociação específico e o código do contrato correspondente aos dados de matriz {@struct/Record Record} solicitados. Se este parâmetro não for passado, os dados da linha K do par de negociação atualmente definido e o código do contrato serão solicitados por padrão.exchange.GetRecords(symbol)função,exchangeSe você precisar solicitar para obter os dados com a moeda denominada como USDT e a moeda da transação como BTC, o parâmetrosymbolé:"BTC_USDT", e o formato é o formato do par de negociação definido pela plataforma FMZ.exchange.GetRecords(symbol)função,exchangeSe você precisa solicitar os dados do livro de pedidos do contrato perpétuo padrão U do BTC, o parâmetrosymbolé:"BTC_USDT.swap", e o formato é uma combinação dospar de negociaçãoeCódigo do contratodefinidos pela plataforma FMZ, separados pelo carácter ..exchange.GetRecords(symbol)função,exchangeSe você precisar solicitar os dados do livro de ordens do contrato de opção U-standard do BTC, o parâmetrosymbolé:"BTC_USDT.BTC-240108-40000-C"(tomando Binance Option BTC-240108-40000-C como exemplo), o formato é a combinação dopar de negociaçãodefinidos pela plataforma FMZ e o código do contrato de opção específico definido pela bolsa, separados pelo carácter .. símbolo Falso cordel O parâmetroperiodespecifica o período dos dados de linha K solicitados, por exemplo: {@var/PERIOD/PERIOD_M1 PERIOD_M1}, {@var/PERIOD/PERIOD_M5 PERIOD_M5}, {@var/PERIOD/PERIOD_M15 PERIOD_M15}, etc. O valor do parâmetroperiodSe este parâmetro não for passado, o período dos dados de linha K solicitados por padrão é o período de linha K padrão da configuração atual de estratégia em tempo real / backtest. período Falso Número O parâmetrolimité usado para especificar o comprimento dos dados de linha K solicitados. Se esse parâmetro não for passado, o comprimento de solicitação padrão é o número máximo de barras de linha K solicitadas em um momento da interface de linha K de troca. Este parâmetro pode causar a busca para consultar os dados de linha K de troca e o consumo de tempo da chamada de função aumentará durante a consulta de busca. limite Falso Número

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]);
}

Obtenha dados da linha K para um período personalizado.

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]);
}

Dados de barra de linha K de saída:

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);
}

Quando o configuradoexchangeObjeto é um objeto de troca de futuros, usar osymbol, period, elimitParâmetros para solicitar os dados da linha K de um produto específico (produto futuro).

O período de linha K padrão pode ser definido nas páginas de backtest e de negociação real.exchange.GetRecords()Se nenhum parâmetro for especificado quando a função for chamada, os dados de linha K correspondentes serão devolvidos de acordo com o período de linha K definido no backtest e nos parâmetros reais do mercado. O valor de retorno é uma matriz deRecordOs dados de linha K retornados serão acumulados ao longo do tempo, o limite superior das barras de linhaexchange.SetMaxBarLen()O limite padrão é de 5000 bares quando não está definido. Quando os dados da linha K atingem o limite de acumulação da barra da linha K, eles serão atualizados adicionando uma barra da linha K e excluindo a primeira barra da linha K (por exemplo, fila de entrada/saída).TradeA utilização de um conjunto de linhas K (ou de uma matriz estruturada) em tempo real para gerar linhas K. Se a interface K-line do exchange suportar consultas de paginação, várias solicitações de API serão feitas ao chamar oexchange.SetMaxBarLen()função para definir um maior comprimento da linha K. Quando oexchange.GetRecords()A função é chamada inicialmente, o número de barras de linha K obtidas difere entre backtesting e negociação real: - O sistema de backtesting obterá um certo número de barras de linha K antes do início do intervalo de tempo de backtesting com antecedência (o padrão é 5000, as configurações do sistema de backtesting e a quantidade de dados afetarão o número final retornado), como os dados iniciais de linha K. - O número de barras de linha K obtidas durante a negociação real é baseado na quantidade máxima de dados que podem ser obtidos a partir da interface de linha K da bolsa. OperiodO parâmetro é definido em 5, que é uma solicitação para obter dados de linha K com um período de 5 segundos.periodO sistema subjacente utiliza a interface relevante deexchange.GetTrades()Os dados de registo de transacções são obtidos através de um sistema de registo de transacções, que permite obter os dados de registo de transacções e sintetizar os dados de linha K necessários.periodSe o parâmetro for divisível por 60, os dados de linha K necessários são sintetizados utilizando um mínimo de dados de linha K de 1 minuto (se possível, os dados de linha K necessários são sintetizados utilizando um período maior). O backtesting de nível simulado no sistema de backtesting requer a configuração do período de linha K subjacente (quando o sistema de backtesting simula o backtesting de nível, os dados de linha K correspondentes são usados para gerar dados Tick de acordo com o período de linha K subjacente definido). OC++linguagem tem o seguinte exemplo de código se você precisa construir seus próprios dados de linha 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);                     
}

As trocas que não suportam oexchange.GetRecords()Função:

Nome da função Trocas spot não suportadas Atividades de negociação
GetRecords Zaif / Coincheck / BitFlyer Futuros_Aevo

{@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