Bitcoin Forum
May 06, 2024, 07:39:53 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Вопросы, предложения и решения по API биржи BTC-E.COM  (Read 6226 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.
1714981193
Hero Member
*
Offline Offline

Posts: 1714981193

View Profile Personal Message (Offline)

Ignore
1714981193
Reply with quote  #2

1714981193
Report to moderator
1714981193
Hero Member
*
Offline Offline

Posts: 1714981193

View Profile Personal Message (Offline)

Ignore
1714981193
Reply with quote  #2

1714981193
Report to moderator
1714981193
Hero Member
*
Offline Offline

Posts: 1714981193

View Profile Personal Message (Offline)

Ignore
1714981193
Reply with quote  #2

1714981193
Report to moderator
Every time a block is mined, a certain amount of BTC (called the subsidy) is created out of thin air and given to the miner. The subsidy halves every four years and will reach 0 in about 130 years.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714981193
Hero Member
*
Offline Offline

Posts: 1714981193

View Profile Personal Message (Offline)

Ignore
1714981193
Reply with quote  #2

1714981193
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!