Author

Topic: Внебиржевой Крипто-Трейдинг 101 (Read 177 times)

legendary
Activity: 2275
Merit: 1180
AI Atelier
Кто такой Carbon?... От куда он взялся? кто за ним стоит? какая у него репутация? Кто даёт гарантии чистоты сделки?...

Не стоит путать Р2Р с ОТС даже если сделки проходят на крупную сумму. ОТС это не софт, а "закрытый клуб". Что бы в этот клуб попасть, нужно иметь рекомендации. Сделки могут быть анонимными для сторонних зрителей, но внутри "клуба" проводят очень тщательную проверку как его членов, так и источников происхождения денег. Если вдруг к кому то придут по грязному следу за деньгами, репутация ОТС-площадки будет сильно скомпрометирована со всеми вытекающими последствиями для бизнеса... ОТС - это штучный товар, ручная работа. Дорого.
member
Activity: 63
Merit: 127
Внебиржевой (ОТС) Крипто-Трейдинг 101

Перевод статьи: Crypto OTC Trading 101

Так как криптовалюты набирают популярность  и широту применения, важно, чтобы определенные фундаментальные аспекты конфиденциальности оставались неизменными в процессе обмена этими валютами. Внебиржевая (over-the-counter, или OTC) торговля  открывает для участников рынка возможность совершать сделки с ордерами произвольного размера без влияния на работу рынка, таким образом не давая подсказок другим участникам. Что же это значит? Чтобы сохранить конфиденциальность и стоимость актива, пользователи должны выйти за пределы биржи.

В апреле 2018 размер ОТС-сделок оценивается в диапазоне от $ 250 млн. до $ 30 млрд. в день, для сравнения, в это же время объем торгов на биржах составил $ 15 млрд. за тот же промежуток времени.


Что такое OTC? Кто этим пользуется?

Внебиржевая торговля представляет собой сделку между двумя сторонами, которая происходит не на бирже. Традиционно OTC-площадки предлагают ценные бумаги, которые не торгуются на биржах, чтобы избежать сложностей, связанных с требованиями при осуществлении листинга, или уплаты непомерных сборов. Однако, на рынке криптовалют популярность ОТС-площадок выросла у двух типов пользователей: майнеров и инвесторов. Майнеры стремятся избавиться от своих майнерских заслуг, не снижая их цены, в то время как инвесторы хотят купить большие объемы активов, не снизив рыночного предложения. Одной из ключевых особенностей OTC, особенно в криптосфере, является обеспечение анонимности - нет стаканов ордеров.

Зачем торговать вне биржи?

Криптовалюты, не входящие в первую десятку, часто имеют очень низкую ликвидность, что приводит к мелким стаканам ордеров и волатильности цен. Таким образом, большой ордер вряд ли будет выполнен быстро. Возникнет необходимость разбить ордер на более мелкие части, чтобы сразу же заполнить ордера по сниженным ценам (ситуация известна как проскальзывание). OTC устраняет проскальзывание и увеличивает объем ликвидности, доступной на биржах, что, в свою очередь, снижает волатильность и приводит к более глубоким стаканам ордеров.

Например представим, что рынок сильно волатилен, и я пытаюсь быстро продать 50 BTC на бирже. Взглянув на стакан ордеров, я вижу, что спотовая цена составляет ~$10544. Количество в ордерах на покупку, однако, недостаточно велико, чтобы заполнить ордер на продажу по этой цене. Это означает, что мне придется снижать цену, чтобы включить в свой ордер более глубокие заказы в стакане - и чем глубже я пойду, тем меньше прибыли я получу. В добавок к этому, мой большой ордер на продажу может подтолкнуть спотовую цену BTC еще ниже.

ОТС-сделки не оказывают влияния на работу рынка. Допустим, что я инвестирую на ранних этапах в новый токен, назовем его CharityToken. За каждый доллар, который компания-участник жертвует на благотворительность, минтится CharityToken и вручается этой компании. Затем CharityTokens можно потратить на каком-нибудь открытом рынке для оплаты различных услуг. Мы можем полагать, что мне понадобится обменять мои токены на другие активы, но как ранний инвестор:
  • Я поддерживаю цель проекта и не хочу подрывать общественное доверие;
  • Я не хочу негативно влиять на цену, тем самым снижая общий доход.

Многие проекты в такой ситуации предпочтут выкупить свои токены, чтобы не подвергать негативному воздействию рынок своих активов. Если CharityToken работает с ОТС-провайдером, инвестору становится проще безопасно продать эти токены, не влияя на будущее проекта.

.     .     .

Начинаем Трейдить ОТС (вне биржи)

