2.8 Cambiar el modo de actualización de datos del mercado (más detalles)

El autor:Un sueño pequeño., Creado: 2016-07-13 10:08:50, Actualizado: 2017-10-11 10:21:29

Cambiar el modo de actualización de datos del mercado

  • A continuación se muestra el documento de la API:
// 只支持Websocket模式(huobi, okcoin.cn, BTCC支持)与商品期货CTP协议
exchange.IO("websocket"); // 切换行情通信协议到websocket(默认为rest), Ticker, Depth会切换为websocket协议来更新, 商品期货CTP无需切换
// 切换GetTicker, GetDepth数据更新模式
exchange.IO("mode", 0); // 立即返回模式, 如果当前还没有接收到交易所最新的行情数据推送, 就立即返回旧的行情数据, 如果有新的数据就返回新的数据
exchange.IO("mode", 1); // 缓存模式(默认模式), 如果当前还没有收到交易所最新的行情数据(同上一次api获取的数据比较), 就等待接收然后再返回, 
                        //如果调用该函数之前收到了最新的行情数据, 就立即返回最新的数据
exchange.IO("mode", 2); // 强制更新模式, 进入等待一直到接收到交易所下一次的最新推送数据后返回
// 如果想第一时间获取最新的行情可以切换到websocket后不Sleep的立即检测数据, GetTicker, GetDepth用缓存模式进行工作
exchange.IO("websocket");
while (true) {
    Log(exchange.GetTicker());
}
  • Para facilitar la comprensión de los usuarios, a continuación se presentan los detalles:

    • El sistema de la plataforma por defecto está en modo rest: una solicitud de datos de la API en modo rest, el servidor de la bolsa devuelve un dato (actualmente más reciente). Los servidores de los intercambios no impulsan los datos más recientes a los usuarios. Por lo tanto, la política requiere que las solicitudes de datos sean frecuentes cuando se utiliza el modo de descanso para garantizar la obtención de los datos más recientes en el momento oportuno (no siempre se puede obtener la primera vez que se generan nuevos datos, ya que una pregunta es una respuesta).

    • 2, las API con soporte de modo websocket tienen GetTicker, GetDepth.exchanges[0].IO("websocket");Después de la función, se inicia el modo websocket. Los estudiantes más atentos pueden ver por qué los exchanges[0] se escriben así.imgPor ejemplo, cuando se agregan dos intercambios (o más) a una política, un conjunto de objetos globales definidos por la plataforma representa todos los intercambios que se agregan a la política, este conjunto es el conjunto de objetos de los intercambios, cuyo objeto principal es el primer elemento de la serie: exchanges[0] objeto de los intercambios de monedas; el segundo objeto de los intercambios: exchanges[1] objetos de los intercambios de OKCoin; objetos de los intercambios de exchange; objetos de los intercambios de exchange; objetos de los intercambios de websocket que soportan todos los intercambios de monedas, OKCoin Cash, BTCC. Los futuros de productos CTP son el protocolo CTP por defecto, similar al websocket, que no requiere cambios.

    • 3. Diferencia entre el modo websocket y el resto: en el modo websocket, el administrador envía una solicitud de suscripción al servidor del exchange, y el servidor del exchange la recibe. Cada vez que hay datos más recientes, se impulsan activamente al administrador. El administrador guarda estos datos en caché, y cuando el robot estratégico solicita datos, se obtienen rápidamente, y los datos son más recientes.

    • 4. Una vez que se inicia el modo websocket, se pueden configurar tres modos de trabajo:

      • <1> exchange.IO("mode",0);//Modo de retorno inmediato: Este modo devuelve inmediatamente los datos actuales (actualmente más recientes).

      • <2> exchange.IO("mode", 1);//modo de caché ((modo predeterminado): el modo se divide en dos ramas de procesamiento, y se divide en dos ramas de procesamiento. Primero, cuando la API solicita datos, si los datos que se almacenan en el caché actual no son los más recientes comparados con los datos que se obtuvieron en la última API, la API que solicita los datos espera para recibirlos y recibe los resultados. En segundo lugar, cuando la API solicita datos, devuelve inmediatamente los datos más recientes si los datos en caché en la actualidad se comparan con los datos obtenidos en la última API (es decir, se recibieron los datos de transacción más recientes antes de llamar a los datos de la solicitud de la API).

      • <3> exchange.IO("mode", 2);// Modo de actualización forzada: el modo puede confundirse fácilmente con una rama lógica del modo de caché, pero es fácil de entender. El modo de caché es para determinar si los datos almacenados están actualizados; mientras que el modo de actualización obligatoria es que, independientemente de si el mercado actual es el más reciente, se obliga a esperar hasta que se envíen los datos más recientes del mercado.


Más.

Hokshelato también¿Por qué no lo haces? Función principal ()) { En el caso de los servidores de Internet, los servidores de Internet pueden utilizar el software de intercambio.IO (WEB Mientras (verdadero) { Log ((exchange.GetTicker))); y el nombre de la página en inglés. ¿Qué quieres decir? ¿Qué quieres decir? ¿Por qué no lo haces? 1. No se puede retrospectar, error `main:2:12 - ReferenceError: setLastError no está definido `, presumiblemente debido a que el sistema de retrospección no admite el envío de datos sincronizados. 2. El disco simulador reporta un error, `Futures_OP 4: período no soporte `, y luego solo recibe un dato de ticker, y el robot no puede detenerse normalmente, y continúa indicando que el bot se detenga en el centro del bot, lo que requiere matarlo manualmente.

¿ Qué haces?¿Cuántos datos se almacenan en caché? ¿Cuánto tiempo se almacenan en caché antes de ser limpiados?

Hokshelato tambiénYa está, gracias.

Un sueño pequeño.1, sin rest, parte del websocket en la reevaluación. 2, el disco de simulación no tiene modo de websocket. El protocolo websocket es compatible sólo con OKEX token pro.

Un sueño pequeño.En la actualidad, la mayoría de los archivos de Google tienen cientos o miles de archivos, y voy a ver más detalles.