Путешествие в поисках пути программно короткие криптовалюты из США, можно подумать, это будет просто… подумай еще раз!
Обмены есть везде… Coinbase, Binance, Gemini, Robinhood, Kraken, eToro, Crypto.com, TradeStation, Coinmama,…
и те, у кого есть API… Binance, Bittrex, Poloniex, Coinbase, Kraken, BitFinex, Bitstamp, Hitbtc, BitForex,…
и еще меньше предлагают короткую торговлю с 🇺🇸 IP-адреса. Существуют ли биржи, которые предлагать короткую торговлю через API для клиентов из США? Binance.us не предлагает короткую торговлю клиентам из США.
Это сбивает с толку и в движении!
Ранее в этом году я начал искать ответ.
My Критерии были довольно простыми:
- должен быть законным для пользователей из США, никакого взлома VPN с целью притвориться, что вы живете в другом месте
- должен иметь API для своей биржи
- должен разрешить короткие продажи (маржинальная торговля)
- хороший если у них есть надежный чат/электронная почта службы поддержки клиентов
Почему? Потому что моя крипто-квантовая установка хочет закрывать короткие позиции в рамках своей стратегии, а на Binance.us она не может этого сделать, по крайней мере, на момент написания этой статьи.
Многие из вышеперечисленных бирж не сообщают вам четко, обслуживают ли они клиентов из США. пока не попробуешь зарегистрироваться. Это настоящая боль!
Другие допускают IP-адреса в США, но не предлагают короткие позиции, и опять-таки это нелегко определить, и на момент написания этой статьи это подвижная цель.
Некоторые из этих бирж имеют ужасающие комиссии. Etoro (лучше избегать этого) взимает плату за неиспользование учетной записи, в которую не входил вход в течение определенного периода времени. ⏰ 💵 Какие?
Другие биржи, такие как BitForex (также избегайте этого) создайте «чат» для поддержки, где тысячи пользователей «высказывают свое мнение». После нескольких дней попыток понять, как закоротить через API и получить сумасшедшие ответы, я сдался. 🐒 Какие?
Реальность такова, что большинство бирж сегодня не предназначены для разработчиков и специалистов по количественному анализу, почему они должны быть такими? Это не самая жирная часть рынка.
Наконец, после немалой работы, я нашел CoinMetro… базирующийся в Таллинн Эстония.
Вот грунтовка на этой бирже и их прейскурант. Регистрация проста: пользователи из США должны пройти аутентификацию и предоставить подтвержденный идентификатор.
Получить скидки, положительные флюиды и хорошо карма используя мой реферальный код для регистрации: https://coinmetro.com/?ref=georgek
Будьте терпеливы, поскольку проверка личности выполняется их службой поддержки. Криптовалюту можно перевести на ваш счет после проверки.
Регистрация в CoinMetro здесь.
После регистрации вы можете перейти на их 'Обмен'приборная панель и к ним'Маржа' панель приборов…
Это не интуитивно понятно, но вы можете ПРОКРУЛИТЬ ВНИЗ, чтобы увидеть раздел маржинального обеспечения на панели инструментов:
Выше приведен пример маржинального обеспечения в размере ~ 500 долларов США. Используйте ползунок, чтобы установить сумму из вашего кошелька. Вы можете легко получить это маржинальное обеспечение (опять же с помощью ползунка) после выхода из маржинальных позиций.
Комиссии за маржинальные сделки значительны: 0.20% от стоимости сделки для короткой позиции и покупки. в обе стороны… Сравните это с 0.15% туда и обратно для длинной позиции на Binance.us (с использованием BNB для оплаты комиссий).
Обратите внимание, что (0.20%), указанное на панели управления маржой, относится к позиции туда и обратно, то есть к общей сумме открытия и закрытия маржинальной позиции.
Кроме того, есть маржа 'плата за кредит»…
Интерес 0.08222% в день — рассчитывается каждые 4 часа по заемной марже
Давайте рассмотрим это на примере сценария: предположим, что вы открываете маржинальную позицию на 100 долларов США, удерживаете ее в течение 48 часов, а затем закрываете, комиссия будет равна:
- комиссия: 100*0.2%… 0.20$
- проценты: 0.08222 x 100 *2 … 0.17 доллара США.
Общая комиссия за эту сделку: $0.57 (0.37%)
Другой сценарий, давайте представим, что вы открываете маржинальную позицию на сумму 10000 10 евро, удерживаете ее в течение XNUMX дней, а затем закрываете, комиссия будет равна:
- комиссия: 10000*0.2% … 20,00 евро
- проценты: 0.08222 x 10000 *10 … 82,00 евро
Общая сумма комиссий за эту сделку: 102,00 евро (1.02%)
Как обычно, внимательно наблюдайте и учитывайте комиссионные.
Комиссия берется из сделки, рыночного ордера на покупку этой суммы в XCM (служебный токен для комиссий в CoinMetro), что создает больший объем и спрос на токен.
Комиссионные сборы можно увидеть на экране «История заказов» в разделе «Комиссии»:
Вы также можете получать «скидки» на комиссии, держа монету CoinMetro: XCM.
Ребята из чат-группы Telegram рассказали мне, что 'торговая площадка' XCM установлен на уровне 15 центов долларов США, т.е. его нельзя обменять на меньшую цену. На момент этой статьи его цена составляет 22 цента, так что это интересно.
Вот ссылка на API CoinMetro в Postman: https://documenter.getpostman.com/view/3653795/SVfWN6KS
Вы можете поэкспериментировать с интерфейсом REST API Postman. Затем выберите язык в верхнем раскрывающемся списке, чтобы просмотреть пример кода в этом стиле.
Здесь найдена оболочка Python для API REST CoinMetro:
Просто скопируйте CMapi.py в свой рабочий каталог и просто импортируйте его. Не нужно ничего устанавливать, это всего лишь тонкая обертка. Оболочка аутентификации включена и полезна.
Начнем с базового импорта:
импортировать CMapi
из даты и времени импорта даты и времени, timedelta
импорт JSON
запросы на импорт
И функция инициализации клиента с надежная реквизиты для входа:
клиент = CMapi.CMClient(электронная почта = 'ВАША ПОЧТА@somewhere.com', passwd='ВАШПАРОЛЬ', hashkey='Да')
Теперь мы можем получить торговые активы:
client.get_trading_assets()[{'имя': 'Биткойн',
«символ»: «БТД»,
«тип»: «монета»,
'canDeposit': Правда,
'canWithdraw': Правда,
'canTrade': Верно,
'sentimentData': {'sentiment': 32.276666666666664,
'процент': 0.8021655707519841},
'цифры': 6,
'minQty': 0.00025,
'макссвоп': 2500,
'canMarket': Верно,
'id': Нет},...
Баланс вашего счета:
балансы = client.get_balances(){'ETH': {'ETH': 0, 'EUR': -0.07, 'BTC': -2e-06, 'USD': -0.09},
'USD': {'USD': 494.66, 'EUR': 419.33, 'BTC': 0.01066, 'ETH': 0.1537},
'XCM': {'XCM': 0, 'EUR': 0, 'BTC': 0, 'USD': 0, 'ETH': 0},
«ИТОГО»: {»EUR»: 419.33, «BTC»: 0.01066, «USD»: 494.66, «ETH»: 0.1537},
'REF': {'XCM': 0, 'EUR': 0, 'BTC': 5e-06, 'USD': 0, 'ETH': 0}}
Получить исторические данные:
now = datetime.now() — timedelta(минуты= 3)свечи = client.get_historical_prices(pair='ETHUSD', timeframe=60000, From=now.strftime('%s')+'000')для c в свечах['candleHistory']:
print(datetime.fromtimestamp(c['timestamp']/1000.0), c['o'], c['c'])2021-08-15 16:44:00 3249.6723259755 3249.6723259755
2021-08-15 16:45:00 3249.6723259755 3249.6723259755
2021-08-15 16:46:00 3249.6723259755 3249.4520935
2021-08-15 16:47:00 3249.6723259755 3247.57055175
И еще, см. CMapi.py для получения информации.
В REST API есть конечные точки маржинальной торговли, но, к сожалению, в оболочке Python их нет (на момент написания этой статьи), поэтому мы прибегаем к выполнению запросов REST.
Создать заказ
Вот пример SHORT Market ордера через REST API:
БАЗА = "https://api.coinmetro.com"# продавать КОРОТКО с маржой
headers = {"Авторизация":client.bearerToken, 'Content-Type': 'application/x-www-form-urlencoded'}полезная нагрузка = f'orderType=market&buyingCurrency=USD&продажнаявалюта=ETH&Кол-во продаж=0.0315&маржа=истина'ответ = запросы.запрос("POST", f'{BASE}/exchange/orders/create', headers=headers, data = payload)
responseJson = json.loads(response._content)
Замените валюту и количество на свои переменные.
Вы также можете упаковать параметры в структуру JSON.
Обратите внимание маржа = истина параметр, также вы должны выделить маржинальное обеспечение (на панели управления), прежде чем пытаться торговать с использованием маржи с помощью API.
Полезная нагрузка ответа выглядит примерно так:
{'userID': '60e8fc89116db05a7fdb857b', 'orderID': '60e8fc89116db05a7fdb857b1629051520858cb64815e410cbbac', 'orderType': 'market', 'buyingCurrency': 'USD', 'sellingCurrency' : «ETH», «sellingQty»: 0.0315, «маржа» : «true», «timeInForce»: 4, «boughtQty»: 99.824, «soldQty»: 0.0315, «creationTime»: 1629051520860, «seqNumber»: 5018778582, «firstFillTime»: 1629051520860, «lastFillTime»: 1629051520860 5018778581, «заполняет» : [{'seqNumber': 1629051520860, 'timestamp': 0.0315, 'qty': 3169.015873015873, 'price': 1629051520860, 'side': 'sell'}], 'completionTime': 99.824, 'takerQty': XNUMX .XNUMX}
Обратите внимание 'количество получателя', это сумма маржинального обеспечения в долларах США, которую взяла эта транзакция.
Получайте заказы
Вы можете получить список выполненных заказов за определенный период времени:
сейчас = datetime.now() — timedelta(часы=5)
nowInt = int(now.strftime('%s')+'000')fills = client.get_order_fills(так как=nowInt)[{'пара': 'ETHUSD',
'seqNumber': 5018778581,
'метка времени': 1629051520860,
'количество': 0.0315,
«цена»: 3169.015873015873,
«сторона»: «продать»,
'orderID': '60e8fc89116db05a7fdb857b1629051520858cb64815e410cbbac'},
{'пара': 'ETHUSD',
'seqNumber': 5018888387,
'метка времени': 1629051959955,
'количество': 0.031454,
«цена»: 3173.6504101227188,
«сторона»: «купить»,
'orderID': '60e8fc89116db05a7fdb857b16290519599523046b30d3585a5d7'}]
Обратите внимание на элементы «количество» и «цена». Вы можете использовать кол-во * цена чтобы получить количество валюты и купить позицию, выполните следующие действия:
БАЗА = "https://api.coinmetro.com"количество = короткая['цена']*короткая['количество']# buy (закрытие короткой позиции)
headers={“Авторизация”:client.bearerToken, 'Content-Type': 'application/x-www-form-urlencoded'}полезная нагрузка = f'orderType=market&buyingCurrency=ETH&sellingCurrency=USD&sellingQty='+qty+'&margin=true'
ответ = запросы.запрос("POST", f'{BASE}/exchange/orders/create', headers=headers, data = payload)
responseJson = json.loads(response._content)
{'userID': '60e8fc89116db05a7fdb857b',
'orderID': '60e8fc89116db05a7fdb857b162911944571101e1277f9d9f8be1',
'orderType': 'рынок',
'buyingCurrency': 'ETH',
'sellingCurrency': 'USD',
'sellingQty': 99.943,
«маржа»: «истина»,
'timeInForce': 4,
'купленноеКол-во': 0.030455,
'soldQty': 99.943,
'время создания': 1629119445720,
'seqNumber': 5036606277,
'firstFillTime': 1629119445721,
'lastFillTime': 1629119445721,
'заполняет': [{'seqNumber': 5036606276,
'метка времени': 1629119445721,
'количество': 0.030455,
«цена»: 3281.6614677392877,
'сторона': 'купить'}],
'Время завершения': 1629119445721,
'takerQty': 0.030455}
И, наконец, чтобы закрыть существующую (заполненную) позицию, нам сначала нужна ее номер заказа:
сейчас = datetime.now() — timedelta(days=1)
nowInt = int(now.strftime('%s')+'000')
fills = client.get_order_fills(так как=nowInt)
Закрыть позицию
Закроем самый последний (исполненный) ордер:
# закрытие позиции# получить последний исполненный заказ
s = заполняет[-1]headers={“Авторизация”:client.bearerToken, 'Content-Type': 'application/x-www-form-urlencoded'}
полезная нагрузка = {}ответ = запросы.запрос("POST", f'{COINMETRO}/exchange/orders/close/'+s['orderID'], заголовки = заголовки, данные = полезная нагрузка)responseJson = json.loads(response._content)orderID 60e8fc89116db05a7fdb857b1629139458123bbb67a60d23c7838 open qty 0.0311
{'userID': '60e8fc89116db05a7fdb857b', 'orderID': '60e8fc89116db05a7fdb857b1629139458123bbb67a60d23c7838_CL', 'orderType': 'market', 'buyingCurrency': 'ETH', 'sellingC валюта': 'USD', 'маржа': 'true', ' buyQty»: 0.0311, «timeInForce»: 4, «boughtQty»: 0.0311, «soldQty»: 100.204, «creationTime»: 1629139525626, «seqNumber»: 5042414933, «firstFillTime»: 1629139525627, «lastFillTime» : 1629139525627, «заполняет» : [{'seqNumber': 5042414932, 'timestamp': 1629139525627, 'qty': 0.0311, 'price': 3221.993569131833, 'side': 'buy'}], 'completionTime': 1629139525627, 'takerQty': 0.0311. XNUMX}
Вы увидите всю эту активность, отраженную на вашей панели управления CoinMetro.
- 100
- 7
- Учетная запись
- ALGO
- Все
- API
- гайд
- Активы
- Аутентификация
- разрешение
- ЛУЧШЕЕ
- binance
- Немного
- Bitcoin
- Bitfinex
- Bitstamp
- bittrex
- НББ
- BTC
- купить
- расходы
- код
- Монета
- coinbase
- комиссии
- Создающий
- Полномочия
- крипто-
- Crypto.com
- Валюта
- служба поддержки
- Клиенты
- приборная панель
- данным
- Спрос
- DID
- цифры
- ETH
- ETHUSD
- Etoro
- EU
- EV
- обмена
- Биржи
- эксперимент
- Сборы
- в заключение
- Во-первых,
- функция
- Gemini
- GM
- хорошо
- группы
- взлом
- здесь
- HitBTC
- держать
- Как
- How To
- hr
- HTTPS
- ia
- интерес
- IP
- IP-адрес
- IT
- Kraken
- язык
- LINK
- Список
- Длинное
- Создание
- маржинальную торговлю
- рынок
- средний
- NY
- предлагают
- открытый
- заказ
- заказы
- poloniex
- цена
- Реальность
- Партнерская
- ответ
- ОТДЫХ
- установка
- Robinhood
- продаем
- настроение
- набор
- Короткое
- просто
- So
- Начало
- Стратегия
- поддержка
- цель
- Telegram
- время
- знак
- торговать
- торги
- Торговля
- торговый крипто
- сделка
- us
- USD
- пользователей
- утилита
- Сервисный токен
- ценностное
- проверка
- объем
- VPN
- W
- Кошелек
- Работа
- письмо
- X
- год