Я буду использовать Carbon, OTC API платформу (в настоящее время представлена бета-версия), которая позволяет нам создавать ОТС-котировки, а также вносить, обменивать и выводить средства. Carbon - это криптовалютный финтех-стартап, который в настоящее время предлагает обмен фиата на крипту на платформе, и вскоре обеспечит обмен крипты на крипту и крипты на фиат вне платформы. Ликвидность обеспечивается нашими оффшорными партнерами и сервисами, в настоящее время недоступными внутри страны. Вам понадобится некоторое знакомство с Python 3 и библиотекой requests.

В этом руководстве будут подробно описаны пошаговые инструкции и пояснения, но так как оно выполняется в sandbox (testnet) среде, оно может не полностью совпадать с production (mainnet) средой.

Quote
Production Endpoint: https://api.carbon.money
Sandbox Endpoint: https://sandbox.carbon.money/

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

Code:
import requests
root_path = ‘[url=https://sandbox.carbon.money/]https://sandbox.carbon.money[/url]’
create_super_path = '/v1/create/super'
data = {
  'emailAddress': '[email protected]',
  'password': 'Password1234',
  'companyName': '',
  'firstName': 'Julian',
  'lastName': 'Kocher'
}
req = requests.post(root_path + create_super_path, data)
print(req)
print(req.text)

Что даст нам ответ в консоли (почищенный для удобства восприятия):

Code:

{
“message”: ”Successfully created new user! Please record and save your UUID so Carbon Fiber’s team can approve you”,
”uuid”: ”c7c3ef5c-d936–49dc-bbe6-dd4069472400",
”jwtToken”: ”eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjN2MzZWY1Yy1kOTM2LTQ5ZGMtYmJlNi1kZDQwNjk0NzI0MDAiLCJzdXBlclVzZXIiOnRydWUsImNvbnRhY3QiOmZhbHNlLCJlbWFpbCI6Imp1bGlhbjFAZXhhbXBsZS1lbWFpbC54eXoiLCJpYXQiOjE1NjU3MjI3OTJ9.3gAOcA7kTo_fQaNnCXITdT0bUA-XH0zaeoW-R_wVL5I”,
”webhookSecret”: ”u894dxPvJa”
}

Если бы мы были в production, нам нужно было бы пройти KYC, чтобы получить доступ к услугам Carbon на этом этапе. Однако, мы в sandbox, так что KYC сейчас не понадобится.

Дальше нам понадобится jwtToken (JSON Web Token) для всех наших будущих запросов, чтобы Carbon мог правильно идентифицировать и авторизовать нас. Сейчас мы можем создать contact, который описывает способ нашего взаимодействия с сервисами Carbon.

Code:
import requests
headers = {
    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjN2MzZWY1Yy1kOTM2LTQ5ZGMtYmJlNi1kZDQwNjk0NzI0MDAiLCJzdXBlclVzZXIiOnRydWUsImNvbnRhY3QiOmZhbHNlLCJlbWFpbCI6Imp1bGlhbjFAZXhhbXBsZS1lbWFpbC54eXoiLCJpYXQiOjE1NjU3MjI3OTJ9.3gAOcA7kTo_fQaNnCXITdT0bUA-XH0zaeoW-R_wVL5I'
}
root_path = ‘[url=https://sandbox.carbon.money%27/]https://sandbox.carbon.money[/url]’
create_contact_path = '/v1/contact/create'
data = {
  'emailAddress': '[email protected]',
}
req = requests.post(root_path + create_contact_path, data, headers = headers)
print(req)
print(req.text)

Наш ответ:

Code:

{
"message": "successfully created new contact!",
"code": 200,
"details":
  {
    "contactId": "72e75284-8010-4bbd-bfae-9843fcaf5b3c",
    "memo": "59356f62e57767c827a3",
    "addresses": {
      "tron": "TA6dYVjnZtE9mHCSYm5BCtmMa94JDEk42w",
      "eth": "0xd50d569810C445c283A64731f995d9Eb2B660d5F"
    }
  }
}

Важны данные, которые мы получили при создании contact, - наш contactId необходим для создания котировок и управления сделками, прочая информация относится к депонированию.

Следующие два шага можно выполнять в любом порядке:

     1. Мы можем внести средства (EOS, TRX, ETH) в рамках подготовки к внебиржевой торговле.
     2. Мы можем получить котировку для желаемого крипто-актива (EOS, TRX, ETH, CUSD).

Поскольку котировки актуальны 60 секунд, сначала мы внесем наши средства, а затем запросим котировку на интересующую нас пару.

Создание Депозита

Ответ при создании contact содержит информацию, необходимую для внесения депозита. Для блокчейнов Ethereum и Tron мы можем просто отправить наши средства на наш уникальный подконтрольный адрес, указанный в поле addresses нашего ответа при создание contact. Для EOS мы должны отправить наши средства на счет аккаунта Carbon с нашей уникальной меткой (memo).

Пути депозита (для contact, который мы только что создали):
Ethereum: отправляем средства на
0xd50d569810C445c283A64731f995d9Eb2B660d5F
Tron: отправляем средства на TA6dYVjnZtE9mHCSYm5BCtmMa94JDEk42w
EOS: отправляем средства на аккаунт carbonteswal с memo 59356f62e57767c827a3


Примечание: carbonteswal это депозитарный аккаунт Carbon в sandbox . Депозитарный аккаунт в production будет qindynasty11.

Подготавливаясь к созданию котировки, я отправляю 300 EOS через Scatter.


Не забудьте про memo!

Получение Котировки

Теперь, когда я депонировал мои EOS, я готов получить ОТС-котировку. Следуем приведенному ранее образцу:

Code:
get_quote_path = '/v1/otc/getPrice'
data = {
  'contactId': '72e75284-8010-4bbd-bfae-9843fcaf5b3c',
  'input': 'eos',
  'output': 'eth',
  'quantity': 300
}
req = requests.post(root_path + get_quote_path, data, headers = headers)

Это даст нам ответ:

Code:

{
  "token":"0e48f7ebac54e65e",
  "exchangeRate":"0.019562286961201156126",
  "input":"300 EOS",
  "output":"5.8686860883603468378 ETH",
  "timestamp":1565726930105,
  "quantity":"300",
  "usdValue":"1225.81"
}

Мы получили котировку - я обмениваю 300 EOS на ~5.8687 ETH (стоимостью $1225.81). Для сравнения, конвертер валют CoinMarketCap рассчитывает, что 300 EOS эквивалентны $1218.63 на момент котировки. Конечно же, это еще он не учитывает проскальзывания!

Осуществление ОТС-сделки

Теперь у нас есть все, что нужно - наши средства задепонированы, и наша котировка создана. Отправим token (в течение его 60 секунд жизни), и своп выполнится.

Code:
submit_token_path = '/v1/otc/submit'
data = {
  'contactId': contactId,
  'token': '0e48f7ebac54e65e',
}
req = requests.post(root_path + submit_token_path, data, headers = headers)

Что (в этом случае) вернется:

Code:

{
  "message":"Performing swap now.",
  "inputSwap":"eos input transfer pending",
  "outputSwap": "0xfb07d24002eb17bcb09c4cd7597d15b4a206b61295995f8d967d4578f5a318e9"
}

Если своп выполнен успешно, мы должны получить сообщение, как приведенное выше. Наши EOS обменены при помощи Carbon, и взамен мы имеем ETH на нашем депозитном счете Эфириума (транзакция outputSwap).

Примечание: EOS не имеют ID транзакции, потому что переводы EOS обрабатываются внутри платформы. Смотрите дополнительную информацию в документации Carbon.


Квитанция outputSwap

Вывод Средств

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

Code:
withdraw_path = '/v1/otc/withdraw'
data = {
  'contactId': contactId,
  'chain': 'eth',
  'address': '0x33E2a10456669E4CeeBFa693ED567a8Fd5E2e9d6',
  'asset': 'eth',
  'quantity': '5.868665088360346838'
}
req = requests.post(root_path + withdraw_path, data, headers=headers)

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

Code:

{
  "details": {
    "txId": "0x9e93296ba2a7ec0ee9482b4c3ddb571e9bd729293a3427b662c641e44568a131",
    "to":"0x33E2a10456669E4CeeBFa693ED567a8Fd5E2e9d6",
    "quantity":"5.868665088360346838 ETH"
  },
  "message":"withdrawal in progress"
}

Вывод средств был выполнен - мы можем проверить актуальный статус вывода средств, посмотрев txId в Ethereum Testnet Explorer.

Предоставление Сопутствующих Услуг

Если цикл депонирования / котировки / отправки / вывода сложнее, чем вы бы хотели, или если вы хотите попробовать более простую форму ОТС-торговли, Carbon также предлагает вариант двухкомпонентной ОТС-сделки, которая требует только получения котировки, а затем внесения средств для беспрепятственного получения обмениваемого актива на предоставленным пользователем адресе.

Также следите за появлением наших внутри платформенных и вне платформенных (для обмена крипты на фиат) туториалах, которые скоро станут доступны.

Дисклеймер: Carbon спроектировал и разработал это программное обеспечение по запросу оффшорного партнера.


Jump to: