Bitcoin Forum
April 19, 2024, 08:55:59 PM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Вопросы, предложения и решения по API биржи BTC-E.COM  (Read 6225 times)
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 11, 2013, 08:53:27 AM
 #1

Собственно сабж, официальная справка мне показалась неполной. Да и общаться тем кто ботов пишет нужно где-то.
У меня вопрос пока такой: как получать заявки со статусами "matched" и "cancelled"? Это очень важно для очередного релиза моего торгового терминала Trade Studio.
А в плане предложений, очень хочется поскорее веб-сокеты Smiley Имхо реквестовый протокол ставит крест на очень многих торговых стратегиях требовательных к производительности.

Сам я могу разъяснить нюансы торговли через существующее API, посредством компонентов Indy для Delphi/C++ Builder.

Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
The Bitcoin network protocol was designed to be extremely flexible. It can be used to create timed transactions, escrow transactions, multi-signature transactions, etc. The current features of the client only hint at what will be possible in the future.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713560159
Hero Member
*
Offline Offline

Posts: 1713560159

View Profile Personal Message (Offline)

Ignore
1713560159
Reply with quote  #2

1713560159
Report to moderator
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
November 11, 2013, 05:28:23 PM
 #2

Было бы интересно почитать ответы на данную тему.
И задать вопросы, при случае.
Sergauskazz
Full Member
***
Offline Offline

Activity: 218
Merit: 100


View Profile
November 11, 2013, 05:39:31 PM
 #3

Сам я могу разъяснить нюансы торговли через существующее API, посредством компонентов Indy для Delphi/C++ Builder.

можно подробней, что это за компоненты?
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 11, 2013, 06:08:26 PM
 #4

можно подробней, что это за компоненты?
TIdHttp это компонент позволяющий делать POST запрос, в том числе через SSL, что нам и требуется. Распространяется с открытым исходным кодом. Согласно устоявшемуся мнению это полный шлак в плане концепции и реализации, но я уже привык )
Для подписи сообщений легко можно использовать объект класса TIdHMACSHA512, причем это касается похоже всех криптовалютных бирж.

Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
XBOCT
Member
**
Offline Offline

Activity: 80
Merit: 10


View Profile
November 11, 2013, 07:36:10 PM
 #5

У меня вопрос пока такой: как получать заявки со статусами "matched" и "cancelled"?
Кажется, если покурить выхлоп метода TransHistory то можно понять какие были заявки и, что было matched, а что cancelled.
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 12, 2013, 06:52:32 AM
 #6

Кажется, если покурить выхлоп метода TransHistory то можно понять какие были заявки и, что было matched, а что cancelled.
У меня и так 3-4 запроса в секунду получается, что совсем не радует (на бирже FORTS можно десятки раз в секунду получать обновление данных).
Тут получается что надо для получения информации об заявках, нужно двойной запрос делать. Как-бы облако не забанило в итоге за излишнюю активность )
Потом, данный метод сложно использовать, непонятно каким образом к заявкам привязку делать.

Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
November 12, 2013, 07:43:14 AM
 #7

У меня и так 3-4 запроса в секунду получается, что совсем не радует (на бирже FORTS можно десятки раз в секунду получать обновление данных).

Есть ли смысл, в столь частых запросах, при условии, что данные на бирже кешируются раз в 2 секунды ?
Или уже не 2 секунды кеширования ?
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 12, 2013, 09:03:07 AM
 #8

Есть ли смысл, в столь частых запросах, при условии, что данные на бирже кешируются раз в 2 секунды ?
Или уже не 2 секунды кеширования ?
У меня разные запросы из разных ниток отправляются. Чтобы терминал хоть что-то отображал, надо постоянно синхронизировать котировки, заявки, сделки.

Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
November 12, 2013, 09:13:05 AM
 #9

У меня разные запросы из разных ниток отправляются.

Поясните, как отправление запросов из разных потоков (даже с разных компьютеров)
влияет на ситуацию с кэшированием стакана на бирже, (слышал про 2 секунды).
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 12, 2013, 10:38:24 AM
 #10

Поясните, как отправление запросов из разных потоков (даже с разных компьютеров)
влияет на ситуацию с кэшированием стакана на бирже, (слышал про 2 секунды).
С оценкой времени кэширования я не интересовался. Подозреваю, что облако тупо получает с торгового сервера данные каждые 2 секунды, и раздает их по запросам. У меня каждая нитка вроде имеет 1-секундный интервал опроса, что все-же желательно и даже при 2-секундной заморозке данных.

Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
November 12, 2013, 11:02:55 AM
Last edit: November 12, 2013, 11:14:20 AM by hazarun
 #11

С оценкой времени кэширования я не интересовался. Подозреваю, что облако тупо получает с торгового сервера данные каждые 2 секунды, и раздает их по запросам. У меня каждая нитка вроде имеет 1-секундный интервал опроса, что все-же желательно и даже при 2-секундной заморозке данных.

У меня примерно так же.
На 3 ТОП биржи совокупно запросы через 1500 - 2000 миллисекунд.
Хотя сам запросы выполняются гораздо быстрее. Опасаюсь уменьшать интервал опросов.

Заметим, самые медленное исполнение запроса по выдаче данных стакана у БТЦ-е.
Гокс и Штамп отдают данные (обычно) в десятки раз быстрее. Может что не так делаю ?

