Resumo das FAQ (Atualização...)

Autora:Lydia., Criado: 2023-07-13 14:44:41, Atualizado: 2024-02-05 20:04:06

[TOC]

img

Resumo das FAQ (Atualização...)

  • Como pesquisar uma palavra-chave em posts? UtilizaçãoCtrl + fpara abrir a página e pesquisar; digite uma palavra-chave, por exemplo: docker. Em seguida, será pesquisado o local na página com a palavra docker.

  • Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • Weixin:

    img

Interface de API

  • Porquê?Compre um preçoeVender um preçoObtido por:GetTickere os obtidos porGetDepthsão diferentes?

    Os dadosGetTickereGetDepthOs dados obtidos por este método podem não ser obtidos ao mesmo tempo. há um atraso de tempo cetrain, por isso os dados vão mudar.GetTickerserá um pouco mais rápido, para os dados é menor do que os dados obtidos porGetDepth.

  • exchang.GetOrdersObtém as ordens inacabadas, então, onde é que se conseguem as ordens executadas?

    Há outra API para consultar ordens, ou seja,exchange.GetOrder- consulta ordens de todos os tipos, de acordo comIDIntroduza a ordem.IDPortanto, para obter ordens executadas, você precisa ver se as plataformas fornecem esse tipo de interfaces; as interfaces fornecidas por cada plataforma são bastante diferentes.

  • EmJavaScriptestratégias, o resultado da cadeia de tempo convertendo para carimbo de tempo é errado.

    Você precisa considerar o fuso horário nas configurações de tempo do sistema.

    img

  • Porque é que o preço de abertura e o preço de fechamento que imprimi são os mesmos?

    1.Talvez, no momento em que imprimiu, não houvesse efectivamente negociação na plataforma, pelo que os preços de abertura, fechamento, mais alto e mais baixo do BAR sejam os mesmos o tempo todo. 2.Você precisa verificar se o BAR que você observou é o último BAR, pois os preços de abertura, fechamento, mais alto e mais baixo do último BAR são os mesmos.

  • Erros de verificação do tempo com o servidor, tais comoSignature not valid:Invalid submission time or incorrect time format

    Este erro é o problema dos sistemas operacionais antigos comowindows2000/2003/XP, consulte:

https://support.microsoft.com/en-us/help/821893/the-system-clock-may-run-fast-when-you-use-the-acpi-power-management-t

Sugerimos que useLinuxservidor, ou você pode instalar software de sincronização de tempo nesteswindowsSistemas em que ocorre o erro, para sincronizar o tempo em alta frequência e evitar que ocorra o erro de verificação do tempo.

  • Por que existe uma diferença entre os valores calculados porATR (TR) de Mylanguage e os calculados porTA/talibBiblioteca?

