Bibliotecas: Serialização e desserialização de JSON (MQL nativo) - página 8
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A biblioteca funciona em MQL4 e MQL5
A gratidão é aceita na forma de exemplos de seu trabalho prático com recursos da web da MQL. ;)
Boa tarde!
Obrigado pela biblioteca!
Usei sua biblioteca para monitorar o trabalho de computadores conectados a um pool para mineração de criptomoedas.
O pool (seu site), em resposta a uma consulta de status, fornece uma resposta na forma de:
/* {"status": "OK", "data":[ {"worker": "riga1", "lastSeen":1511432055, "currentHashrate":2746.6666666666665,"validShares":103,"invalidShares":0,"staleShares":null}, {"worker":"riga2","lastSeen":1511432068,"currentHashrate":3040,"validShares":114,"invalidShares":1,"staleShares":null}, {"worker":"riga3","lastSeen":1511432057,"currentHashrate":2426.6666666666665,"validShares":91,"invalidShares":0,"staleShares":null}, {"worker":"riga4","lastSeen":1511432055,"currentHashrate":2266.6666666666665,"validShares":85,"invalidShares":0,"staleShares":null}, {"worker":"riga5","lastSeen":1511432061,"currentHashrate":2666.6666666666665,"validShares":100,"invalidShares":0,"staleShares":null}, {"worker":"riga6","lastSeen":1511432050,"currentHashrate":2293.3333333333335,"validShares":86,"invalidShares":0,"staleShares":null}, {"worker":"riga7","lastSeen":1511432069,"currentHashrate":1013.3333333333334,"validShares":38,"invalidShares":0,"staleShares":null}]} */riga1, riga2, etc. - Esses são computadores, precisamos monitorar se o "currentHashrate" deles não está abaixo de um valor limite.
O código é muito simples:
saídas como:
riga7 Hashrate: 826.6666
riga6 Hashrate: 2293.333
riga5 Hashrate: 3200.
riga4 Hashrate: 1866.666
riga3 Hashrate: 2800
riga2 Hashrate: 2853.333
riga1 Hashrate: 2933.333
Muito obrigado aos desenvolvedores da biblioteca, mas ela funcionou muito lentamente. Normalmente, antes de lançar qualquer produto ou código, ele deve ser avaliado, mas, nesse caso, como a biblioteca é gratuita, não há necessidade de reclamar, a biblioteca funciona muito lentamente, se você não fizer isso:
Caso contrário, aqui está o que era antes (a própria solicitação da Web nessa tela levou 16.718.439 de tempo, todo o restante do processamento):
e após o ajuste (a seta mostra a mesma solicitação da Web):
O aumento de velocidade foi quase 20 vezes mais rápido.
Por que 50.000?
e não 20.000.000 ou 100.000?
--
Que tipo de dados de teste você usou?
nos dados, que no total acabam sendo de 10.000 a 30.000, por isso escolhi 10.000 com uma reserva), mas anteriormente usei essa biblioteca em valores de cerca de 280 na matriz, nessa versão e 500 é suficiente, 10.000 é certamente para aqueles que têm os recursos do sistema permitidos.
De acordo com a documentação, o parâmetro de reserva simplesmente reduz o número de realocações de memória
Verifique em sua amostra de teste com o parâmetro 100 (1000, 10000)
qual será o ganho de velocidade nesse caso na tela de criação de perfil
De acordo com a documentação, o parâmetro de reserva simplesmente reduz o número de realocações de memória
Verifique em sua amostra de teste com o parâmetro 100 (1000, 10000)
qual será o ganho de velocidade na tela de criação de perfil?
Sim, é exatamente assim, eu pessoalmente peguei o parâmetro ideal de redistribuição, agora a função mais longa de todas é a desserialização..., mas, em princípio, está claro, embora na ideia, pelo que entendi nessa biblioteca, tudo seja feito por métodos de pesquisa e universalidade máxima, mas ainda acho que em algum outro lugar na desserialização há uma nuance que pode ser otimizada.... Anexei uma captura de tela da criação de perfil, parâmetros de realocação de memória 5000.
1.12
Definir a etapa 100 em ArrayResize
Suponha que:
Como posso mapear isso para tipos MQL após a desserialização?
Prezados especialistas! Por favor, ajudem-me a entender a biblioteca. (Ainda não tenho muita experiência em programação orientada a objetos, por isso não consigo entender o código da biblioteca em si e no artigo dedicado à bolsa BTC-E. É por isso que peço um exemplo simples, como na postagem nº 58 ).
Preciso analisar duas APIs públicas da bolsa WEX.NZ.
https://wex.nz/api/3/info
{ "server_time": 1519120845, "pairs": { "btc_usd": { "decimal_places": 3, "min_price": 0.1, "max_price": 500000, "min_amount": 0.001, "hidden": 0, "fee": 0.2 }, "btc_rur": { ...A partir daqui, preciso obter todos os pares disponíveis (btc_usd, btc_rur, ...) em uma matriz (apenas nomes de pares, sem parâmetros, posso obter parâmetros por nomes conhecidos...).
https://wex.nz/api/3/depth/btc_usd
{ "btc_usd": { "asks": [ [ 11550, 0.00998 ], [ 11559.9, 0.01731136 ], ... ] ], "bids": [ [ 11506.031, 1.756 ], [ 11506.03, 1.23 ], ... ] ] } }e daqui para duas matrizes (asks e bids) para obter o preço e o valor das ordens.
Ficarei muito grato pela ajuda!!! Desde já, obrigado!