Как у Вас ?
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
November 12, 2013, 11:47:40 AM
 #12

У меня разные запросы из разных ниток отправляются. Чтобы терминал хоть что-то отображал, надо постоянно синхронизировать котировки, заявки, сделки.

Потоки, запускаете по таймеру ?  Иль стоит еще какой метод глянуть ?
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 12, 2013, 12:12:22 PM
 #13

Как у Вас ?
Давно не делал замеров специальных, когда-то было и под 2-3 секунды. Тогда ещё ддосили жестко походу.
Потоки, запускаете по таймеру ?  Иль стоит еще какой метод глянуть ?
Просто запускаю подряд, у меня довольно изощренные наследники класса TThread. Каждый поток выполняет свою виртуальную машину Lua, и уже сценарии осуществляют запрос/парсинг данных. Так с некоторых пор сделал, чтобы легче было корректировать при изменениях API со стороны биржи, ну и пользователи программы смогут скрипты поправить чуть что.

Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
November 12, 2013, 12:37:51 PM
 #14

Давно не делал замеров специальных, когда-то было и под 2-3 секунды. Тогда ещё ддосили жестко походу.

Поставил вывод задержи при опросах на форму, сразу. Никакие замеры и не требуются. Наблюдаем в реальном времени.
Коллега, автор Qt Bitcoin Trader, тоже выводит лаги на форму, на постоянку.

Правда не очень понял, что именно он там выводит.
Данные эти в наших терминалах , даже близко не совпадают. Остальное все совпадает.
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 12, 2013, 12:55:51 PM
 #15

Коллега, автор Qt Bitcoin Trader, тоже выводит лаги на форму, на постоянку.

Правда не очень понял, что именно он там выводит.
Данные эти в наших терминалах , даже близко не совпадают. Остальное все совпадает.
Тут можно прояснить кое что. Задержка запроса, это время от начала отправки GET реквеста серверу,  до получения данных. Лаг данных, это отставание времени в данных полученных с биржи, относительно локального времени.
С лагом предполагается, что он может достигать при отсутствии прочих проблем, величины интервала опроса. Т.е. если опрашивать раз в 2 секунды, то лаг будет скорее всего более-менее Random от 0 до 2 секунд. Если опрашивать 10 раз в секунду, но минимальный лаг будет 100 мс каждые 2 секунды. Алгоритмически, если учитывать схему кэширования на стороне сервера - можно постоянно подбирать величину задержки, чтобы после получения данных лаг был минимальный. У меня в определенных местах этот подход используется, но под btc-e я его пока не стал прикручивать.

Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
XBOCT
Member
**
Offline Offline

Activity: 80
Merit: 10


View Profile
November 12, 2013, 12:57:46 PM
 #16

Коллега, автор Qt Bitcoin Trader, тоже выводит лаги на форму, на постоянку.

Правда не очень понял, что именно он там выводит.
В Qt Bitcoin Trader хоть оно и называется Lаg-ом, фактически выводится время прошедшее с последнего полученного ответа, а не время обработки запроса.
hazarun
Legendary
*
Offline Offline

Activity: 2128
Merit: 1019


View Profile
November 12, 2013, 01:26:09 PM
 #17

Получается, мы имеем, как минимум 4 временных промежутка:

1. Период опроса.
2. Задержка исполнения запроса.
3. "server_time":1342123547   и локальное время, разница между ними.
4. Время прошедшее с момента прихода последнего ответа сервера.

Надо как то определиться, что бы при беседе была однозначность у собеседников , о чем именно одет речь.
zulunation
Sr. Member
****
Offline Offline

Activity: 335
Merit: 250


View Profile
November 12, 2013, 02:45:27 PM
 #18

alpet В основе сбора данных лежат POST / GET запросы. Почему бы не использовать PHP для этого?
Lua выбрал из за компактности?
IGHOR
Legendary
*
Offline Offline

Activity: 1035
Merit: 1065



View Profile WWW
November 12, 2013, 06:59:08 PM
 #19

В Qt Bitcoin Trader хоть оно и называется Lаg-ом, фактически выводится время прошедшее с последнего полученного ответа, а не время обработки запроса.

Так было в первых версиях. Сейчас Soft Lag показывает время прошедшее с момента отправки до момента получения текущего пакета.

Qt Bitcoin Trader
Verify digital signature of the app in the file properties every time you download it.
alpet (OP)
Legendary
*
Offline Offline

Activity: 1912
Merit: 1020


View Profile WWW
November 12, 2013, 07:51:54 PM
 #20

alpet В основе сбора данных лежат POST / GET запросы. Почему бы не использовать PHP для этого?
Lua выбрал из за компактности?
Lua выбрал давно из-за... STALKER, очень хорошо разобрался в этой штуке. Изначально в терминале были реализованы только скрипты для создания ботов на этом языке, но потом дошла очередь и до торговых API.
Да и очень хорошо в Delphi код VM подключается в виде DLL, думаю можно и 64-бита сделать сборки. Сейчас моя программа может подключаться сразу к нескольким биржам, и позволяет сделать даже арбитраж между ними (прообраз скрипт уже есть).


Novacoin we trust!
https://svcpool.io - PoS стейкинг и обменник NVC/BTC.
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!