Сходства и различия между товарными фьючерсами и криптовалютными биржами API

Автор:Доброта, Создано: 2019-09-28 10:22:34, Обновлено: 2023-11-06 20:01:39

img

Фьючерсы на сырьевые товары CTP и обмен криптовалют API имеют существенные различия. Знакомство с программированием криптовалютной биржи не означает знакомство с программированием на сырьевые товары CTP. мы не можем просто скопировать метод и опыт.

Исторические данные

CTP не предоставляет историческую рыночную котировку, и историческая рыночная котировка должна быть решена через агентство рыночных котировок. Если рыночные данные теряются из-за неспособности войти в систему, CTP не предоставляет механизм пополнения рынка. Исторические рыночные котировки могут быть получены только через агентство третьей стороны. Большинство криптовалютных бирж обычно предоставляют интерфейс для получения K-линии и истории транзакций.

Разное соглашение

API обмена криптовалютами обычноRESTиwebsocketCTP внутренне инкапсулирует логику, связанную с сетью, и общается с фоном CTP с использованием протокола FTD, основанного на протоколе TCP. Разделен на три режима:

  • Режим ответа на запрос: клиент инициирует запрос, а CTP-фон принимает и отвечает на запрос.

  • Режим трансляции: после того, как клиент подписывается на котировку рынка контракта, CTP пересылает котировки рынка через трансляцию.

  • Режим частной связи: после того, как клиент заключает контракт, информация о заказе, возврат транзакции и т. д. передаются CTP от точки к точке.

Все котировки и транзакции с заказами соглашения CTP будут уведомлены после изменений, в то время как запросы, счета и позиции будут активно запрашиваться.

Различные уровни данных

Глубина протокола CTP - это только последняя цена покупки и продажи, более глубокие рыночные котировки, такие как пять слоев цены покупки и продажи, дорогие, вам нужно заплатить дополнительные деньги на фьючерсную биржу, чтобы получить ее. с другой стороны, криптовалютная биржа обычно может получить полную глубину до 200 слоев цены покупки и продажи.

Кроме того, CTP не подталкивает реальные котировки транзакций, его можно обратить вспять только путем изменения позиции, а API криптовалютной биржи может получить реальные подробные котировки транзакций. Уровень тика рыночных данных платформы CTP составляет 2 тика в секунду.

Различные ограничения доступа

Криптовалютные биржи, как правило, ограничены 10 тиками в секунду. Нет специальных требований к снятию заказов. CTP имеет строгие ограничения на запросы, которые должны быть отправлены активно. Как правило, один раз в 2 секунды довольно безопасно, и есть также требования к количеству снятий.

Стабильность

Протокол CTP очень стабилен и практически не имеет ошибок или проблем с сетью.

Платформа FMZ Quant Протокол CTP Лучшая практика

CTP по умолчанию режим для получения интерфейса рынка, такие какGetTicker, GetDepth, GetRecordsявляются кэшированные данные, чтобы получить последние, если нет данных будет ждать, пока есть данные, так что стратегия не может использоватьSleepКогда происходит изменение котировки на рынке,ticker, depth, иrecordsВ этот момент любой интерфейс будет возвращен немедленно при его вызове. Затем состояние вызванного интерфейса настроится на ожидание режима обновления, когда в следующий раз будет вызван тот же интерфейс, он будет ждать возвращения новых данных.

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

Если вы хотите получить данные каждый раз, когда вы получаете рыночную котировку, даже старые данные, вы можете переключиться на рынок немедленно обновлять режимexchange.IO ("mode", 0). На данном этапе, стратегия не может быть написана как драйвер события. Вам нужно добавитьSLeepНекоторые низкочастотные стратегии могут использовать этот режим, и дизайн стратегии прост.exchange.IO("mode", 1)чтобы вернуться в режим кэша по умолчанию.

При работе с одним контрактом, использовать режим по умолчанию будет в порядке. Однако, если есть несколько торговых контрактов, возможно, что один контракт не был обновлен, что приводит к блокировке интерфейса рынка, и другие торговые котировки рынка не доступны. Чтобы решить эту проблему, вы можете использовать режим немедленного обновления, но не удобно писать стратегию высокой частоты. В этот момент вы можете использовать режим push-события, чтобы получить push-заказы и котировки.exchange.IO("wait"). Если несколько обменных объектов добавлены, это редкая ситуация в товарных фьючерсных торгов, вы можете использоватьexchange.IO ("wait_any"), и возвращенныеindexбудет указывать индекс возвращенного обмена.

Котировка на рынкеtickНажмите на перемены:

{Event:"tick", Index: exchange index (in the order of robot exchange added), Nano: event nanosecond time, Symbol: contract name}

Приказ " толкать ".

{Event:"order", Index: Exchange Index, Nano: Event Nanosecond Time, Order: Order Information (consistent with GetOrder)}

На данном этапе структура стратегии может быть написана как:

function on_tick(symbol){
     Log("symbol update")
     exchange.SetContractType(symbol)
     Log(exchange.GetTicker())
}

function on_order(order){
     Log("order update", order)
}

function main(){
     while(true){
         if(exchange.IO("status")){ //Determine the link status
             exchange.IO("mode", 0)
             _C (exchange.SetContractType, "MA888") // subscribe to the MA, only the first time is the real request to send a subscription, the following are just program switch, won't consume any time.
             _C(exchange.SetContractType, "rb888") // Subscribe rb
             While(True){
                 Var e = exchange.IO("wait")
                 If(e){
                     If(e.event == "tick"){
                         On_tick(e.Symbol)
                     }else if(e.event == "order"){
                         On_order(e.Order)
                     }
                 }
            }
         }else{
             Sleep(10*1000)
         }
     }
}

Связанные

Больше