Informações históricas da linha K. A desvantagem deste mecanismo é óbvia: em uma linha K, só pode ser produzido um venda venda, geralmente baseado no preço do preço de fechamento da linha K. E uma linha K só pode obter quatro preços de alta ou baixa, quanto à mudança de preços em uma linha K, como o preço mais alto ocorre primeiro, ou o preço mais baixo ocorre primeiro, etc. Não há nenhuma informação para obter.
A redefinição da plataforma FMZ é dividida em redefinição de nível analógico e redefinição de nível real. A redefinição de nível analógico gerará 14 pontos de tempo de redefinição em cada ciclo de linha K base, com base no tick gerado pela simulação.O nível de disco real é o tick real coletado, cerca de uma vez a cada poucos segundos, e atualmente suporta parcialmente a profundidade real (incluindo 20 arquivos) e a transação real por moeda.O mecanismo de retorno do FMZ permite que a estratégia seja negociada várias vezes em uma linha K, evitando situações em que só se pode fechar um negócio a preço de mercado, sendo mais precisa e considerando a velocidade de retorno.https://www.fmz.com/digest-topic/4009
O esquema de revisão é o mesmo que o disco real e é um ciclo morto. Como a revisão salta em diferentes pontos de revisão, não é possível usar o Sleep, que salta automaticamente para o próximo ponto de tempo no final de um ciclo.Sleep(10)
O que você está fazendo é errado.
O motor de reencaminhamento é feito com base no preço de compra e no preço de transação no momento do reencaminhamento. Se o preço de compra for maior do que o preço de venda, é vendido um negócio. Se o negócio não for concluído, é gerado um listado. O negócio precisa de um ponto de deslizamento.
GetRecords()
O ciclo padrão de uma função também pode ser especificado no código como um parâmetro de ciclo.Como mencionado anteriormente, o uso de uma interface de API no disco real pode causar um erro de acesso e retornarnull
A estratégia é de tolerância a erros, pois o uso dos dados pode causar erros e causar o parada do disco real.
Os erros mais comuns são:
Antes de usar a API para retornar dados, é necessário julgar se eles são nulos ou não.
//1.判断为null进行处理
var ticker = exchange.GetTicker();
while(ticker == null){
Log('ticker 获取出错');
ticker = exchange.GetTicker();
}
Log(ticker.Last);
// 2.判断不为null再进行引用
var ticker = exchange.GetTicker();
if(!ticker){
Log(ticker.Last);
}
// 3._C()函数重试
var ticker = _C(exchange.GetTicker);
Log(ticker.Last);
// 4. try catch容错
try{
var ticker = exchange.GetTicker();
Log(ticker.Last);
}
catch(err){
Log('ticker 获取出错');
}
Se você quiser obter informações erradas, pode usá-las.GetLastError()
A função, que retornará a strings de informação de erro da última vez, pode ser processada por diferença.
O blogueiro, que escreveu sobre o assunto em seu blog, escreveu:https://www.fmz.com/bbs-topic/1427Aqui estão alguns resumos, e se você tiver algum problema, você pode pesquisar por Ctrl+F.
Como é que se coloca um administrador?
Para mais informações, veja a seção Adicionar administradores.
Afinal, o que é que a gente está a fazer?
https://www.fmz.com/marketsAlguns oferecem serviços de transcrição, ou consultam em grupo, e precisam de se comunicar, a seu próprio risco.
Acesso a todas as interfaces indica timeout
O termo "interface" refere-se ao tempo de tempo de acesso ao exchange, que não é um problema se ocasionalmente ocorrer, se for sempre indicado que a rede em que se encontra não pode ser acessada, sendo necessário usar um servidor estrangeiro.
Erro ERR_INVALID_POSITION
O sistema de reavaliação de erros, geralmente um erro de redação de estratégia, provoca o erro de tentativa de colocar um plano de negociação quando não há posições ou quando há um número insuficiente de posições.
símbolo não definido
A função exchange.SetContractType é uma função que define o tipo de contrato de um mercado de futuros.
BITMEX 429 erro, {
error :{ message : Rate limit exceeded retry in 1 seconds...... }}
A frequência de acesso às interfaces das bolsas é muito alta.
O tempo está fora de alcance.
O cronograma do servidor está fora de alcance e precisa de atualização do tempo do servidor, não pode desviar muito.
GetOrder ((455284455)): Erro: ID de ordem inválido ou ordem cancelada.
A informação sobre as ordens é inacessível, já que algumas ordens são canceladas.
GetOrders: 400: {
code :-1121, msg : Invalid symbol. }
Os pares de transações inválidos são verificados para verificar se há um erro na configuração do par de transações.
Descifrar chave secreta falhou
Falha na resolução do API KEY. Se o código FMZ foi alterado após a configuração do APIKEY, tente adicionar a página do exchange no FMZ e reconfigure o APIKEY.
Signature not valid: Invalid submission time or incorrect time format (Assinatura não válida: tempo de submissão inválido ou formato de tempo incorreto)
Recomenda-se o uso de servidores Linux, ou o software de sincronização de tempo de instalação em sistemas windows em que o problema ocorre.
Por que um agente global é configurado e os administradores não podem acessar a API da bolsa?
Os agentes globais não possuem portas de rede de servidores de servidores de servidores e, devido a problemas de latência, é melhor que os servidores de servidores internacionais sejam implantados.
Como é que a estratégia é mantida local e não no FMZ que está a ser carregado?
O Python permite importar arquivos locais, salvar políticas normalmente escritas com base na API do FMZ e colocá-las no seu servidor sob o caminho de execução.
#!python2.7
def run(runfile):
with open(runfile,"r") as f:
exec(f.read())
def main():
run('my.py')
Como usar a rede de testes da bolsa ou mudar o endereço da API
Usando o exchange.SetBase ((() você pode mudar diretamente para o endereço de base da API correspondente.
exchange.SetBase("https://www.okex.me")
Gaoencheerapi
CiênciaComo implementar a política localmente? Eu escrevi uma simples declaração de saída de Log e segui a operação no final da frase. O primeiro passo é usar um notebook como servidor e executar um programa administrador. O segundo passo é escrever um simples programa test.py para exportar informações de Log (uma função de interface API para FMZ); O terceiro passo, como no final do texto, é escrever um runfile e executá-lo através do run.py, chamando test.py.
glicogênioEu comprei um curso de negociação de quantidade em nuvem, e agora eu vou ver.
MonuRajakMuitos
MonuRajak- Olá.
O meu irmão.Aprender
WqyHá um pequeno erro de texto, GetAccount obtém a conta. Na introdução, FrozenStocks deveria ser um saldo congelado e não um saldo disponível.
- O que é que se passa?getorder outtime O que fazer para obter um pedido fora do horário, a troca da okx
O que é que ele tem a dizer?A taxa de garantia de ativos não é acessível, até 0% será forçada a estabilizar a taxa de garantia de ativos
Shifeng2020Eu estou olhando para o gráfico de 1 minuto k, então o tempo de sono do ciclo morto do Python pode ser definido como 0,1s, ou seja, sleep ((100)
O Vento do Orienteexchange.SetDirection (("closebuy"); // Se for um contrato permanente, configure diretamente o exchange.SetDirection (("sell") Aqui eu experimentei o contrato permanente OKex, que se for definido para vender, fica imediatamente vazio, não é muito barato.
O Vento do Orienteexchange.SetDirection (("closebuy"); // Se for um contrato permanente, configure diretamente o exchange.SetDirection (("sell") Aqui eu experimentei o contrato permanente OKex, que se for definido para vender, fica imediatamente vazio, não é muito barato.
O Vento do OrienteHá dois erros de ortografia no código do GetOrders. Um é que a função foi escrita como fuction, e o outro como condição para o loop for.
O Vento do OrienteA culpa é minha. exchange.Buy ((-1, 0.5), o par de negociação é o ETH_BTC, o que representa a compra de ETH de 0.5BTC no preço do mercado exchange.Buy ((price, 0.5), se for esse tipo de lista de preços, representa comprar 0.5ETH no preço do preço
O Vento do Orienteexchange.Buy ((-1, 0.5), o par de negociação é ETH_BTC, representando a compra de ETH de 0.5BTC pelo preço do mercado Aqui é o que deveria ser o óleo de alumínio representando o preço de mercado para comprar o óleo de alumínio de 0,5 ETH.
glicogênioObrigado.
Ervas daninhasO curso está disponível em https://study.163.com/course/courseMain.htm?share=2&shareId=400000000602076&courseId=1006074239&_trace_c_p_k2_=c3f5d238efc3457d93c8b92c0398d2b2
Ervas daninhasAdicione o WeChat na página inicial e faça parte do grupo.
WqyPor vezes, eu tenho problemas para perguntar se temos um grupo oficial de discussão.
Ervas daninhasMudança
Ervas daninhasRecuperação
Ervas daninhasA informação original pode ser obtida usando o GetRawJSON ou através de um campo de informações
O Vento do OrienteMuito bem, muito bem, e também há respostas administrativas.
Ervas daninhasOh, corrigido, obrigado por apontar o erro.
Ervas daninhasAlguns contratos permanentes permitem a posse bidirecional e precisam de um equilíbrio.