A razão é que o método de cálculo dos indicadores Mylanguage é inconsistente com o algoritmo subjacente deTA/talibambas são corretas, mas os algoritmos são diferentes.MACD, alguns usam umDIF-DEA, e alguns usam duas vezesDIF-DEA, que são ambos corretos.

  • O que representa, se o nome da plataforma éFutures_Esunny?

    Representa o objecto de troca deProtocolo de Esunny, que pode ser devolvido pela funçãoexchange.GetName()- Não. Atualmente, a estação internacional FMZ só suporta negócios de criptomoedas.https://www.fmz.cn.

    • A linguagem mylinguagem refere-se a dados em vários períodos, após#EXPORTTEST...#ENDdeclarou as variáveis na referência do bloco de códigos de vários períodos.REFSe o valor de referência for utilizado na estratégia, os dados serão referenciados de acordo com o período atual, que é diferente do esperado.

    Os dados de vários períodos de que necessita serão tratados em#EXPORTTEST...#END, para que possa usá-lo diretamente externamente.

  • Não consigo encontrar a documentação da API da FMZ.

    Pode inserir diretamente o endereço da página:https://www.fmz.com/api, ou clique no link da seguinte imagem:

    img

  • Porquê?MACDCalculado pela FMZ é diferente daquele calculado pelas plataformas?

    Ao fazer a comparação, é necessário ter em conta se os períodos da linha K são os mesmos, se oMACDOs parâmetros do indicador são os mesmos, os períodos de tempo são os mesmos e os símbolos são os mesmos.MACD; alguns sãoDIF-DEA, e alguns são2*(DIF-DEA); DIFeDEAdeve ser consistente.

  • O que está ligado ao número de linha K obtido, quando os dados da linha K histórico são obtidos?

    Ao aceder aoexchange.GetRecordsO número de K-lines retornadas por cada plataforma pode ser inconsistente (até mesmo algumas plataformas não fornecem interfaces de K-line. Neste caso, o docker chamará a interface para obter os dados de histórico de negociação da plataforma quando a estratégia for chamada.exchange.GetRecords. A interface de dados sintetiza a linha K de acordo com o histórico de negociação). As linhas K recebidas pelo docker serão continuamente acumuladas juntas, e é necessário acessar oexchange.GetRecordsInterface com uma certa frequência, caso contrário, a continuidade dos dados pode ser afectada.

  • Eu acho que chamar a funçãoexchange.BuyApenas retornosIDna documentação API, mas por que ele retorna tanta informação quando eu operar?

    As funções que podem gerar exportação de log em funções FMZ API, tais comoLog, exchange.Buy, exchange.CancelOrder, etc., todos podem ser seguidos por alguns parâmetros adicionais após os parâmetros necessários.exchange.CancelOrder(orders[i].Id, orders[j])Exporta adicionalmente as informações da encomenda ao cancelarorders[j].

  • Como executar mensagem Push do WeChat em um bot?

    O WeChat push só é válido em bots; adicione'@'No final doLogA informação impressa doLogpode ser empurrado; você pode encontrar os detalhes no documento API em:https://www.fmz.com/api#LogAtualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn- Não. O WeChat push só é suportado na estação doméstica da FMZ.

  • Os contratos futuros sobre commodities podem utilizar contratos principais contínuos e contratos de índice?

    O valor da posição em risco deve ser calculado em função do valor da posição em risco. Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • var records = exchange.GetRecords(PERIOD_D1)O que devo escrever se eu quero obter o contrato específico diariamente dados K-line, tais como os dados K-line de RB ou I?

    Devias pôrCódigo do contratoO número de horas de trabalho é o número de horas de trabalho que o empregador pode ter antes de obter o TAQ (por exemplo, definir o código do contrato pelo menos uma vez desde o início do programa).SetContractType("rb1805"), Configure o contrato operado atual pararb1805Ligue novamente para a API que obtém TAQ, você pode obter os dados TAQ do contrato rb1805. Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • Como escrever o código do contrato de futuros de commodities?

    Pode consultar a documentação da API FMZ. Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • - O Will?exchange.GetAccountNão consegue obter as informações devido a problemas de rede e outros problemas, e a camada subjacente do sistema FMZ já processou a falha? Ou os usuários têm que lidar com a falha da solicitação eles mesmos? Por que o oficial FMZ não lida com isso? Não é mais conveniente para os usuários usá-lo dessa maneira?

    A camada subjacente do FMZ não processa dados, e os dados retornados aos usuários são dados não processados. O método ou lógica de tolerância de falha específica é formulado pela estratégia específica. Porque se for processado, pode afetar a decisão dos usuários, e a decisão será processada pela estratégia, que se refere especificamente aInformações de erro de filtragemouTente outra veze outros métodos de transformação.

  • Qual é a unidade do volume de encomendas do contrato OKEX?

    O volume de encomendas do contrato OKEX é calculado pelo montante do contrato; por exemplo,exchange.Buy(1000,1)significa a colocação de uma encomenda ao preço de 1000, com o montante do contrato de 1.

  • Significa que faço ordens de limite quando ligo?exchange.Selleexchange.Buyno FMZ?

    Para mais detalhes, você precisa olhar para o primeiro parâmetro passado (o primeiro parâmetro é o preço da ordem).-1Os significados de volume de compra e volume de venda são de alguma forma diferentes (o segundo parâmetro), e se o preço não for igual ao preço de venda, o valor do volume de compra é diferente do volume de venda.-1, o que significa que é uma ordem limite. Na maioria das interfaces de ordens de plataformas spot, o volume de ordem da ordem de compra de mercado émontante do activoNão, não.montante da moeda. Nas interfaces de ordens das plataformas de futuros de criptomoedas, o volume de ordens é geralmente um número inteiro do valor do contrato.

    Veja as interfaces de ordens:https://www.fmz.com/api#exchange.buyprice-amount https://www.fmz.com/api#exchange.sellprice-amount

  • Função de correio

    Mail("smtp.qq.com", "xxxx@qq.com", "xxx", "xxx@qq.com", "test title", "test body")
    

    Acesso aos SMTP QQs203.205.232.7Atualmente, a maioria dos servidores de nuvem são protegidos da porta 25, exceto para servidores físicos, os operadores não protegerão a porta 25.

  • Parâmetros do modelo para Pine language, Mylanguage: o número de períodos máximos da variável afeta o cálculo do indicador

