2.8 Переключение на режим обновления данных рынка (подробности)

Автор:Маленькие мечты, Создано: 2016-07-13 10:08:50, Обновлено: 2017-10-11 10:21:29

Переключение на обновление данных рынка

  • Вот как это описано в документации 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());
}
  • Для удобства пользователей приведем подробную информацию:

    • 1, система платформы по умолчанию находится в режиме rest: один раз при запросе данных API в режиме rest, сервер биржи возвращает один раз данные ((актуальная новейшая), Сервер биржи не будет активно продвигать обновленные данные к пользователю. Поэтому политика при использовании режима отдыха требует частого запроса данных, чтобы гарантировать своевременный доступ к новым данным (не обязательно в первый раз, когда возникают новые данные, потому что один вопрос, один ответ).

    • 2, API с поддержкой режима websocket имеют GetTicker, GetDepth.exchanges[0].IO("websocket");После функции, запустите режим websocket. Внимательные ученики могут понять, почему exchange[0] написано так.imgНапример, если в одну политику добавлены две биржи (а может быть и несколько), то в глобальном объекте, определенном платформой, есть матрица, представляющая все добавленные в политику биржи. Эта матрица называется exchanges .

    • 3. Различие между веб-сокетом и остальным: в режиме веб-сокета администратор отправляет запрос на подписку на сервер биржи, после чего сервер биржи получает его. Когда имеются последние данные, они активно продвигаются к администратору. Администратор кеширует эти данные, и когда робот-стратег запрашивает данные, они быстро получаются, и данные являются последними.

    • После запуска режима websocket есть три режима работы:

      • <1> exchange.IO("mode",0);//Временный режим возвращения: этот режим мгновенно возвращает текущие данные ((в настоящее время обновленные)).

      • <2> exchange.IO("mode", 1);//caching mode ((default mode): Модель разделена на 2 отделения обработки. Во-первых, когда API запрашивает данные, если данные, хранящиеся в текущем кэше, не актуальны по сравнению с данными, полученными API в прошлый раз, запрошенные данные ждут приема и возвращаются. Во-вторых, при запросе данных API немедленно возвращает последние данные, если данные, хранящиеся в текущем кэше, сравняются с данными, полученными в прошлый раз (т. е. последние данные были получены до вызова данных API).

      • <3> exchange.IO("mode", 2);// Принудительный режим обновления: этот режим на первый взгляд может быть легко спутать с логической ветвью режима кэширования, но это понятно, если подумать. Кэшируемый режим - это процесс определения, является ли данные, хранящиеся в кэше, актуальными. Принудительный режим обновления - это ожидание следующего обновления рынка, независимо от того, является ли текущий рынок актуальным.


Больше

Хокшелато``js function main (() { exchange.IO (("websocket"); while (true) { пока (правда) { Log ((exchange.GetTicker))); {y:bi} {y:bi} `` 1. Невозможно отредактировать, сообщение об ошибке `main:2:12 - ReferenceError: setLastError is not defined, предположительно, потому что система отредактирования не поддерживает асинхронное продвижение данных. 2. Симулятор сообщает об ошибке диска, `Futures_OP 4: period not support`, после чего получается только один тикер данных, а робот не может нормально остановиться, постоянно просит кнопку остановить кнопку, и нужно удалить ее вручную.

ФанбэйСколько записей хранится в кэше и как долго они будут храниться до того, как будут очищены?

ХокшелатоПонятно, спасибо!

Маленькие мечты1, В повторном измерении нет rest, часть websocket. 2, Диск не имеет режима веб-сокета. Документация: только OKEX Bitcoin Pro поддерживает протокол websocket.

Маленькие мечтыВ этом случае, если вы хотите, чтобы ваш сайт был доступным для всех пользователей, вы можете использовать его для создания веб-сайтов, которые могут хранить до сотен тысяч статей, которые я собираюсь посмотреть.