Bibliotecas: JSON Serialization and Deserialization (native MQL) - página 8
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
La biblioteca funciona en MQL4 y MQL5
Se aceptan agradecimientos en forma de ejemplos de su trabajo práctico con los recursos web de MQL. ;)
¡Buenas tardes!
¡Gracias por la biblioteca!
He utilizado su biblioteca para supervisar el trabajo de los ordenadores conectados a una piscina para la minería cryptocurrency.
La piscina (su sitio web) en respuesta a una consulta de estado da una respuesta en la 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. - Estos son los ordenadores, tenemos que controlar que su "currentHashrate" no caiga por debajo de un valor umbral.
El código es muy sencillo:
salidas 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
Muchas gracias a los desarrolladores de la biblioteca, pero funcionaba muy lentamente, por lo general antes de poner cualquier producto o código, debe ser perfilado, pero en este caso, ya que la biblioteca es libre, no hay necesidad de quejarse, la biblioteca funciona muy lentamente, si usted no hace esto:
De lo contrario aquí está lo que era antes (la solicitud Web en sí en esta pantalla tomó 16.718.439 en el tiempo, todo el resto del procesamiento):
y después de ajustar (la flecha muestra la misma solicitud Web):
El aumento de velocidad fue casi 20 veces más rápido.
¿Por qué 50.000?
¿y no 20.000.000 o 100.000?
--
¿qué tipo de datos de prueba utilizó?
en los datos, que en total resulta ser de 10000 - 30000, por esta razón elegí 50000 con una reserva), pero antes he utilizado esta biblioteca en los valores de alrededor de 280 en la matriz, en esta versión y 500 es suficiente, 50000 es sin duda para aquellos que tienen los recursos del sistema permiten.
según la documentación, el parámetro de reserva simplemente reduce el número de reasignaciones de memoria
por favor, compruebe en su muestra de prueba con el parámetro 100 (1000, 10000)
cuál será la ganancia de velocidad en este caso en la pantalla de perfiles
según la documentación, el parámetro de reserva simplemente reduce el número de reasignaciones de memoria
por favor, compruebe en su muestra de prueba con el parámetro 100 (1000, 10000)
¿cuál será la ganancia de velocidad en la pantalla de perfiles?
Si es exactamente asi, yo personalmente cogi el parametro optimo de redistribucion, ahora la funcion mas larga de todas es la deserializacion..., pero esta claro en principio, aunque en idea segun tengo entendido en esta libreria todo se hace por metodos de busqueda y maxima universalidad, pero sigo pensando que en alguna parte de la deserializacion hay un matiz que se puede optimizar.... Adjunto pantallazo de perfilado, parámetros de reasignación de memoria 5000.
1.12
establecer paso 100 en ArrayResize
Supongamos:
¿Cómo puedo mapear esto a tipos MQL después de Deserializar?
Estimados especialistas Por favor, ayúdenme a entender la biblioteca. ( No soy bueno en la programación orientada a objetos todavía, así que no puedo entender el código de la biblioteca en sí y el artículo dedicado al intercambio BTC-E. Es por eso que pido un ejemplo sencillo como en el post #58 ).
Necesito parsear dos api públicas del exchange 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": { ...desde aqui, necesito obtener todos los pares disponibles (btc_usd, btc_rur, ...) en un array (solo nombres de pares, sin parametros, puedo obtener parametros por nombres conocidos...).
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 ], ... ] ] } }y de aqui a dos arrays (asks y bids) para obtener el precio y valor de las ordenes.
¡¡¡Estaré muy agradecido por la ayuda!!! ¡Gracias de antemano!