Por padrão, o número máximo variável de períodos é 600, se o parâmetro do indicador for definido muito grande, por exemplo, calculando MA ((1000).

Relatório de erros

  • Mensagem de erro popup: SyntaxError: nome de variável esperado.

Verifique se há um nome de variável faltando ao declarar uma variável, como esquecer de escrever o nome em var name = a. Também, verifique se palavras-chave de linguagem de programação foram usadas ao definir parâmetros de interface de estratégia. Não é recomendável usar palavras-chave de linguagem de programação comumente usadas como nomes de variáveis, pois pode levar a conflitos, mesmo que a linguagem de programação atual não tenha essa palavra-chave específica.

  • BITMEX429 erro,{"error":{"message":"Rate limit exceeded retry in 1seconds……"}}

    Quando vemos o erro 429, significa que a frequência de acesso a uma plataforma é muito alta.

  • Only support CTPErro

    Isso significa que você ligou para umCTP de futuros de mercadoriasInterface ou biblioteca em umEstratégia de criptomoedas- Não. Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • BittrexErro em bots:{"success":false,"message":"NOT_ALLOWED","result":null}

    Indica que a plataforma limita privilégios.Bittrex, e ver se é necessário verificar as informações, como o acordo do utilizador.

  • Erro de operação do bot:TypeError:value has no property at

    img

    Como os erros relatados no backtest e no bot são diferentes, este erro não pode ser detectado durante o backtest.

  • unable to open databaseErro

    imgSe o sistema forMac OSSistema, prestar atenção para verificar se é o um problema de permissão. Ou, pode ser o erro causado pelo espaço cheio do disco rígido do dispositivo, que desativou a criação do arquivo de banco de dados do bot.

  • Erro:do not support the function

    Refere-se à situação em que o objeto de troca adicionado durante o backtest é uma plataforma spot de criptomoeda, mas a função API de futuros é chamada no código.

  • Erro:in SetCurrency OSError: exception: access violation reading 0x000000FCF25F0000

    Em um futuro de criptomoedaPythonestratégia, o sistema de backtest usa um docker privado, e o par de negociação é trocado no código, o que faz com que o erro seja relatado. A razão é que o sistema de backtest não suporta o backtest de futuros de criptomoedas para trocar pares de negociação.

  • Erro descifrado [Foto]imgDevido à palavra-passe da conta FMZ foi modificada, que fez a chave de API configurada inválida, e levantou o erro. Solução: configure a plataforma API KEY novamente, pare e reinicie o docker e tente reiniciar o bot.

  • PythonRelatórios locais de backtest do motorEOFerror.

    EOFO erro é o erro no final do backtest. capturar a exceção é suficiente e você pode chamá-lo em qualquer lugarPythoné apoiado.

 # encoding: utf-8  

 '''backtest
 start: 2021-08-30 00:00:00
 end: 2022-09-05 00:00:00
 period: 1d
 basePeriod: 1h
 exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
 '''

 from fmz import *
 task = VCtx(__doc__)             # initialize backtest engine from __doc__  

 def main():  

     while not exchange.IO("status"):
         Sleep(1000)
     exchange.SetContractType("swap")
     
     while True:
         bars_1min = _C(exchange.GetRecords, PERIOD_M1)    # Get 1min K-line              
         print(len(bars_1min))
         _CDelay(2000)      

 # Calling the main function  

 try:
     main()
 except:
     print(task.Join(False))
  • O Mylanguage envolve um erro muito oculto no cálculo do período e o valor calculado pode ser N/A, como no seguinte exemplo:

    img

    A razão é que o parâmetro do período de cálculo excede o intervalo de dados, resultando no cálculo do valor N/A. Método de processamento:

    img

  • Um erro ocorreu no Mylanguage: erro de análise, e a estratégia só tem código simples, o número de linhas de erro é muito longo, e a causa do erro não pode ser encontrada.

    Pode ser um erro causado pelo problema dos primeiros modelos de Mylanguage. Solução: 1. Exportar a estratégia como um arquivo xml. 2. Criar uma nova estratégia Mylanguage vazia. 3. Importar o arquivo xml para a estratégia vazia recém-criada. 4. Adicionar um bot para testar.

  • Erro:fatal error:unexpected signal during runtime execution...go routine 11[syscall,locked to thread]

    Verifique se a estratégia escrita emC++usa um ponteiro nulo, e sugiro que use o teste de retorno de modo tolerante a falhas para detectar.

    img

  • Erro de chamadaexchange.SetMarginLevel(10): Futures_OP 0:403:{"error":{"message":"Access Denied","name":"HTTPError"}}

    Verifique se os privilégios relacionados doAPI KEYaplicadas pela plataforma estão ligadas.

  • Erro de teste de retorno:symbol not set

    É porque você não definiu o contrato no código durante o backtest da plataforma de futuros.exchange.SetContractTypefunção na documentação da API.

  • ErroERR_INVALID_POSITION

    Se o sistema de backtest relatar o erro, geralmente é um erro causado por erros de escrita de estratégia. Se você tentar colocar uma ordem para fechar uma posição quando não há posição ou o número de posições é insuficiente, o erro será relatado. Verifique se há congelamento de posição causado por ordens inacabadas.

  • ErroERR_INVALID_ORDERSe o sistema de backtest relatar o erro, geralmente é um erro causado por erros de escrita de estratégia. Você deve verificar o preço da ordem (os futuros de criptomoeda no sistema de backtest temporariamente não suportam ordens de mercado), se o volume da ordem é 0, número negativo ou fração decimal (o volume da ordem dos contratos de futuros é calculado pelo valor do contrato, que é inteiro).

  • ErroERR_INSUFFICIENT_ASSET

    Se o backtest relatar o erro, normalmente indica que o valor do ativo disponível já não é suficiente para fazer a ordem atual.

  • Binding Error:Cannot passnon-string to std::stringInformação de erro

    Nos códigos de estratégia, o erro é geralmente causado pela sugestão errada de um nome de atributo (usando um atributo indefinido).

  • Erro{"status":6004,"msg":"timestamp is out of range"}

    O erro significa que o carimbo horário do servidor está fora do intervalo, e você precisa atualizar o tempo do servidor, sem grande desvio.

  • Errotimeout

    O erro é um erro de timeout, que indica um erro relatado devido a não obter os dados de resposta da interface da plataforma por um certo período de tempo após acessar a interface da plataforma. Geralmente, é um problema de acesso à rede do sistema onde o docker está localizado (muitos problemas são causados por muros), ou um problema da interface da plataforma.

  • Erro no bot em execução após a escrita da estratégia:syntax error invalid label

    Fonte de erro:

    function main(){
        if(1){
            continue
        }
    }
    //That will cause the error during operation 
    

    continueA declaração deve ser usada no loop!

  • Erro:(CTP_T@9999)Error:140CTP:change the password when first log in, and please log in again after changingQual é a senha modificada?

    Aqui indica para modificarsimnowpalavra-passe da conta; quando utiliza uma conta específica da empresa de futuros para iniciar sessão, também deverá modificar a palavra-passe para o primeiro login (uma nova conta tem uma palavra-passe inicial e não pode utilizar a conta sem modificar a palavra-passe inicial). Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • Erro:400:{"error":{"message":"Nonce is not increasing.This nonce:1523891993165,last nonce:1523891993165","name":"HTTPError"}}

    É umnonceerro de verificação, e as informações de erro relacionadas comnonceVocê pode tentar sincronizar a hora do sistema onde o bot docker está localizado.

  • ErroSecretkey decrypt failed

    img

    O erro indica o fracasso da decodificaçãoAPI KEY. Verifique se você modificou a senha da conta FMZ depois de configurar oAPI KEYTente configurar oAPI KEYna página Adicionar plataforma do FMZ, reinicie o docker e execute o bot novamente para testar.

  • Posição aberta de futuros de mercadorias Erro:CTP: only close position

    Há muitas razões pelas quais o relato mostra o status decan only close position. Pode ser que a conta tenha sido congelada (não foi usada por muito tempo, mais de 1 ano), ou pode ter entrado no canal errado (CTP tem muitos assentos). Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • Qual poderia ser a razão se o erro:GetOrder(455284455):Error:invalid order id or order canceled.É sempre levantado quando eu ligo.exchange.Getorder?

    Significação literal: a encomenda foi cancelada ou o ID da encomenda é inválido. Razão: em algumas plataformas, se você cancelar uma encomenda, as informações da encomenda não serão mantidas e serão eliminadas.exchange.GetOrder, o erro será relatado, ou o ID de encomenda que você consulta é originalmente errado.

  • Erro: limite de taxa, 429 Demasiados pedidos

    img

    rate limit, 429 Too Many Requestsindica que a frequência de acesso a uma interface de plataforma é demasiado elevada, pelo que é necessário reduzir a frequência de acesso à interface de plataforma.

  • Aumentem sempre.Invalid order price/amountno bot e backtest

    Este tipo de erros são causados pelo preço errado e volume de ordem passado ao chamar a função de ordemexchange.Buyouexchange.SellPara...volume de encomendas negativo, 0e outros métodos de detecção de erros:Logpara exportar o parâmetro de preço ou parâmetro de volume a passar antes de fazer uma encomenda porexchange.Buyouexchange.Sell, para determinar o problema.

  • Que tipo de erro éGetOrders:400:{"code":-1121,"msg":"Invalid symbol."}?

    O erro significa:par de negociação inválidoVocê precisa verificar se a configuração do par comercial está errada.

  • O que significa se há alguns códigos de erro quando os registos de bots relatam um erro?

    Você pode ver as explicações para os códigos de erro devolvidos por diferentes interfaces de plataforma na documentação API dessas plataformas.

Bot

  • Tempo de impressão da curva de rendimento do mercado real da linguagem Pine e Mylanguage Imprimir regularmente de acordo com as configurações dos parâmetros do modelo de linguagem Pine/Mylanguage e imprimir quando a estratégia estiver completamente fechada.

  • O bot da Mylanguage imprime o número de linhas de gatilho do sinal, mas não há nenhuma operação de ordem.

    Pode ser que as configurações de parâmetros do modelo Mylanguage sejam inadequadas, como precisão, volume mínimo de ordem e outros parâmetros. A razão é que a camada de gatilho de sinal foi julgada com sucesso e na camada de execução de negociação, foi julgado que a ordem não pôde ser colocada devido a alguns problemas com os parâmetros, e nenhuma ordem foi realmente colocada. Você pode consultar os posts relacionados ao Mylanaguage:https://www.fmz.com/bbs-topic/9788 https://www.fmz.com/bbs-topic/9791

  • Por que o bot não pode receber o sinal de solicitação quando eu já definiu alerta de url do webhook no Tradingview?

    Verifique se a API KEY está correta no endereço de url do webhook. A API KEY aqui se refere à API KEY estendida do FMZ, que é definida nas configurações da conta no canto superior direito do FMZ. Verifique se o ID do bot no url do webhook está preenchido corretamente. Verifique se os privilégios da API KEY estendida do FMZ são dados corretamente. Os privilégios são separados por vírgulas em inglês. O padrão é *, o que significa todos os privilégios. Não escreva os nomes das funções com os privilégios diretamente após *.

  • Por que os símbolos de pares de moedas são limitados na configuração de pares de negociação da plataforma ao adicionar um bot?

    Você pode definir o controle personalizado de pares de negociação (apenas pode ser definido em bots; para os símbolos no centro de dados do backtest são limitados, ele não pode ser definido no backtest), da seguinte forma:

    img

  • Por que os tickers não podem ser obtidos quando eu executar o FutuOpenD no servidor, e os tickers podem ser obtidos no dispositivo local?

    Você precisa verificar se o endereço IP do servidor está no exterior, pois o FutuOpenD tem limites em endereços IP no exterior. Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • Não há nenhuma acção quando a estratégia Mylanguage é operada, e só atualiza o TAQ no início.

    Verifique se utilizou o modelo de preço de fechamento, que pode ser verificado pelos parâmetros do modelo de estratégia Mylanguage.

  • Futuros de commodities posição fechada ontem problema

    Na CTP, apenas a Shanghai Futures Exchange pode ser utilizada para fechar as posições de hoje e as de ontem.
    O backtest não distinguePosições de hojedeposições de ontem, por isso não pode especificar para fechar posições de hoje ou posições de ontem. Alguns símbolos em bots, comoIF, tem o padrão de que se houver posições hoje, ele vai fechar posições hoje primeiro. Nesta ocasião, você não pode especificar, e você só pode fechar posições hoje primeiro. Portanto, as informações de posição de hoje e posições de ontem é fundido em um. Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

  • Porque é que o carimbo de um bar emBITMEXOs dados de linha K têm um período a mais do que o da mesma localização em outros dados de linha K da plataforma?

    A razão é:BITMEXtoma a hora final da barra atual como o carimbo de tempo da linha K (alguns períodos de linha K não são suportados porBITMEXinterface, de modo que os carimbos de tempo desses períodos são gerados pela hora de início de Bar).

    img

  • Na estratégia de futuros de commodities, oProfitnos dados devolvidos pela funçãoexchange.GetPositionÉ diferente do lucro e da perda variáveis calculados?

    Consulte a documentação da API:https://www.fmz.com/api#exchange.getposition. ProfitemCTP protocolé definido comoLucro e prejuízo de valor de mercado, que representa o lucro e a perda da sua posição corrente em relação ao preço de liquidação do dia de negociação anterior. Atualmente, a FMZ International Station só suporta negócios de criptomoedas.https://www.fmz.cn.

Sistema de ensaio de retrocesso

  • Erro comunicado pelo sistema de backtesting: Erro comunicado pelo sistema de backtesting:
Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.

Verifique se o recurso Fonte de dados personalizada está sendo usado e se os dados fornecidos pelo serviço de fonte de dados personalizados são corretos.

  • Como pagar as taxas dos participantes/fabricantes? Teste de cenários para taxas de tomada/produção.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-02-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var t = exchange.GetTicker()
    exchange.Buy(t.Last - 10, 100/(t.Last - 10))
  
    while(1){
        t = exchange.GetTicker()
        Sleep(1000)
    }
}
  • No backtest de futuros da Binance eBITMEX, a taxa de financiamento é calculada na curva de lucros e perdas gerada pelo sistema de backtest?

    A taxa de financiamento é calculada na curva de lucros e perdas gerada pelo sistema de backtest.

  • O botão Backtest não pode ser clicado.

    Você precisa verificar se o proxy está ativado, o que afetará a conclusão do carregamento dos arquivos na página do Backtest; verifique se há alguma informação de erro no console da página.

  • EmCarrapatos reaisbacktest, por que há um limite de 50MB?

    O backtest de nível de mercado real indica que no Tick real, o TAQ é realmente registrado segundo a segundo. Além disso, existem instantâneos de mercado e dados de fluxo de pedidos, que são de grande volume, por isso apenas 50MB de volume de dados são suportados. Ou seja, o máximo do intervalo de tempo do nível de mercado real é de várias horas e o tempo de backtest não pode ser estendido. O backtest de Tick real é usado principalmente para testar estratégias de alta frequência.

  • Por que não funcionou quando modifiquei os parâmetros da taxa no sistema de backtest?

    img

    No sistema de backtest, quando você redefine os parâmetros de taxa, eles serão válidos depois de excluir o par de negociação de plataforma antigo e adicionar o par de negociação de plataforma novamente; o par de negociação de plataforma adicionado anteriormente não pode ser modificado pelo controle na página.

  • Como fazer o backtest desenho personalizado exibir mais dados?

    Quando você desenhar um gráfico personalizado (peloChartO volume de dados do desenho exibido no backtest está relacionado com ográficoO parâmetro é o parâmetro que controla o número máximo de barras de um gráfico.chart.resetA função é usada para limpar parte dos dados antigos.

  • C++O backtest não mostrou nada, não houve erro nem registos, e nada na página mudou depois de eu clicar no botão.

    Alguns erros deC++No entanto, o método de exclusão pode ser utilizado para detectar os possíveis erros que podem ocorrer durante a operação, nível por nível.NANe tipo de número apósNANé calculado, o que causará o crash do programa.

  • pythonO backtest está bloqueado!

    Você não pode escrever a funçãoSleepemtrydetecção de erros, e a escrita na imagem vai causar o engarrafamento.

    img

  • No backtest, por que há apenas várias opções para a plataforma, e os símbolos para o par de negociação também são limitados?

    Há muitos pares de negociação nas plataformas, por isso apenas alguns pares de negociação representativos foram selecionados para testes no sistema de backtest.controlo aduaneiroPara definir os pares de negociação suportados por essas plataformas em bots.

  • Por que o backtest não suporta mais pares de negociação?

    O sistema de backtest, por enquanto, só suporta as moedas mainstream de algumas plataformas relativamente grandes, e algumas moedas ainda não são suportadas. Se você precisar testar uma estratégia, pode substituir as moedas por outras moedas semelhantes no backtest. Na verdade, exceto que as cotações de mercado podem ser afetadas, usar outras criptomoedas semelhantes para backtestar a estratégia é bom. Simplificando, o sistema de backtest tenta suportar pares de negociação mainstream, e o backtest não deve corresponder a um símbolo específico. Ou seja, se a estratégia for eficaz, mesmo que seja uma série de alterações de cotação de mercado geradas aleatoriamente com regras de negociação, ou as cotações de mercado de outras moedas, deve haver lucros basicamente positivos. Esta é a universalidade de uma estratégia. Se ela só pode corresponder a um período de história ou funcionar bem em determinado símbolo, então essa estratégia realmente tem riscos ou defeitos potenciais.

  • No sistema de backtest:P&L de encerramento, P&L de participação, Margem, Retorno estimado, USDT actualmente disponível

    P&L de encerramento: é o lucro e a perda acumulados de todas as transações abertas e fechadas antes da posição corrente. P&L de detenção: é o lucro e a perda da posição corrente, se a posição corrente não for detida, é 0, Margem: o montante da margem ocupada pela posição corrente. Retorno estimado: O lucro e a perda gerados pelo encerramento da posição corrente ao preço corrente (hipotético) são adicionados ao lucro e à perda acumulados da posição fechada para calcular o rendimento estimado. O montante de USDT disponível atualmente: o montante atual de USDT disponível para a abertura de posições.

  • Cálculo da taxa de sucesso no sistema de backtest

    for (var i = 0; i < profits.length; i++) {
        if (i == 0) {
            if (profits[i][1] > 0) {
                winningResult++
            }
        } else {
            if (profits[i][1] > profits[i - 1][1]) {
                winningResult++
            }
        }
        if ((profits[i][1] + totalAssets) > maxAssets) {
            maxAssets = profits[i][1] + totalAssets
            maxAssetsTime = profits[i][0]
        }
        if (maxAssets > 0) {
            var drawDown = 1 - (profits[i][1] + totalAssets) / maxAssets
            if (drawDown > maxDrawdown) {
                maxDrawdown = drawDown
                maxDrawdownTime = profits[i][0]
                maxDrawdownStartTime = maxAssetsTime
            }
        }
    }
    

    O algoritmo acima é o algoritmo da taxa de ganho, que é calculado da seguinte forma: Após o sistema de backtest regularmente calcular o lucro e perda flutuantes, uma curva de lucro e perda flutuante é calculada. Comece a partir do primeiro ponto para comparar com o próximo ponto. Se for maior, será registrado como uma vitória, e se for menor, será registrado como uma perda, e depois continue a comparação com o próximo ponto.

Docker

  • Onde está o vídeo de ensino de implantaçãoLinuxDocker?

    Bilibili:https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • É necessário parar o antigo quando eu atualizar o docker, e excluir orobotprograma, e executá-lo de novo?

    Você pode excluir diretamente o antigorobotarquivo de programa sem parar o docker, em seguida, baixar um novo pacote comprimido, descomprimir o novorobotNeste momento, o docker é atualizado, mas o bot em execução ainda usa a versão antiga na memória, e a versão mais recente será usada apenas quando o bot é reiniciado.

  • Implementação do Docker deLinuxservidor

    Passos para instalar um docker emLinux: https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • Quando utilizadoscreenpara executar o programa dockerrobot, -bash:screen:command not foundocorre, e o docker não pode ser executado.

    LinuxSistema não se instalascreensoftware, e a instalação geral é suficiente.CentOScomando de instalação do sistema:yum install screen.

    O docker atual já suportaSSHpara desconectar a conmutação para executar em segundo plano.screen, você pode usar diretamente o comando norobotdiretório do programa docker:./robot -s node.fmz.com/xxxxxxx, e digite a palavra-passe da conta FMZ; quandoLogin OKObserve que o xxxxxxx em./robot -s node.fmz.com/xxxxxxxé o código de identificação exclusivo de cada conta FMZ, e basta inserir o seu próprio (depois que a conta está conectada, pule para a página docker, clique em Add docker para a página Add docker para ver); nota aqui não é apenas para inserirxxxxxxx.

  • Onde está o registro do bot quando um docker está executando um bot?

    EmDB3arquivo de base de dados nologsdiretório onde o programa docker está localizado, o nome do arquivo do banco de dados é oiddo bot, e a extensão édb3.

  • EmLinuxsistema, utilização./robot -lPara ver os nomes das plataformas suportadas pelo docker, que plataforma é oexchangeEntre os nomes?

    O objecto de troca cujonomeéexchangerefere-se à plataforma queProtocolo GeralAs informações do protocolo geral:https://www.fmz.com/api#通用协议

  • A página do docker não exibe os dockers no formato de lista.

    Se forem adicionados mais de 5 portadores, aparecerá um comando para exibição no formato de lista.

    img

  • É normal haver um docker não implantado por mim na caixa de combo do parâmetro docker ao criar um bot?

    O docker público fornecido pela FMZ é uma ferramenta de início rápido adicionada para iniciantes, então os usuários não precisam implantar um docker ao aprender, e é fácil para iniciantes começarem.

  • É a cadeia de endereços (./robot -s node.fmz.com/1234567) exclusivamente para mim ou para outros, quando se utiliza um docker?

    Este endereço é a identificação do endereço próprio de cada utilizador, e o valor do/1234567Ao implantar um docker, clique no botão Adicionar docker emPainel de instrumentos-> cliqueAdicionar docker->Adicionar página docker, e então você pode ver este endereço; copiar e colar diretamente e você pode usá-lo.

  • A variável ambiente do sistema onde o docker está localizado adicionoupython2.7, mas por que ainda é solicitado que a variável ambiente não pode ser encontrado?

    img

    Quando?windowsSistema primeiro instalapython, você precisa definir a variável ambiente e reiniciar para torná-lo válido.

Investigação

  • Erro EOF

    img

    O backtest do Python é terminado pela exceção EOF (porque às vezes uma estratégia pode ser um loop infinito).

Função da plataforma

  • Quantos bots é que um docker pode operar?

    Não há limite para o número, dependendo da configuração do servidor e da complexidade da estratégia. Especificamente, é necessário considerar se esses vários bots acessam a mesma interface da plataforma (considerando a frequência de chamadas de interface, porque mais bots significam maior frequência); geralmente 5 a 6 bots estão bem.

  • Docker, Bot e outras explicações de conceitos básicos

    https://www.fmz.com/bbs-topic/9152

  • O conteúdo das páginas Bot e Docker desaparece

    Se o conteúdo do bot e da página do docker tiverem desaparecido, quando o bot e o docker estiverem funcionando normalmente no servidor, você precisa ler a mensagem de relatório de erro do navegador, para ver se o navegador tem um plugin instalado, o que causa o problema de poluição de variável global.

  • Para as estratégias oficiais de aluguer e aluguer de um servidor docker com um clique, a taxa será renovada automaticamente, desde que o saldo da conta FMZ seja suficiente?

    As estratégias alugadas não cobrarão automaticamente as taxas, e o aluguel de um docker com um clique será automaticamente recarregado.

  • Onde está a função modelo? Eu quero separar algumas funções no modelo, para que outras estratégias também possam usá-las.

    A descrição noFMZ APIDocumentação:https://www.fmz.com/api#模板类库

  • O que é owexAppplataforma de simulação de FMZ simulado bot apenas fornecerBTC_USDTComo posso personalizar outros pares de negociação?

    wexAppSimulado bot suporta apenas alguns pares de negociação mainstream no momento, e nem todos os pares de negociação são simulados.

  • Eu tenho um problema de chamadas simultâneas para a API estendida, ou seja, um erro de verificação annoce é sempre relatado durante a simultânea.

    Você pode criar múltiplas plataformas FMZ estendidasAPI KEYs para pedidos simultâneos.

  • Os tópicos de depuração criados em um docker registarão o status do log quando usar a ferramenta de depuração?

    Quando a ferramenta de depuração é executada, se nada for modificado pela segunda vez, o objeto de troca criado antes será mantido e não será liberado.Modo de moedaoumodo de alavancagem.

  • Por que quando eu registrei owexAppSimulou a plataforma e fez login, não havia nenhum activo, tanto na carteira como na secção de moeda?

    Após o registro, você precisa verificar seu e-mail para ativar sua conta, e você pode ativar sua conta no centro pessoal.

  • A informação do log é relativamente longa e cortada, e no final mostrou"... Mas eu preciso ver a estrutura dos dados, o que devo fazer?

    A solução consiste em utilizar oFerramenta de depuraçãonoPainel de instrumentos, e utilizar oreturndeclaração na ferramenta de depuração para retornar o conteúdo a ser exibido, e a exibição do conteúdo não será truncada.

  • O que fazem as funções começando com$.emJavaScriptEstratégias significam?

    As funções com o início de$.são funções de exportação de modelos, semelhantes às funções de interface de módulos.https://www.fmz.com/api#模板类库

    As funções de exportação dopythonAs estratégias são declaradasext.No início.

  • Como desenhar linhas retas no gráfico de mercado do resultado do backtest?

    Existem dois tipos de gráficos que são finalmente exibidos no backtest: um é gerado pelo sistema, que a estratégia não pode controlar.ChartFunção da interface API da FMZ no código de estratégia.https://www.fmz.com/api#chart...

  • Eu excluí o validador do Google no meu telefone por engano, como redefinir o validador do Google? Na página de configurações da conta na plataforma, eu não consegui encontrar o lugar para redefinir por e-mail.

Você pode entrar na plataforma FMZ com outro navegador, e quando precisar inserir o código de verificação do Google, clique em Enable twofactor para ir para a página para desligar por e-mail.

Outros

  • PlataformaAPI KEYcontrolo de segurança

    OAPI KEYA FMZ não guarda as informações de texto simples da conta da plataforma do utilizador e utilizaHttps protocol.

  • Questão de segurança estratégica

    Para isso, pode referir-se a:https://www.fmz.com/bbs-topic/1657.

  • Sistema de faturamento FMZ

    Normas de faturamento para negociação em tempo real:

    1. A cobrança ocorre uma vez por hora para cada conta de negociação ao vivo (0,05 USD / hora) e é baseada em um período de uso de uma hora.
    2. A suspensão e reinicialização da conta de negociação em tempo real no prazo de uma hora não resulta em faturamento duplo.
    3. Uma conta de negociação em tempo real que já tenha sido interrompida não activará a cobrança para a próxima hora.
    4. As contas de negociação criadas serão cobradas imediatamente por uma hora.

    img

    O tempo de faturamento mencionado refere-se ao tempo de processamento para operações de faturamento. Devido ao tempo necessário para essas operações de processamento, o tempo de dedução pode ser atrasado. Por exemplo, se o tempo de faturamento atual for 9:00, é possível que o tempo de processamento para essa operação de faturamento seja 9:02 (como mostrado na captura de tela). Isso será ajustado durante a próxima operação de faturamento (o próximo tempo de dedução será 10:00, não uma faturamento antecipado).

  • A biblioteca talib manipula dados com precisão limitada.

    Se os dados forem particularmente pequenos, serão truncados e, eventualmente, exibidos como 0. Consulte:https://github.com/TA-Lib/ta-lib-python/issues/157


Mais.