Exmo bot: Торговый бот Cryptohopper: подключайте ваш EXMO аккаунт

Содержание

Торговый бот Cryptohopper: подключайте ваш EXMO аккаунт

Cryptohopper — один из ведущих ботов для автоматической криптоторговли. Проект был создан в 2017 году, чтобы трейдеры могли круглосуточно торговать криптовалютами. Программное обеспечение бота работает на основе искусственного интеллекта и делает трейдинг более простым и эффективным. Платформа обслуживает более 400 000 трейдеров и обрабатывает 9 миллионов транзакций в месяц на сумму около 2 миллиардов долларов.

Теперь все трейдеры EXMO могут подключить Cryptohopper к своему аккаунту и использовать профессиональные инструменты без специальных навыков программирования.

Но это еще не все! Наши пользователи получат стартовый пакет Explorer совершенно БЕСПЛАТНО! Используйте код «EXMOEXPLORER», действительный до 23 сентября, чтобы оценить преимущества расширенного торгового функционала в течение 30 дней.

Подключить бот

Удобная автоматизированная торговля

Бот Cryptohopper позволяет управлять вашим портфелем и торговать всеми криптовалютами на EXMO, включая Биткоин, Эфириум и Лайткоин. Вы также получите доступ к различным торговым инструментам, таким как трейлинг стоп, маркет-мейкинг и арбитраж.

Бесплатное использование

Cryptohopper – полностью бесплатное программное обеспечение, поэтому воспользоваться преимуществами автоматической торговли криптовалютами может каждый. На платформе также доступны три дополнительных тарифных плана с расширенными наборами торговых инструментов.

Платформа социальной торговли

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

Профессиональные торговые инструменты

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

Как подключить аккаунт EXMO к Cryptohopper

Сейчас интерфейс бота доступен только на английском языке, но команда Cryptohopper планирует выпустить русскую версию в будущем.

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

  • Сгенерируйте ключи API в своем аккаунте EXMO, чтобы подключить его к боту.
  • Создайте аккаунт на платформе Cryptohopper и подключитесь к бирже EXMO.
Детальная инструкция
Подключайте бот и наслаждайтесь автоматизированной торговлей!

Бесплатный бот скальпер для биржи EXMO

Бесплатный бот скальпер для биржи EXMO служит для торговли по скальперской стратегии. В боте применена не сложная, но эффективная стратегия скальпинга основанная на входе по стратегии маркет-мейкера и выставлением тейк-профита, а также с усреднением цены, если вдруг цена пошла против сделки.

Рассмотрим стратегию детальнее. Бот-скальпер входит в сделку по стратегии меркет-мейкера — он ставит заявку первой в стакане цен, и постоянно двигает ее за ценой, так чтобы наш ордер всегда был первый, при этом по самой лучшей цене — до момента исполнения. После исполнения ордера, бот сразу выставляет тейк-профит. Также, если трейдер разрешил в настройках, то бот будет докупать по цене, которая на указанный % ниже от последней сделки. При этом, можно использовать коэффициент мартингейла, чтобы докупки были более эффективны. Количество докупок регулируется трейдером.

Также, в боте есть возможность установить фильтр по скользящей средней. Т.е., если цена выше скользящей, то бот не будет докупать, чтобы не взять позицию по высокой цене. Фильтр может быть отключен или включен трейдером.

Также, Вы можете ознакомится с ботом-скальпером в инструкции, а также очень детально рассмотрено в видео:

Стоимость бота скальпера — БЕСПЛАТНО

Чтобы получить торговый бот exmo, Вам надо зарегистрировать счет по партнерской программе центра АлгоТрейдинга на бирже EXMO (https://exmo.com/?ref=1781057 , или зеркалом https://exmo.me/?ref=1781057). Далее

скачиваете бота по ссылке , и запускаете (пароль к архиву — algo). Бот сам проверит, зарегистрирован бот по нашей партнерке или нет. Не надо никаких лицензий, никаких обращений ко мне, просто зарегистрировать счет, скачать бота – и зарабатывать!

Кроме этого — регистрируясь по ссылке проекта, Вы можете получить крупную скидку на комиссию -75% на мейкера и -50% на тейкера (бот торгует по тарифу мейкера). Для этого, после регистрации напишите письмо на адрес биржи [email protected] с темой AlgoTrading.cc . В письме укажите что Вы подключаетесь к боту AlgoTrading.cc и укажите свой логин на бирже. Помните — сэкономленная комиссия, это Ваша прибыль!

Важно. По данному торговому боту поддержка трейдеров не осуществляется, поддержка предоставляется только для бесплатных ботов на Binance. Если есть вопросы, вы можете ознакомится в инструкции (в папке с ботом), видео (выше) или в разделе вопросов-ответов. Несмотря на это подтверждаю — бот абсолютно рабочий и без багов

Торговый робот-скальпер для EXMO полностью автономный (требуется только установка и настройка), далее бот торгует без вмешательства оператора (стойкость к отключению от интернета, отсутствия связи с биржей и т.п. в боте реализована). Этот бот адаптирован под торговлю как на локальном компьютере, так и на удаленном сервере (под ОС Windows).

 

Как получить скальпера без реферальной программы?

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

 

Последние обновления

В этом подразделе ведется лог версий. Если у Вас более старая версия (в шапке бота (x.x)), то перекачайте по ссылке, которая выдана Вам, когда Вы приобрели бота. Обновления проводить только когда закрыты все сделки!

07/08/2020. Версия 1.2 (заменить Scalper.exe )

  • Поправлена работа фильтра, когда есть большие пропуски свечей

06/07/2020. Версия 1.1 (заменить Scalper.exe )

 

 

 

Simple Exmo Bot — бесплатный бот для биржи EXMO(Аналог Yobit Bot)


Бот здесь: http://www.kriptobym.ru
Лимиты ордеров: http://bit.ly/2DMTsRv
Всё про биржу EXMO: http://bit.ly/2ncnjIn
Биржа здесь: https://exmo.me/?ref=61715
В данном видео представлен запуск и работа бесплатного бота для биржи EXMO. Данный бот является аналогом такого хорошо зарекомендовавшего себя бота, как Yobit Bot и его модификации для биржи Yobit. Отличительной особенностью бота является — простота. интуитивно понятный интерфейс, возможность торговать не всем депозитом, а только его частью, так же есть возможность запуска 7 — 10 копий бота одновременно, то есть, практически все криптопары, которые есть на бирже EXMO. Бот торгует автоматически без вашего участия 24 часа в сутки и приносит вам прибыль. Самое главное — не жадничать и выставлять значения на покупку и на продажу не заоблачные….
Внимание! Для нормальной работы бота.
Мин. депозит на криптовалютных парах с рублями должен быть не менее 1450 руб (У вас на счёте биржи)
Мин. депозит на криптовалютных парах с BTC должен быть не менее 0,00250000 сат (У вас на кошельке биржи)
P.S можно конечно и меньше, но лучше не рисковать.
Так же, рекомендую выставлять параметры для торговли не особо высокие «Не жадничайте!» и будет вам удача и стабильный ежедневный доход.
Желаю всем удачи и хорошего профита!

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

Simple Exmo Bot — бесплатный бот для биржи EXMO

В данной статье мы с вами рассмотрим бесплатного торгового бота для биржи EXMO, настроим его и запустим для торговли на этой бирже. Бот бесплатный и работает с любой криптопарой на бирже EXMO.

Данный бот является аналогом такого хорошо зарекомендовавшего себя бота, как Yobit Bot и его модификации для биржи Yobit. Отличительной особенностью бота является — простота. интуитивно понятный интерфейс, возможность торговать не всем депозитом, а только его частью, так же есть возможность запуска 7 — 10 копий бота одновременно, то есть, практически все криптопары, которые есть на бирже EXMO. Бот торгует автоматически без вашего участия 24 часа в сутки и приносит вам прибыль. Самое главное — не жадничать и выставлять значения на покупку и на продажу не заоблачные….

Ключи апи создаём для просмотра баланска и трейдинга. А не для Вывода!

— Добавлена возможность использования прокси.

— Решена проблема в стратегии (ПРОФИТ 200), также изменен процент продажи, с 0.006 на 0.005.

— Исправлена проблема с ошибкой («Нет интернет подключения»)

— Добавлены все валютные пары!

— Добавлена возможность торговать определенным количеством валюты!

— Отображается баланс, по всем кошелькам.

— Добавлены настройки, для каждой валютной пары.

Внимание! Для нормальной работы бота.

Мин. депозит на криптовалютных парах с рублями должен быть не менее 1450 руб (У вас на счёте биржи)

Мин. депозит на криптовалютных парах с BTC должен быть не менее 0,00250000 сат (У вас на кошельке биржи)

P.S можно конечно и меньше, но лучше не рисковать.

Так же, рекомендую выставлять параметры для торговли не особо высокие «Не жадничайте!» и будет вам удача и стабильный ежедневный доход.

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

Удачной Вам торговли и хорошего профита!

Скачать:Simple Exmo Bot

 

Exmo Арбитраж и Pеальный Kурс

Проверьте последние живые

арбитражные возможности exmo

и несколько вариантов покупки/продажи на бирж платформа exmo.
Мы нашли 41 важных предложений криптоарбитража на EXMO (exmo.com)
exmo курсы и exmo арбитраж Дата последнего обновления: 1 мин. Назад

Все перечисленные рынки имеют объем больше или равный 0.25 BTC!

Mонеткупить биржкупить курспродавать биржпродавать курсприбыль %
XEM-USD NEM exmo$0.211131wazirx$0.2214784.67
XLM-USD Stellar exmo$0.389495wazirx$0.4069334.29
TRX-USD TRON fatbtc$0.099639exmo$0.1064466.39
ETH-USD Ethereum bhex$3555.4exmo$4591.1422.56
ETC-USD Ethereum Classic hitbtc$38.0433exmo$56.154932.25
ETH-BTC Ethereum finexbox0.0704exmo0.07286563.38
ETC-BTC Ethereum Classic hitbtc0.0006004exmo0.0008897232.52
XRP-USD Ripple exmo$1.1943wazirx$1.259345.16
ADA-USD Cardano bitforex$1.98119exmo$2.105825.92
DOGE-USD Dogecoin hitbtc$0.0707018exmo$0.27517674.31
ZRX-USD 0x exmo$1.26158wazirx$1.326694.91
EOS-USD EOS exmo$4.8118wazirx$5.098615.63
DOGE-BTC Dogecoin hitbtc0.00000111exmo0.0000043674.54
ALGO-USD Algorand exmo$1.87669wazirx$1.979515.19
WAVES-BTC Waves exmo0.00041826finexbox0.0004914.64
ZEC-USD Zcash probit$75.995exmo$167.90954.74
QTUM-BTC Qtum exmo0.00025469bhex0.0002695.32
BTC-USD Bitcoin exmo$63083.4wazirx$66476.15.10
LTC-BTC Litecoin mercatox0.00310279exmo0.003280215.41
MKR-BTC Maker exmo0.0456652upbit0.04699472.83
BCH-USD Bitcoin Cash exmo$615.215wazirx$647.3624.97
DAI-BTC Dai exmo0.00001591upbit0.000016262.15
DCR-BTC Decred hitbtc0.0017359exmo0.001795273.31
ATOM-USD Cosmos exmo$36.57wazirx$38.82445.81
DASH-USD Dash probit$106.16exmo$204.27948.03
NEO-USD NEO bhex$45.5exmo$47.20823.62
OMG-USD OMG Network exmo$14.5696wazirx$15.2134.23
TRX-BTC TRON bittrex0.0000016exmo0.000001684.76
DOT-USD Polkadot exmo$51.2926wazirx$53.95364.93
OMG-BTC OMG Network exmo0.00023053mercatox0.000237592.97
DAI-USD Dai fatbtc$0.975exmo$1.006483.13
LTC-USD Litecoin exmo$206.976wazirx$217.4314.81
NEO-BTC NEO vindax0.000722exmo0.000746363.26
VLX-BTC Velas exmo0.00000396coinex0.0000050421.43
DASH-BTC Dash exmo0.00323682probit0.00560142.21
IQN-USD IQeon exmo$2.64369bitforex$2.71662.68
SMART-USD SmartCash hitbtc$0.00508476exmo$0.00529774.02
BTG-BTC Bitcoin Gold vindax0.001026exmo0.001051012.38
USDT-USD Tether hotbit$0.8306exmo$1.0008117.01
GNY-BTC GNY exmo0.00000479bitmart0.00000527.88
ROOBEE-USD Roobee hotbit$0.008676exmo$0.008983.39
Exmo курсы
#Mонет курс Объем торгов за 24 часа BTC Объем торгов за 24 часа $
1ADA-BTC Cardano 0.0000333355.113,473,741
2ALGO-BTC Algorand 0.0000297745.76092,884,441
3ATOM-BTC Cosmos 0.00057770.398125,093
4BCH-BTC Bitcoin Cash 0.0097583413.7166864,597
5BTCV-BTC BitcoinV 0.000882150.000213
6BTG-BTC Bitcoin Gold 0.00105023.2723206,262
7BTT-BTC BitTorrent 0.000000060.02931,847
8CHZ-BTC Chiliz 0.000007340.12067,602
9CRON-BTC Cryptocean 0.000040562.493157,141
10DAI-BTC Dai 0.000015850.608338,343
11DASH-BTC Dash 0.003239876.6118416,761
12DCR-BTC Decred 0.001789752.0206127,364
13DOGE-BTC Dogecoin 0.000004370.776548,945
14DOT-BTC Polkadot 0.000813550.214313,508
15EOS-BTC EOS 0.000076350.685343,196
16ETC-BTC Ethereum Classic 0.0008904513.8043870,125
17ETH-BTC Ethereum 0.072858350.84353,204,812
18EXM-BTC EXMO Coin 0.000000980.747547,117
19GAS-BTC Gas 0.000142391.8624117,392
20GNY-BTC GNY 0.000004790.708944,684
21GUSD-BTC Gemini Dollar 0.000015680.802450,578
22HAI-BTC Hacken Token 0.000002150.000638
23HB-BTC HeartBout 0.000000050.0039246
24HP-BTC HeartBout Pay 0.000000030.0104656
25IQN-BTC IQeon 0.00004250.717945,251
26LINK-BTC ChainLink 0.000510610.01951,229
27LTC-BTC Litecoin 0.0032809830.28861,909,177
28MKR-BTC Maker 0.04631152.3167146,028
29MNC-BTC MainCoin 0.000000040.0022139
30NEO-BTC NEO 0.0007481422.50291,418,422
31OMG-BTC OMG Network 0.00023056.7306424,249
32ONE-BTC Harmony 0.00000520.0241,513
33ONG-BTC Ontology Gas 0.000018270.000425
34ONT-BTC Ontology 0.000014570.0029183
35PRQ-BTC PARSIQ 0.000011510.0023145
36QTUM-BTC Qtum 0.0002543.9924251,652
37ROOBEE-BTC Roobee 0.000000140.23614,876
38SGB-BTC Songbird 0.0000133900
39SMART-BTC SmartCash 0.000000080.0018113
40TONCOIN-BTC The Open Network 0.000012423.9946251,791
41TRX-BTC TRON 0.000001681.9322121,792
42UNI-BTC UNICORN Token 0.00042230.14949,417
43ADA-USD Cardano 2.10520.23191,275,275
44ALGO-USD Algorand 1.8758646.62472,938,889
45ATOM-USD Cosmos 36.570.758247,792
46BCH-USD Bitcoin Cash 614.62919.25081,213,433
47BTC-USD Bitcoin 63027.2293.5718,504,559
48BTG-USD Bitcoin Gold 66.47448.4097530,088
49CRON-USD Cryptocean 2.559993.4866219,770
50DAI-USD Dai 1.005980.480930,313
51DASH-USD Dash 204.37.096447,281
52DOGE-USD Dogecoin 0.2765.6564356,539
53DOT-USD Polkadot 51.29261.9238121,263
54EOS-USD EOS 4.81184.3275272,775
55ETC-USD Ethereum Classic 56.058422.64471,427,360
56ETH-USD Ethereum 4587123.9967,815,824
57EXM-USD EXMO Coin 0.061912.0878131,600
58GAS-USD Gas 90.03182,004
59GUSD-USD Gemini Dollar 0.9958230.735846,380
60IQN-USD IQeon 2.632213.6564230,473
61LTC-USD Litecoin 206.91144.65822,814,934
62MNC-USD MainCoin 0.002665870.04672,944
63NEO-USD NEO 47.167118.86781,189,292
64OMG-USD OMG Network 14.54518.627543,785
65PRQ-USD PARSIQ 0.7340.03862,433
66QTUM-USD Qtum 16.03135.7352361,506
67ROOBEE-USD Roobee 0.008983.8803244,586
68SMART-USD SmartCash 0.005297740.684743,159
69TRX-USD TRON 0.10647517.08951,077,200
70USDC-USD USD Coin 0.9967151.049566,153
71USDT-USD Tether 1.0008138.72762,441,112
72WAVES-USD Waves 26.455.74813,513,963
73WXT-USD Wirex 0.00630.02931,847
74XEM-USD NEM 0.2112284.852305,835
75XLM-USD Stellar 0.3894975.4974346,517
76XRP-USD Ripple 1.1949650.78423,201,074
77XTZ-USD Tezos 6.27520.178311,239
78ZEC-USD Zcash 167.723.31851,469,832
79ZRX-USD 0x 1.259316.78427,363
80BTC-USDC Bitcoin 0.00001590.818851,611
81VLX-BTC Velas 0.000003920.398325,106
82WAVES-BTC Waves 0.0004177678.96494,977,384
83WXT-BTC Wirex 0.000000110.0059372
84XEM-BTC NEM 0.000003362.5411160,173
85XLM-BTC Stellar 0.000006173.4857219,714
86XRP-BTC Ripple 0.0000189523.8751,504,910
87XTZ-BTC Tezos 0.000098550.003189
88XYM-BTC Symbol 0.0000124200
89YFI-BTC yearn.finance 0.5655430.0102643
90ZAG-BTC ZigZag 0.000010040.0043271
91ZEC-BTC Zcash 0.0026633614.8314934,866
92ZRX-BTC 0x 0.000019945.4508343,580

название : Exmo
Веб-сайт : https://exmo.com/?ref=1642355
Mонеты : 51
Общий объем BTC за 24 часа : 2,295.62 BTC
Общий объем USD за 24 часа : $144,652,148
Alexa ранг : 48129
SimilarWeb ежемесячные посетители : 38912620
Twitter подписчики : 16843
Twitter : @exmo_com

1С и Linux: bot exmo

# Настройки  на период 110 минут
# 1200 c  задержки покупки продажи
# порог curr -1  1
import time
import json
import requests
import urllib, http.client
import hmac, hashlib
import mysql.connector
import pandas as pd
import openpyxl

# Если нет нужных пакетов — читаем тут: https://bablofil.ru/python-indicators/
import numpy
import talib

from datetime import datetime

PERIOD = 4*60 #4*60 # Период в минутах для построения свечей краткосрочного MACD
#BUY=True   #True разрешено покупать
BUY=True
TRADE=True  #используем для долгосрочного MCAD сейчас отсутствует
SELL=True  #True разрешено продавать
GROWLAST = False
FIRST = False
# ключи API, которые предоставила exmo
#API_KEY = ‘K-            кей’
# обратите внимание, что добавлена ‘b’ перед строкой
#API_SECRET = b’S-секрет’

# аккаунт 1

# ключи API, которые предоставила exmo
#API_KEY = ‘K-‘
API_KEY = »

# обратите внимание, что добавлена ‘b’ перед строкой
#API_SECRET = b’S-‘
API_SECRET = b»

# Список пар, на которые торгуем
MARKETS = [
    ‘BTC_USD’
]

CAN_SPEND = 20 # Сколько USD готовы вложить в бай
MARKUP = 0.001 # 0.001 = 0.1% — Какой навар со сделки хотим получать

STOCK_FEE = 0.002 # Какую комиссию берет биржа
#PERIOD = 4 # Период в минутах для построения свечей
ORDER_LIFE_TIME = 0.5 # Через сколько минут отменять неисполненный ордер на покупку 0.5 = 30 сек.

USE_MACD = True # True — оценивать тренд по MACD, False — покупать и продавать невзирая ни на что

API_URL = ‘api.exmo.me’
API_VERSION = ‘v1’

#USE_LOG = False
USE_LOG = True

DEBUG = False # True — выводить отладочную информацию, False — писать как можно меньше
MM = False
SS = False
SS_last = False

numpy.seterr(all=’ignore’)

curr_pair = None

# Свой класс исключений
class ScriptError(Exception):
    pass
class ScriptQuitCondition(Exception):
    pass
    
# все обращения к API проходят через эту функцию
def call_api(api_method, http_method=»POST», **kwargs):
    
    payload = {‘nonce’: int(round(time.time()*1000))}

    if kwargs:
        payload.update(kwargs)
    payload =  urllib.parse.urlencode(payload)

    H = hmac.new(key=API_SECRET, digestmod=hashlib.sha512)
    H.update(payload.encode(‘utf-8’))
    sign = H.hexdigest()
    
    headers = {«Content-type»: «application/x-www-form-urlencoded»,
           «Key»:API_KEY,
           «Sign»:sign}
    conn = http.client.HTTPSConnection(API_URL, timeout=90)
    conn.request(http_method, «/»+API_VERSION + «/» + api_method, payload, headers)
    response = conn.getresponse().read()
    
    conn.close()

    try:
        obj = json.loads(response.decode(‘utf-8’))

        if ‘error’ in obj and obj[‘error’]:
            raise ScriptError(obj[‘error’])
        return obj
    except json.decoder.JSONDecodeError:
        raise ScriptError(‘Ошибка анализа возвращаемых данных, получена строка’, response)

def AO(ohlc, slow_period=34, fast_period=5):
    «»»
    Awesome Oscillator is an indicator used to measure market momentum. AO calculates the difference of a 34 Period and 5 Peri$
    The Simple Moving Averages that are used are not calculated using closing price but rather each bar’s midpoints.
    AO is generally used to affirm trends or to anticipate possible reversals. «»»
    ohlc[‘medean’] = (ohlc[‘high’]  + ohlc[‘low’]) / 2
    ohlc[‘ao_slow’] = pd.Series(ohlc[‘medean’]).rolling(window=slow_period).mean()
    ohlc[‘ao_fast’] = pd.Series(ohlc[‘medean’]).rolling(window=fast_period).mean()
    ohlc[‘ao’] = ohlc[‘ao_fast’] — ohlc[‘ao_slow’]
    #ohlc[‘ac’] = ohlc[‘ao’] — pd.Series(ohlc[‘ao’]).rolling(window=5).mean()
    #ohlc[‘jaw’] = pd.Series(ohlc[‘medean’]).rolling(window=13).mean().shift(8)
    #ohlc[‘teeth’] = pd.Series(ohlc[‘medean’]).rolling(window=8).mean().shift(5)
    #ohlc[‘lips’] = pd.Series(ohlc[‘medean’]).rolling(window=5).mean().shift(3)

def close_chk(data):
    #global PERIOD
    #global SS #доступ к сигналу стоплосса
    df = pd.DataFrame(data, columns=[‘date’, ‘open’, ‘high’, ‘low’, ‘close’])
    df[‘Date’] = df[‘date’]
    df[‘Date’] = df[‘Date’].astype(int)
    df[‘Date’] = pd.to_datetime(df[‘Date’], unit=’s’)
    df[‘dat’] = None
    AO(df, slow_period=34, fast_period=5)
    df[‘B1’] = None
    df[‘B2’] = None
    df[‘B3’] = None
    df[‘S1’] = None
    df[‘S2’] = None
    df[‘S3’] = None
    df[‘SS’] = None
    df[‘Trand’] = None
    df[‘BUY’] = None
    df[‘TRADE’] = None
    df[‘PRICE’] = None
    df[‘PRICE2’] = None
    df = df.iloc[34:]
    #print(df)
    dict =  df.to_dict(‘records’)
    Lesszero = True
    min1 = []
    max1 = []
    #pmin = 1 # относительное падение цены от начала работы бота
    #pmin1 = 1 # относительное падение цены от закупки
    #MM = False

    for index, elems in enumerate(dict):
        # Здесь для индикаторов  B1, B2, B3, S1, S2, S3
        # определим выше нуля или нет и обнулим списки
        if dict[index-1][‘ao’] >= 0 and dict[index][‘ao’] < 0 :
            Lesszero  = True # Сигнал нам нужно сохранить пока не пересечем нуль
            min1 = []
            max1 = []

        if dict[index-1][‘ao’] < 0 and dict[index][‘ao’] >= 0 :
            Lesszero  = False
            min1 = []
            max1 = []

        # B1 сигнал на покупку блюдце выше нуля
        #if dict[index-1][‘ao’] < 0 and dict[index][‘ao’] >= 0 :
        if not Lesszero:
            if (
               (dict[index-1][‘ao’] <  dict[index][‘ao’]
               and dict[index-2][‘ao’] >  dict[index-1][‘ao’]
               and  dict[index-2][‘ao’] > 0)
               ):
                elems[‘B1’] = True

        # B2 сигнал на покупку пересечение нуля снизу вверх
        if (
           dict[index][‘ao’] > 0 and  dict[index-1][‘ao’] <=0
           ):
            elems[‘B2’] = True

        # B3 сигнал на покупку два пика ниже нуля
        #if dict[index-1][‘ao’] >= 0 and dict[index][‘ao’] < 0 :
        if Lesszero:
        #print(dict[index][‘Date’])
        #min1.append(dict[index-1][‘ao’])
        # мы ловим второй пик, если он больше (ближе к нулю) чем первый
        # формируем сигнал на покупку
        # если он меньше (дальше от нуля)
        # удаляем первый пик
            if (
               dict[index-1][‘ao’] <  dict[index][‘ao’]
               and dict[index-2][‘ao’] >  dict[index-1][‘ao’]
               ):
                min1.append(dict[index][‘ao’])
                if len(min1) == 2 and  min1[0] >= min1[1]: # второй пик ниже
                    #print(‘delete’)
                    #print(min1)
                    min1.pop(0)  #удаляем первый пик
                    #print(min1)
                #print(dict[index][‘Date’])
                #print(min1)
            if len(min1) == 2 and  min1[0] < min1[1]:
                #S1_sell = True
                #print(‘buy’)
                #print(min1)
                elems[‘B3’] = True
                min1.pop()
                min1.pop()

        #S1 сигнал на продажу блюдце  ниже нуля
        if (
           dict[index-1][‘ao’] >  dict[index][‘ao’]
           and dict[index-2][‘ao’] <  dict[index-1][‘ao’]
           and dict[index][‘ao’] < 0
           ):
            elems[‘S1’] = True

        #S2 сигнал на продажу пересечение нуля сверху вниз
        if (
           dict[index][‘ao’] < 0 and  dict[index-1][‘ao’] >=0
           ):
            elems[‘S2’] = True

        # S3 сигнал на продажу два пика выше нуля
        #if dict[index-1][‘ao’] < 0 and dict[index][‘ao’] >= 0 :
        if not Lesszero: # выше нуля
            # мы ловим третий пик, если он ниже (ближе ок нулю) чем средний
            # формируем сигнал на продажу блюдце
            # если он выше (дальше от нуля)
            # удаляем первый пик
            if (
               dict[index-1][‘ao’] >  dict[index][‘ao’]
               and dict[index-2][‘ao’] <  dict[index-1][‘ao’]
               ):
                max1.append(dict[index-1][‘ao’])
                if len(max1) == 2 and  max1[0] <= max1[1]: # второй пик выше
                    #print(‘S3’)
                    #print(max1)
                    max1.pop(0)  #удаляем первый пик
                    #print(max1)
                #print(dict[index][‘Date’])
                #print(min1)
            if len(max1) == 2 and  max1[1] < max1[0]:
                #print(‘buy’)
                #print(min1)
                elems[‘S3’] = True
                max1.pop()
                max1.pop()
        # SS сигнал  стоплосса (справочно)
        #if SS: # сработал стоплосс
           #elems[‘SS’] = True
        #else:
           #SS = False # снимаем сигнал

        # Для транда MM опишем покупку
        #if (
           #elems[‘B1’] or elems[‘B2’] or elems[‘B3’]
           #(elems[‘B1’] or elems[‘B2’] or elems[‘B3’]) and elems[‘lips’] > elems[‘teeth’] and elems[‘lips’] > elems[‘jaw’]
           #elems[‘AB1’] or elems[‘AB2’] or elems[‘AB3’]
           # or elems[‘B2’] or elems[‘B3’]
           #):
            #MM = True

        # Для транда MM опишем продажу
        #if (
           #elems[‘S1’] or elems[‘S2’] or elems[‘S3’] or elems[‘SS’]
           #elems[‘AS1’] or elems[‘AS2’] or elems[‘AS3’]
           #):
            #MM = False
        #Trand = MM
        #elems[‘Trand’] = Trand

    #print(dict)
    Debug = True
    #Debug = False
    if Debug:
        col = (
              [‘Date’, ‘open’, ‘high’, ‘low’, ‘close’,
              ‘B1′,’B2′,’B3′,’S1′,’S2′,’S3′,’SS’,’ao’, ‘Trand’
              #,’Signal’,’pmin’,’pmin1′,’Profit’,’Prof’]
              ]
              )
        df = pd.DataFrame(dict, columns=col)
        print(df.tail(20))

    return dict[-1]

def get_close(data):
    global PERIOD
    close=numpy.asarray([float(item[‘close’]) for item in data])
    return (close[-1])

# Получаем с биржи данные, необходимые для построения индикаторов
#def get_ticks(pair):
def get_sql(PER):
    print(‘PER =’, PER)
    #resource = requests.get(‘https://api.exmo.me/v1/trades/?pair=%s&limit=10000’ % pair)
    #data = json.loads(resource.text)
    #_SQL = «»»select * from trade»»»
    dt = datetime.utcnow()
    dtt = dt.timetuple()
    #print(dtt)
    x = time.mktime(dtt)
    #print(x)
    #print(datetime.fromtimestamp(x))
    #x=int(time.time())
    #print(x)
    #print(datetime.fromtimestamp(x))
    pr = PER * 60
    #x= x — pr*110
    x= x — pr*70 # 70  свечей
    #_SQL = «»»select * from trade where date between 1519318790 and 1519318800; «»»
    _SQL = «»»SELECT
                    FLOOR(MIN(`date`)/%s)*%s AS date,
                    SUBSTRING_INDEX(MIN(CONCAT(`date`, ‘_’, id, ‘_’, price)), ‘_’, -1) AS `open`,
                    MAX(price) AS high,
                    MIN(price) AS low,
                    SUBSTRING_INDEX(MAX(CONCAT(`date`, ‘_’, id, ‘_’, price)), ‘_’, -1) AS `close`
              FROM trade
              WHERE date >= %s
              GROUP BY FLOOR(`date`/%s)
              ORDER BY date»»»
    #print(_SQL)
    #cur.execute(_SQL,(pr,pr,x,pr))
    db = mysql.connector.connect(host=»localhost», user=»u», passwd=»secret», db=»exmo»)
    cur = db.cursor()
    try:
        cur.execute(_SQL,(pr,pr,x,pr))
    except Exception as e:
        log(e)
    sdata=[]
    for item in cur.fetchall():
        #sdata.append({‘time’:datetime.utcfromtimestamp(int(item[0])),’date’:int(item[0]),’open’:float(item[1]),’high’:float(item[2]),’low’:float(item[3]),’close’:float(item[4])})
        sdata.append({‘date’:int(item[0]),’open’:float(item[1]),’high’:float(item[2]),’low’:float(item[3]),’close’:float(item[4])})
    cur.close()
    db.close()
    return sdata

def get_ticks ():
    global PERIOD
    global MACD
    flg = False
    data=[]
    # d текщее время на которое расчитывается свеча
    # data список предварительно рассчитанные свечи
    DEBUG = False
    #DEBUG = True
    if flg: #flg = True для ускорения используем кэш предрасчитанные свечи в списке data
        data1=[] #перегрузим  сюда свечи  до времени d с учетом запаса для расчета MACD
        for offset, elem in enumerate(data):
            #if True:
            if (data[offset][‘date’] <=d) and (data[offset][‘date’] >= (d — PERIOD*MACD*2*60)):
                data1.append(data[offset]) #не пропускаем последнюю свечу!
        cand2_st = data1[-1][‘date’] # из последней свечи возьмем возьмем начала периода для расчета неполной свечи
        cand2_end = d # время UTC
        data2=get_sql(cand2_st, cand2_end, PERIOD) #расчет неполной свечи на момент d
        data1.pop() #удалим последнюю, полную закрытую свечу
        if len(data2)>0: # при расчете свечи на момент d может вернуться пустой список (если сделок не было)
            data1.append(data2[-1])
        if DEBUG: #отладка
            print()
            print(‘Расчет свечей из кэша :’)
            print(‘data1 =’, data1)
            print(‘cand2_st = ‘, cand2_st)
            print(‘cand2_end = ‘, cand2_end)
            print()
            print(‘data2=’,data2)
            print()
            print(«Удаляем последнюю свечу»)
            print(‘data1 =’, data1)
            print()
            print(‘Добавим последню свечу’)
            print(‘Если data2 не пустой’)
            print(‘Список в работу целиком :’)
            print(‘data1 =’, data1)
        return data1
    else: #flg = False свечи рассчитываются напрямую запросом sql
        #cand2_st = d — PERIOD*MACD*2*60 # время UTC
        #cand2_end = d # время UTC
        #data2=get_sql(cand2_st, cand2_end, PERIOD)
        data2=get_sql(PERIOD)
        if DEBUG:# отладка
            print()
            print(‘Тоже напрямую через SQL :’)
            #print(‘cand2_st = ‘, cand2_st)
            #print(‘cand2_end = ‘, cand2_end)
            print()
            print(‘data2 =’, data2)
        return data2

# Выводит всякую информацию на экран, самое важное скидывает в Файл log.txt
def log(*args):
    global USE_LOG
    if USE_LOG:
        # аккаунт 1
        l = open(«./log1.txt», ‘a’, encoding=’utf-8′)
        # аккаунт 2
        #l = open(«./log2.txt», ‘a’, encoding=’utf-8′)
        print(datetime.utcnow(), *args, file=l)
        l.close()
    print(datetime.utcnow(),’ ‘, *args)

# Ф-ция для создания ордера на покупку
def create_buy(pair):
    #global USE_LOG
    #USE_LOG = True
    log(pair, «Создаем ордер на покупку»)
    log(pair, ‘Получаем текущие курсы’)
    
    offers = call_api(‘order_book’, pair=pair)[pair]
    try:
        #current_rate =  float(offers[‘ask’][0][0]) # покупка по лучшей цене
        #current_rate = sum([float(item[0]) for item in offers[‘ask’][:3]])/3 # покупка по средней цене из трех лучших в стакане
        #current_rate = sum([float(item[0]) for item in offers[‘bid’][:1]])+0.0000001 # покупка по самой выгодной цене в стакане
        current_rate =  float(offers[‘ask’][0][0]) # покупка по лучшей цене
        #can_buy = CAN_SPEND/current_rate
        can_buy = float(balances[pair[-3:]])/current_rate
        print(‘buy’, can_buy, current_rate)                           
        log(pair, «»»
            Текущая цена — %0.8f
            На сумму %0.8f %s можно купить %0.8f %s
            Создаю ордер на покупку
            «»» % (current_rate, CAN_SPEND, pair[0], can_buy, pair[1])
        )      
        new_order = call_api(
            ‘order_create’,
            pair = pair,
            quantity = can_buy,
            price = current_rate,
            type = ‘buy’
            )               
        log(«Создан ордер на покупку %s» % new_order[‘order_id’] )
    except ZeroDivisionError:
        print(‘Не удается вычислить цену’, prices)
    #USE_LOG = False  
    
# Ф-ция для создания ордера на продажу
def create_sell(pair):
    #global USE_LOG
    #USE_LOG = True
    balances = call_api(‘user_info’)[‘balances’]
    #if float(balances[pair[:-4]]) >= CURRENCY_1_MIN_QUANTITY: # Есть ли в наличии CURRENCY_1, которую можно продать?
    wanna_get = CAN_SPEND + CAN_SPEND * (STOCK_FEE + MARKUP)
    order_amount = float(balances[pair[:-4]])
    new_rate = wanna_get/order_amount
    new_rate_fee = new_rate/(1-STOCK_FEE)  
    offers = call_api(‘order_book’, pair=pair)[pair]      
    current_rate = float(offers[‘bid’][0][0]) # Берем верхнюю цену, по которой кто-то покупает
    #choosen_rate = current_rate if current_rate > new_rate_fee else new_rate_fee       
    choosen_rate = float(offers[‘bid’][0][0]) # Берем верхнюю цену, по которой кто-то покупает
    print(‘sell’, balances[pair[:-4]], wanna_get, choosen_rate)
    log(pair, «Создаем ордер на продажу»)
    log(pair, «»»
    Итого на этот ордер было потрачено %0.8f %s, получено %0.8f %s
    Что бы выйти в плюс, необходимо продать купленную валюту по курсу %0.8f
    Тогда, после вычета комиссии %0.4f останется сумма %0.8f %s
    Итоговая прибыль составит %0.8f %s
    Текущий курс продажи %0.8f
    Создаю ордер на продажу по курсу %0.8f
    «»»
    % (
        wanna_get, pair[0], order_amount, pair[1],
        new_rate_fee,
        STOCK_FEE, (new_rate_fee*order_amount — new_rate_fee * order_amount * STOCK_FEE), pair[0],
        (new_rate_fee*order_amount — new_rate_fee*order_amount * STOCK_FEE)-wanna_get, pair[0],
        current_rate,
        choosen_rate,
        )
    )
    new_order = call_api(
        ‘order_create’,
        pair=pair,
        quantity = balances[pair[:-4]],
        price= choosen_rate,
        type=’sell’
    )
    log(pair, «Создан ордер на продажу %s» % new_order[‘order_id’])
    print(‘Создан ордер на продажу’, pair[:-4], new_order[‘order_id’])
    if DEBUG:
        print(‘Создан ордер на продажу’, pair[:-4], new_order[‘order_id’])
    #USE_LOG = False
# Ф-ция для определения падения  цены покупки
def price_buy(): # Возвращает цену покупки
    traders_orders = call_api(‘user_trades’, pair=pair, limit=10)[pair]
    buy_orders = []
    for order in traders_orders:
        if order[‘type’] == ‘buy’:
            buy_orders.append(order)
    price_buy = float(buy_orders[0][‘price’]) # Цена покупки по  последнему ордеру
    return (price_buy)

def get_grow(macdhist, last, porog):
    if macdhist >= porog:
        grow = True
    if macdhist  <= -porog:
        grow = False
    if macdhist < porog and macdhist > -porog:
        grow = last
    return grow

# Программа
date_last= 0 # предыдущая дата
date_last1 = 0
#trand = False
Trand_last = False
rows_list = []
# Бесконечный цикл процесса — основная логика
while True:
    try:
        print(‘Аккаунт 1’)
        #log(‘eue’)
        for pair in MARKETS: # Проходим по каждой паре из списка в начале\           
            try:
            # Получаем список активных ордеров
                try:
                    opened_orders = call_api(‘user_open_orders’)[pair]
                except KeyError:
                    if DEBUG:
                        print(‘Открытых ордеров нет’)
                        log(pair, «Открытых ордеров нет»)   
                    opened_orders = []
                sell_orders = []
                # Есть ли неисполненные ордера на продажу CURRENCY_1?
                #log(pair, » Обработка…»)
                for order in opened_orders:
                    if order[‘type’] == ‘sell’:
                        # Есть неисполненные ордера на продажу CURRENCY_1, выход
                        raise ScriptQuitCondition(‘Выход, ждем пока не исполнятся/закроются все ордера на продажу (один ордер может быть разбит биржей на несколько и исполняться частями)’)
                        # пропуск продажи
                        # pass
                    else:
                        # Запоминаем ордера на покупку CURRENCY_1
                        sell_orders.append(order)
                # Проверяем, есть ли открытые ордера на покупку CURRENCY_1
                if sell_orders: # открытые ордера есть
                    for order in sell_orders:
                        # Проверяем, есть ли частично исполненные
                        if DEBUG:
                            print(‘Проверяем, что происходит с отложенным ордером’, order[‘order_id’])
                        try:
                            order_history = call_api(‘order_trades’, order_id=order[‘order_id’])
                            # по ордеру уже есть частичное выполнение, выход
                            #raise ScriptQuitCondition(‘Выход, продолжаем надеяться докупить валюту по тому курсу, по которому уже купили часть’)                              
                            #LK
                            time_passed = time.time() — int(order[‘created’])
                            if time_passed > ORDER_LIFE_TIME * 60:
                                log(‘Пора отменять ордер %s’ % order)
                                # Ордер уже давно висит, никому не нужен, отменяем
                                call_api(‘order_cancel’, order_id=order[‘order_id’])
                                log(‘Ордер %s отменен’ % order)
                                raise ScriptQuitCondition(‘Отменяем ордер -за ‘ + str(ORDER_LIFE_TIME) + ‘ минут не удалось купить ‘)
                        except ScriptError as e:
                            if ‘Error 50304’ in str(e):
                                if DEBUG:
                                    print(‘Частично исполненных ордеров нет’)
                                time_passed = time.time() — int(order[‘created’])
                                if time_passed > ORDER_LIFE_TIME * 60:
                                    log(‘Пора отменять ордер %s’ % order)
                                    # Ордер уже давно висит, никому не нужен, отменяем
                                    call_api(‘order_cancel’, order_id=order[‘order_id’]) 
                                    log(‘Ордер %s отменен’ % order)
                                    raise ScriptQuitCondition(‘Отменяем ордер -за ‘ + str(ORDER_LIFE_TIME) + ‘ минут не удалось купить ‘)
                                else:
                                    raise ScriptQuitCondition(‘Выход, продолжаем надеяться купить валюту по указанному ранее курсу, со времени создания ордера прошло %s секунд’ % str(time_passed))
                            else:
                                raise ScriptQuitCondition(str(e))
                else: # Открытых ордеров нет
                    # Начинаем нашу торговлю
                    data1 = get_ticks()
                    PRICE2 = get_close(data1) # Текущая close по незакрытой свече
                    print(‘Текущая цена для стоплосса = ‘, PRICE2)
                    #print(‘последняя цена = ‘, get_close(data1))
                    ind = close_chk(data1[:-1]) # удаляем последнюю свечу
                    #print(ind)
                    # логгируем при смене свечи
                    if ind[‘date’] != date_last1: # логгируем при смене свечи
                        log(ind)
                        date_last1 = ind[‘date’]
                        SS = False
                    ind[‘dat’] = datetime.utcnow()
                    #Trand = ind[‘Trand’]
                    # Для транда MM опишем покупку
                    if (
                       ind[‘B1’] or ind[‘B2’] or ind[‘B3’]
                       ):
                        MM = True
                    # Для транда MM опишем продажу
                    if (
                       ind[‘S1’] or ind[‘S2’] or ind[‘S3’] or SS
                       ):
                        MM = False
                    Trand = MM
                    ind[‘Trand’] = Trand
                    ind[‘SS’] = SS
                    ind[‘BUY’] = BUY
                    ind[‘TRADE’] = TRADE
                    print(‘Trand = ‘, Trand)
                    print(‘SS = ‘, SS)
                    print(ind)
                    #if Trand != Trand_last and Trand: #Если Trand и сменился
                        #BUY = True #
                    #macd_advice = close_chk(data1) #открытые свечи
                    #macdhist = macd_advice[‘macdhist’]
                    #low = macd_advice[‘low’]
                    #print(‘low = ‘,low)
                    #high = macd_advice[‘high’]
                    #lowerband =  macd_advice[‘lowerband’]
                    #upperband =  macd_advice[‘upperband’]
                    #fastd = macd_advice[‘fastd’]
                    #macdh_2 = macd_advice[‘macdhist-2’]
                    #PRICE2 = macd_advice[‘close’]
                    # ниже сделано для стоплосса:
                    #PRICE2 = get_close(data1) # Текущая close по незакрытой свече
                    #print(‘Текущая цена для стоплосса = ‘, PRICE2)
                    #GROW  = get_grow(macdh_1, GROWLAST, 12)
                    #aro14 = macd_advice[‘aro14-1’]
                    #aro14_1 = macd_advice[‘aro14-2’]
                    #aro7 = macd_advice[‘aro7-1’]
                    #aro7_1 = macd_advice[‘aro7-2’]
                    #print(macd_advice)
                    # Определение  смены тренда
                    # при торговле по тренду если продадим в цикле покупок до смены тренда
                    # нужно запретить повторные закупки TRADE = False
                    #if ( #условие смены тренда тоже что и после продажи
                       #not GROW
                       #GROW and not GROWLAST
                       #or (macd_advice[‘aro7-1’] < 0 and GROW)#  Если пошел слив
                       #) :
                        #print(‘Сменился тренд торгуем’)
                        #TRADE = True
                    #print(‘TRADE = ‘, TRADE)
                    #print(call_api(‘user_info’))
                    balances = call_api(‘user_info’)[‘balances’]
                    #print(‘balances’, balances)
                    reserved = call_api(‘user_info’)[‘reserved’]
                    min_quantityy = call_api(‘pair_settings’,pair=pair)[pair]
                    CURRENCY_1_MIN_QUANTITY = float(min_quantityy[‘min_quantity’])
                    # Покупка
                    if True:
                    #if BUY and TRADE :
                    #if TRADE: #Если TRADE = False значит сработал стоплосс ждем окончания свечи
                        if float(balances[pair[-3:]]) >= 20: # Если есть больше 20 USD
                            #if mm[2][-1]>=data1[-2][‘high’] and macd_advice[‘k’] >= 1.001 : #покупаем
                            #if macd_advice[‘k’] >= 1.001 : #покупаем
                            #if macd_advice[‘ksma7’] >= 1.001 and mm[2][-1]>=data1[-2][‘high’]: #покупаем
                            #if  GROW and not GROWLAST: # После смены тренда будем покупать при aro(7) < 0
                                #FIRST = True #
                            #print(«Ждем покупки»)
                            if ( # Условие покупки
                               #FIRST # После смены тренда будем покупать при aro(7) < 0
                               #or GROW and aro7 > 0 # Повторная закупка при aro(7) > 0
                               BUY and Trand
                               #and fastd > 22
                               ):
                                log(ind)
                                log(‘Создаем ордер на покупку’)
                                BUY = False #  указываем цикл продаж
                                TRADE = True
                                create_buy(pair=pair)
                            else:
                                print(‘Ждем покупки’)
                        else:
                            order = str(‘ В ордере :’ + str(float(reserved[pair[:-4]])) + ‘. ‘ + str(pair[:-4])) if float(reserved[pair[:-4]]) > 0.0 else »
                            #raise ScriptQuitCondition(‘Не хватает денег для торговли: баланс ‘ + str(round(float(balances[pair[-3:]]))) + ‘ ‘ + str(pair[-3:]) + order)
                    #else:
                        #print(‘Ожидание окончания свечи’)
                    # Продажа
                    if TRADE:
                        print(‘торгуем!!!’)
                        #if not BUY and TRADE:
                        #print(call_api(‘user_info’))
                        #balances = call_api(‘user_info’)[‘balances’]
                        #print(‘balances’, balances)
                        #reserved = call_api(‘user_info’)[‘reserved’]
                        #min_quantityy = call_api(‘pair_settings’,pair=pair)[pair]
                        #CURRENCY_1_MIN_QUANTITY = float(min_quantityy[‘min_quantity’])
                        #print(‘Баланс: ‘+str(float(balances[pair[:-4]]))+’ ‘+str(pair[:-4]))
                        #if True:
                        if float(balances[pair[:-4]]) >= CURRENCY_1_MIN_QUANTITY: # Есть ли в наличии CURRENCY_1, которую можно продать?
                            print(‘Баланс: ‘+str(float(balances[pair[:-4]]))+’ ‘+str(pair[:-4]))
                            PRICE = price_buy() # Цена покупки последнего ордера
                            ind[‘PRICE’] = PRICE
                            ind[‘PRICE2’] = PRICE2
                            if PRICE2 < PRICE * 0.99: #условие стоплосса
                                # SS будем держать пока не смениться свеча
                                SS = True # сигнал стоплосса сработает в следующем цикле
                                log(‘Это был стоплосс!!!’)
                            #print(‘Цена последнего ордера = ‘,PRICE)
                            #if aro7 > 0: # когда  стал положительным
                                #FIRST = False # отменяем
                            if ( # Условие продажи
                               not Trand
                               #or PRICE2 < PRICE * 0.99 #условие стоплосса
                               #or PRICE2 < 8415 #условие стоплосса
                               #not GROW
                               #or  aro14_1 == 100 and aro14 < 100 and GROW and BUY100 and not FIRST # при aro14 = 100   январь 2018
                               #or aro7 < 0 and GROW and not FIRST #  Для января 2018 жесткое условие
                               ) :#Продаем
                                TRADE = False # Блокируем до конца тренда
                                #TRADE =  True
                                #BUY = True
                                BUY = True
                                log(‘Сработал сигнал sell’)
                                log(‘Создаем ордер на продажу’)
                                log(‘PRICE = ‘, PRICE)
                                log(‘PRICE2 = ‘, PRICE2)
                                log(ind)
                                create_sell(pair=pair)
                            else:
                                print(‘Ожидаем продажу !!!’)
                        else:
                            #print(‘Баланс: ‘+str(float(balances[pair[:-4]]))+’ ‘+str(pair[:-4]))
                            print(‘Нет BTC для продажи’)
                    else:
                        print(‘TRADE = ‘, TRADE)
                if ind[‘date’] != date_last: # логгируем при смене свечи
                        date_last = ind[‘date’]
                        rows_list.append(ind)
                if ind[‘SS’] != SS_last: # логгируем при изменении сигнала SS
                        SS_last = ind[‘SS’]
                        rows_list.append(ind)
            except ScriptError as e:
                    print(e)
            except ScriptQuitCondition as e:
                print(e)
            except Exception as e:
                print(«!!!!»,e)
            #except (KeyboardInterrupt, SystemExit):
                #print(«Exiting…»)
                #col = (
                      #[‘Date’, ‘Date_int’, ‘open’, ‘high’, ‘low’, ‘close’, ‘ao’
                      #]
                      #)
                #df = pd.DataFrame(rows_list, columns=col)
                #df = pd.DataFrame(df, columns=col)
                #filename = ‘backup-‘+ datetime.utcnow().strftime(«%Y%m%d-%H%M%S»)+’.xlsx’
                #writer = pd.ExcelWriter(filename)
                #df.to_excel(writer,’Sheet1′)
                #writer.save()
                #print(‘Файл ‘ + filename + ‘ сохранен!’)
                #break
        time.sleep(1)
        #GROWLAST = GROW
    except Exception as e:
        print(e)
    except (KeyboardInterrupt, SystemExit):
        print(«Exiting…»)
        col = (
              [
              ‘dat’,’Date’,
              #’open’, ‘high’, ‘low’,
              ‘close’,
              ‘B1′,’B2′,’B3′,’S1′,’S2′,’S3′,’SS’,’ao’,
              ‘Trand’,’BUY’,’TRADE’,’PRICE’,’PRICE2′
              ]
              )
        df = pd.DataFrame(rows_list, columns=col)
        #df = pd.DataFrame(df, columns=col)
        filename = ‘backup-‘+ datetime.utcnow().strftime(«%Y%m%d-%H%M%S»)+’.xlsx’
        writer = pd.ExcelWriter(filename)
        df.to_excel(writer,’Sheet1′)
        writer.save()
        print(‘Файл ‘ + filename + ‘ сохранен!’)
        break

Exmo bot на google таблицах.(бесплатный облачный сервис)

Бот для торговли на криптобирже Exmo

Добрый день народ. Представляю вашему вниманию моё творение.

Если кто то увлекается торговлей на криптобирже. И хотел бы автоматизироват процессы купли продажы то пищите ваши стратегии и я их реализую в своем боте.

Это статья скопирована с форуме где я размещаю своего бота

https://forum.bits.media/index.php?/topic/84594-exmo-bot-%D0%BD%D0%B0-google-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0%D1%85%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D1%8B%D0%B9-%D0%BE%D0%B1%D0%BB%D0%B0%D1%87%D0%BD%D1%8B%D0%B9-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81/

Бот обновлен 26.06.2018г.

Добрый день товарищи.

Предлагаю вашему вниманию очень перспективный сервис на мощностях гугл и самое главное бесплатно.

От вас требуется лишь учетная запись в google.

На данный момент реализовано следующее

  • Купить продать

  • Стакан

  • Баланс.

  • Просмотр открытых ордеров

  • Просмотр закрытых ордеров

  • Бот скальпер.

  • Триггеры.

  • Оптимизирован код.

  • Добавлена возможность поднятие собственного телеграмм бота. Который будет уведомлят о состоянии бота.

Итак первые сложности.

  • Бот может работать только 6 мин(ограничения самого google сервиса).

  • Лечения этого будет в триггерах что потребует переработки кода.

Что будет реализовано

  • Триггеры

  • Сделать как сервис чтоб бот сам запускался и работал. От пользователя требуется лишь ввод данных в таблице.

  • Возможно добавлю функцию телеграмм бота

  • Запуск бота через телеграмм

  • Инфо о состояния бота через телеграмм

  • Ручная торговля через телеграмм

  • Получения уведомления в телеграмм

  • И в конце когда все будет отработано в одной бирже

  • Будет добавлены все топовые биржы

  • Стратегии

  • Стратегия мартингейл

  • ну и какие придумаю

  • Будет добавлен Арбитраж

  • внутребиржевой

  • Межбиржевой

Торговый бот Cryptohopper: подключите свой счет EXMO

Cryptohopper — ведущий бот для автоматической торговли, основанный в 2017 году, чтобы упростить торговлю криптовалютами в режиме 24/7. Это программа на основе искусственного интеллекта, которая делает торговлю криптовалютой доступной, интересной и стоящей для всех. Платформа обслуживает более 400 000 трейдеров и обрабатывает более 9 миллионов транзакций на сумму около 2 миллиардов долларов в месяц.

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

Но это еще не все! трейдеров EXMO получат стартовый пакет Explorer БЕСПЛАТНО! Используйте код скидки «EXMOEXPLORER» , действительный до 23 сентября, чтобы пользоваться расширенными торговыми функциями в течение 30 дней.

Подключите бота

Удобная автоматическая торговля

Бот Cryptohopper предлагает быструю автоматическую торговлю и управление портфелем для всех криптовалют, доступных на EXMO, включая Биткойн, Ethereum и Litecoin. У вас также будет доступ к полному набору инструментов, таких как функции трейлинга, маркет-мейкинг и арбитраж.

Бесплатно

Cryptohopper полностью бесплатен, поэтому вам не нужно ничего платить, чтобы пользоваться преимуществами автоматической криптотрейдинга. Однако платформа предлагает три дополнительных тарифных плана с расширенными инструментами для покупки.

Социальная торговая платформа

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

Инструменты для экспертов

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

Подключение аккаунта EXMO к Cryptohopper

Начать работу с Cryptohopper можно всего за несколько минут.

  • Для начала сгенерируйте ключи API в своем аккаунте EXMO, чтобы связать его с ботом.
  • Создайте учетную запись на платформе Cryptohopper и подключитесь к EXMO.
Подробное руководство
Легко подключите бота и воспользуйтесь передовым автоматизированным решением!

Подключите своего бота к EXMO

Подключите своего бота к EXMO #

EXMO — европейская криптовалютная биржа, основанная в 2014 году. В этом руководстве показано, как подключить свою учетную запись EXMO к Cryptohopper. Важно отметить, что при создании ключей API на этой бирже права на снятие средств по умолчанию отключены. Мы также рекомендуем вам не использовать право вывода средств при торговле на Cryptohopper.

  1. Зайдите в Exmo и создайте учетную запись, нажав «Зарегистрироваться».

  2. Выберите имя пользователя, введите свой адрес электронной почты, номер телефона, пароль и затем нажмите «Принять условия и положения».

  1. Подтвердите свою электронную почту

  1. Следующим шагом будет проверка вашей учетной записи. Здесь вы должны заполнить личные данные, указанные в вашем паспорте.

  1. Проверьте свой паспорт, удостоверение личности или водительские права и введите необходимые данные.

  1. Загрузите изображение вашего паспорта, удостоверения личности или водительских прав.

  1. Сделайте селфи, следуя приведенным инструкциям.

  1. Вам не нужно ждать подтверждения подтверждения, чтобы создать ключ API.

  1. Щелкните свое имя пользователя в правом верхнем углу и щелкните «Настройки». Затем нажмите «API», а затем «Создать ключ API».

  1. Дайте ключу API имя, например Cryptohopper.

  1. Теперь вам нужно создать ключи API! Убедитесь, что вы подтверждаете создание ключей API по электронной почте.

  1. Перейдите в свою учетную запись Cryptohopper и найдите файл baseconfig. Оттуда вы можете щелкнуть вкладку с надписью «Обмен».

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

Не можете увидеть свой обменный баланс? Несколько вещей, которые могут помешать вашему хопперу синхронизировать средства вашей биржи.В большинстве случаев в используемом вами браузере включено автоматическое заполнение. Это означает, что браузер сам заполняет определенные текстовые поля. Вы можете сделать три вещи:

  • Отключить автозаполнение
  • Использовать режим инкогнито вашего браузера
  • Использовать браузер, который вы не часто используете
  • Еще одна вещь, которая может помешать синхронизации вашего Hopper, — это менеджеры паролей, отключите это для Cryptohopper

И готово! Посетите наш форум сообщества, где пользователи делятся своими настройками Hopper.

У вас есть дополнительные вопросы о вашей учетной записи EXMO? Ознакомьтесь с FAQ по EXMO.


Последнее обновление



exmo api — labmazurokcom / blockchain Wiki

Введение

Сайт: https://exmo.com/

Документация: https://exmo.com/en/api

Пределы: НЕИЗВЕСТНО.

Комиссия за использование бота: 0,2% (мейкер и тейкер).

Книга заказов

https: // api.exmo.com/v1/order_book/?pair=BTC_USD&limit=50

N.B. Максимальный лимит — 1000.

N.B. У них также есть пара BTC_USDT.

Ответ:

 {
    "BTC_USD": {
        "ask_quantity": "3",
        "ask_amount": "500",
        "ask_top": "100",
        "bid_quantity": "1",
        "bid_amount": "99",
        "bid_top": "99",
        "просить": [
            ['8197.99764077', '0,02328718', '190.9082467'],
            ['8198', '0,00002172', '0.17806056 '],
            ...
        ]
        "делать ставку": [
            ['8161.26830272', '0.00100225', '8.17963115'],
            ['8161.26818147', '0.00746168', '60 .89677156 '],
            ...
        ]
    }
} 
Поле Значение
ask_quantity сумма всех значений количества в заявках на продажу
ask_amount сумма всех значений итоговой суммы в заявках на продажу
ask_top минимальная цена продажи
bid_quantity сумма всех значений количества в заказах на покупку
bid_amount сумма всех значений итоговой суммы в заявках на покупку
bid_top максимальная цена покупки
ставка список заявок на покупку, где каждое поле: цена, количество и сумма
спросить список заявок на продажу, где каждое поле: цена, количество и сумма

Тикер

https: // api.exmo.com/v1/ticker

N.B. Возвращает сразу все пары.

Ответ:

 {
    'BTC_USD': {
        'buy_price': '8174.9999999',
        'sell_price': '8175',
        'last_trade': '8175',
        'высокий': '8235.99651404',
        'low': '7476.99957425',
        'avg': '7823.

812', 'объем': '1626.36514197', 'vol_curr': '13295535.03545099', 'обновлено': 1523621733 }, 'BCH_ETH': { 'buy_price': '1.50766132', 'sell_price': '1.50991226 ', 'last_trade': '1.504646', 'high': '1,572', 'low': '1.457', 'avg': '1,50363679', 'объем': '210.72959741', 'vol_curr': '316.15761499', 'обновлено': 1523621732 }, ... }
Поле Значение
высокий максимальная цена сделки за последние 24 часа
низкий минимальная цена сделки за последние 24 часа
в среднем средняя цена сделки за последние 24 часа
об. Объем сделок за последние 24 часа
vol_curr общая стоимость всех сделок за последние 24 часа
last_trade цена последней сделки
купить_цена текущая максимальная цена покупки
цена_продажи Текущая минимальная цена продажи
обновлено дата и время обновления данных

Валютный лимит

https: // api.exmo.com/v1/pair_settings/

Виды заказа

Заявка на покупку / продажу (что-то похожее на лимитную заявку на других биржах ?!)

Пользователь может установить как цену, так и количество. (Может быть выполнено частично ?!)

Рыночный ордер на покупку / рыночный ордер на продажу

Пользователь может установить только количество базовой валюты для покупки или продажи соответственно

Общая рыночная заявка на покупку / Общая рыночная заявка на продажу

Пользователь может установить только количество валюты котировки.Это рыночный ордер на покупку / продажу на определенную сумму.

Пример: пользователь устанавливает количество 100 на паре BTC / USD. Это означает, что он хочет купить BTC на сумму 100 долларов США.

Пример запроса частного API

 запросов на импорт
импортировать hashlib
импорт hmac
время импорта
импортировать urllib

api_key = 'API_KEY'
api_secret = 'API_SECRET'

nonce = int (раунд (time.time () * 1000))

params = {}
params ['nonce'] = nonce
params ['пара'] = 'BTC_USD'
params ['количество'] = 5
params ['price'] = 5
params ['type'] = 'продавать'
params = urllib.parse.urlencode (параметры)

api_secret = байты (api_secret, кодировка = 'utf-8')

H = hmac.new (ключ = api_secret, digestmod = hashlib.sha512)
H.update (params.encode ('utf-8'))
знак = H.hexdigest ()

заголовки = {
    "Content-type": "application / x-www-form-urlencoded",
    "ключ": api_key,
    «Знак»: знак
}

endpoint = "https://api.exmo.com"
req = "/ v1 / order_create"

r = requests.post (конечная точка + запрос, данные = параметры, заголовки = заголовки)

печать (r.text) 

Exmo — PalmaBot

Содержание

Подключите PalmaBot к Exmo
  1. Войдите или зарегистрируйтесь на Exmo https: // exmo.me

2. Введите идентификатор пользователя и пароль, заполните код и нажмите « Sign In »
Если у вас включена 2FA (рекомендуется), вам будет предложено ввести свой код 2FA, а затем
, вы должны нажать « Войти » снова.

3. Перейдите в меню в верхнем правом углу (ваше имя пользователя) и выберите « Settings »

4. Теперь щелкните API. После этого вы можете включить необходимые разрешения и внести в белый список IP-адреса вашего
(в разделе «Добавить новый IP-адрес»), включая palmas IP 46.19.9.48
Мы рекомендуем вам включить « API-доступ только с доверенных IP-адресов »
После того, как вы ввели IP-адреса, вы должны нажать « Добавить », чтобы они были сохранены.
Затем нажмите « Generate API Key »

5. Введите код аутентификатора 2FA (если включен)

6. Скопируйте и вставьте данные ключа API, секрет в настройки API PalmaBot. Затем нажмите кнопку « OK ».

7. Теперь, чтобы активировать ключ API, вы должны нажать кнопку «Активировать».Затем вас попросят подтвердить по электронной почте
.

8. После перехода по ссылке в электронном письме от Exmo вас попросят подтвердить активацию ключа API
, нажав синюю кнопку « Активировать ключ ».

9. Теперь ваш ключ API подтвержден, и вы можете вернуться к настройкам API PalmaBot.

10. После того, как вы скопировали все данные в настройки API PalmaBot, убедитесь, что вы выбрали правильный обмен
, нажмите «Тест» и сохраните данные API

10.

Поздравляем! Вы только что подключили PalmaBot к своей учетной записи Exmo.

Чтобы просмотреть видеоруководство по копированию и вставке ключей API из учетной записи обмена ноутбука / настольного компьютера на мобильное устройство, щелкните здесь: видео с руководством по установке API.

Напишите боту / в помощь

Лучшие боты для торговли криптовалютой в 2021 году

Тщательная проверка криптовалютных рынков на ежедневной или, возможно, ежечасной основе: это прилив адреналина, но является ли это наиболее эффективным способом торговли? Если ваша цель — эффективность, могут помочь алгоритмические боты для криптовалютной торговли.

Что такое боты для торговли криптовалютой?

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

Короче говоря, боты для криптовалюты позволяют торговать на основе данных и тенденций, а не на эмоциональном порыве. В конечном итоге это обычно увеличивает их прибыль, сводит к минимуму их риски и ограничивает их потери на биржах.Кроме того, боты могут приносить пассивный доход 24 часа в сутки. Спите ли вы, катаетесь на велосипеде, проводите презентацию, да что угодно: вы также можете зарабатывать на автоматических сделках.

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

Общие стратегии ботов

Стратегии арбитражных ботов

Арбитражные боты — это компьютерная программа, которая проверяет и сравнивает цены на монеты на разных биржах, чтобы совершать автоматические сделки, использующие расхождения в ценах.Например, биткойн-арбитражный бот может определить, что BTC торгуется на 200 долларов за токен на Kraken больше, чем на bitFlyer, в результате чего бот покупает BTC на bitFlyer и быстро продает его на Kraken, чтобы получить небольшую прибыль.

Стратегия грид-бота

Грид-бот прост и хорош для новичков. Вы просто устанавливаете несколько «сеток» верхних и нижних пределов стоимости для определенной криптовалюты. Затем бот совершает серию взаимозаменяемых сделок, чтобы постепенно накапливать прибыль.Допустим, у вас есть следующие параметры для COMP:

  • Нижний предел: 1000 долларов

  • Верхний предел: 2000 долларов

  • Количество сетки: 10

Если цена COMP составляет 1500 долларов при программировании bot, у вас будет 4 открытых ордера на продажу и 5 открытых ордеров на покупку. Если цена вырастет до 1600 долларов, бот автоматически разместит два парных ордера: продать по 1600 долларов и купить по 1500 долларов. Прибыль в размере 100 долларов добавляется к вашему балансу.

9 лучших торговых роботов для криптовалюты

Лучший универсальный торговый бот: Trality

. Что отличает Trality, так это мощный Python API, который означает, что трейдеры, разбирающиеся в Python, могут использовать знакомый язык и библиотеки для разработки ботов. Его функции кодирования в браузере включают интеллектуальное автозаполнение и бэктестинг, а в ближайшее время будут доступны отладка в браузере и ребалансировка. Хотя эта новая платформа все еще добавляет возможности, ее простая в использовании интеграция с Python и подробная документация делают сложную сборку ботов более прозрачной.

  • Биржи : Binance, Kraken, Coinbase Pro, Bitpanda

  • Комиссии : бесплатно примерно до 70 долларов в месяц (бесплатный тариф удивительно надежен)

  • Язык программирования: Python

  • Также универсален: Cryptohopper

    Cryptohopper обладает огромной мощью: он работает с более чем 100 токенами на 13 биржах и имеет сотни тысяч пользователей. Таким образом, его пакеты — от 0 до 99 долларов в месяц — предлагают что-то для всех.Новички найдут множество образовательных ресурсов, шаблонов и сигналов, а эксперты смогут разработать и протестировать свои собственные стратегии. Размещенный в облаке для быстрого развертывания, обширный набор инструментов Cryptohopper и удобный интерфейс делают его хорошим универсальным выбором.

    • Биржи : HitBTC, Okex, Bitpanda, Bitvavo, Binance, Binance US, Coinbase Pro, Bittrex, Poloniex, Bitfinex, Huobi, KuCoin, Kraken, Crypto.com от

    • до долларов США: бесплатно до

    • сборов / mo

    • Язык программирования: Пользовательский интерфейс, программирование не требуется

    Лучший бот для продвинутых трейдеров: 3Commas

    3Commas предлагает сложные варианты торговли в удобном и удивительно доступном пакете, что делает его хорошим выбором для независимых трейдеров, желающих применять более сложные стратегии.Например, торговля опционами — непростой бизнес, но 3Commas имеет простой, хорошо визуализированный пользовательский интерфейс, который помогает инвесторам программировать автоматические стратегии опционов. В качестве дополнительного бонуса блог 3Commas предлагает ценные идеи, аналитику и руководства для криптотрейдеров.

    • Биржи : Binance, FTX, Bybit, BitMEX, Deribit, Bittrex, Binance DEX, Binance US, Bitfinex, Bitstamp, CEX.IO, Coinbase Pro, EXMO, Gate.io, HitBTC, Huobi, Kraken, KuCoin , OKEx, Poloniex, Yobit

    • Комиссии : Бесплатно до 99 долларов в месяц

    • Язык программирования: Пользовательский интерфейс, программирование не требуется

    Лучший бот для начинающих трейдеров: CryptoHero

    С очень доступным цены и очень простой пользовательский интерфейс, CryptoHero идеально подходит для трейдеров, которые плохо знакомы с криптоботами.Он также оптимизирован для ИИ, еще одного преимущества для (доверчивых) ограниченных во времени или новичков.

    • Биржи : Binance, Bittrex, Huobi, Okex, Coinbase Pro, FTX, Kraken, KuCoin, Bitfinex, Gate.io, Binance US, Indodax

    • Сборы : от

      до
    • долларов США бесплатно
    • Язык программирования: Пользовательский интерфейс, программирование не требуется

    Торговый бот с лучшими бесплатными визуальными стратегиями: Superalgos

    В то время как большинство бесплатных ботов предназначены для людей с навыками программирования, Superalgos предлагает визуальный интерфейс, похожий на те, которые используются чаще нашел в платных предложениях.Это открывает доступ к торговле крипто-ботами новой аудитории нетехнических пользователей. Его возможности на удивление надежны и включают автоматическую торговлю, визуальное проектирование стратегии, а также предварительное и обратное тестирование. Более того, инициатива направлена ​​на то, чтобы оставаться бесплатным, открытым исходным кодом и нулевым доверием. Недавно он запустил собственный токен SA, позволяющий сторонникам стать частью сообщества управления.

    • Биржи : в основном Binance и Binance US

    • Комиссии : Нет, токен SA доступен в Binance Smart Chain

    • Язык программирования: Пользовательский интерфейс, программирование не требуется43

Лучшие встроенные боты: Pionex

Pionex — это криптовалютная биржа, которая дает пользователям доступ к 12 бесплатным торговым ботам, включая сеточных и арбитражных ботов.Ценник в $ 0 привлекателен, но так же и тот факт, что, поскольку боты встроены в биржу, пользователю не нужно бороться с какими-либо интеграциями API. Однако имейте в виду; чтобы пополнить свой счет в долларах США, вам необходимо загрузить второе приложение Pionex Lite.

  • Биржи : Pionex (арбитраж на спотовых фьючерсах)

  • Комиссии : Без ежемесячной цены, но 0,05% комиссии за каждую торговую транзакцию сети, и Pionex берет 10% прибыли арбитража

  • Язык программирования: Пользовательский интерфейс, программирование не требуется

Лучший бесплатный торговый инструмент для сделок с малой задержкой: Ichibot

Ichibot — это больше инструмент, чем бот, поскольку он полностью запускается через интерфейс командной строки и не будет принимать никаких торговых решений самостоятельно.Это платформа для разработки торговых стратегий для тех, кто предпочитает код кликам. Пользователи могут разрабатывать сложные торговые стратегии для Binance и FTX и выполнять их в режиме реального времени, чтобы воспользоваться рыночными колебаниями.

Лучший бот для социальной торговли: Shrimpy

Shrimpy ориентирован на долгосрочное управление портфелем. Помимо включения автоматической торговли, ребалансировки портфеля и мониторинга производительности между биржами, Shrimpy также предоставляет пользователям уникальную социальную функцию. Трейдеры могут копировать торговые стратегии ведущих пользователей.Или, если их собственные сделки очень успешны, они могут оказаться на вершине «таблицы лидеров» Shrimpy, что даст им возможность получать ежемесячный доход от публикаций. Сообщество Shrimpy, большое количество поддерживаемых бирж и простой в использовании интерфейс сделали его ведущей платформой для автоматической торговли.

  • Биржи : Bibox, Binance, Binance US, Bitfinex, Bitmart, Bitstamp, Bittrex, Bittrex Global, Coinbase Pro, FTX, FTX US, Gemini, HitBTC, Huobi Global, Kraken, KuCoin, Okex

    , Polaris
  • Комиссии : от 19 до 299 долларов в месяц

  • Язык программирования: Пользовательский интерфейс, программирование не требуется

Лучшие бесплатные боты DeFi: TokenSets

TokenSets — это мощная инфраструктура управления портфелем DeFi, которая не имеет ( еще) установлены торговые комиссии.«Наборы» DeFi — это обеспеченные портфели, которые балансируются в соответствии со стратегиями каждого инвестора. В то время как некоторые наборы управляются индивидуальными или институциональными разработчиками, другие являются «роботизированными наборами», которые автоматически перебалансируются на основе определенных технических индикаторов. TokenSets — отличный вариант для инвесторов, заинтересованных в начале работы с DeFi — особенно сейчас, до того, как начнутся его торговые сборы.

  • Интеграции : AAVE, Compound, Balancer, Uniswap

  • Сборы : Нет

  • Язык программирования: Пользовательский интерфейс или вы можете создавать наборы с написанием смарт-контракта в твердом состоянии

Как вы подаете налоги на торговлю крипто-ботами?

Вы выбрали своего бота, запрограммировали его стратегии и наблюдали за его результатами.Теперь, как вы подаете налоги на эти транзакции? Проще говоря, криптоботы торгуют на биржах от вашего имени. Итак, когда приходит время отчитываться о криптовалюте по налогам, вам просто нужно импортировать свои сделки с этих бирж в программное обеспечение для налогообложения криптовалют. Это тот же самый процесс, который вы использовали бы для сделок, которые совершаете сами.

При выборе стратегии бота очень важно знать, сколько сделок будет совершать бот. Высокочастотные торговые роботы, совершающие десятки или сотни сделок в день, могут приводить к десяткам — или даже сотням — тысяч транзакций, о которых необходимо сообщать.Это увеличивает сложность ваших налоговых расчетов. Однако, если вы определили, что высокочастотная пассивная криптовалютная торговля является правильной стратегией для вас, TokenTax может обрабатывать такую ​​торговлю с помощью соответствующего плана налогообложения криптовалют.

Связанное содержимое

Чтобы быть в курсе последних новостей, подписывайтесь на TokenTax в Twitter @tokentax.

Обмен криптовалюты EXMO пострадал от сбоев из-за DDoS-атаки

Британская криптовалютная биржа EXMO столкнулась с перебоями в работе своих сервисов, поскольку стала жертвой распределенной атаки типа «отказ в обслуживании» (DDoS), в результате которой ее платформа была отключена примерно на 3 года. часов, второй приступ за последние 2 месяца.

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

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

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

EXMO поражали более одного раза

EXMO уже были целью хакеров еще в декабре 2020 года, когда биржа потеряла около 5% своих активов, по словам Марии Станкевич, руководителя отдела развития биржи.

Тогда эти 5% составляли около 10,5 миллионов долларов в BTC; ETH, XRP и другие криптовалюты, при этом часть средств возвращается в сотрудничестве с другими биржами.

Хотя в этом случае не было украдено никаких активов, атака помешала использованию платформы законными пользователями, что привело к падению объема торгов примерно на 20% по данным coingecko.

Атаки на централизованные биржи — это не новость

EXMO — не единственная биржа, ставшая целью хакеров, но и последнее дополнение к списку, который уже учитывался такими крупными биржами, как Binance, Bitfinex, OKEx и KuCoin.

Хотя в большинстве случаев эти атаки предназначены только для того, чтобы нарушить возможности бирж по предложению своих услуг, атаки, подобные той, от которой пострадали EXMO и KuCoin в декабре и сентябре 2020 года соответственно, привели к убыткам в миллионы долларов.

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

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

Что касается прошлых атак на другие биржи, генеральный директор OKEx Джей Хао и генеральный директор Binance Чанпэн Чжао заявили, что, по их мнению, за атаками стоят конкуренты.Однако EXMO еще не опубликовали более подробную информацию о том, как произошла атака и кто, возможно, стоял за ней.

Децентрализованные биржи продолжают набирать популярность

Децентрализованные биржи (DEX), которые часто рассматриваются как более безопасная и эффективная альтернатива, продолжают набирать популярность в криптосообществе за счет предоставления услуг, не связанных с хранением, более низких комиссий и более широкого списка криптовалют.

Еще 15 января Uniswap достигла объема торгов в 100 миллиардов долларов всего через 9 месяцев после запуска в мае 2020 года, став первой DEX, достигшей этого рубежа.

В январе биржа достигла 20 миллионов долларов ежемесячного объема торгов, став одним из основных игроков в экосистемах криптовалюты, поскольку крупные централизованные биржи стремятся сохранить свое преимущество в этом секторе.

Популярные DEX, такие как 1inch и Sushiswap, также продолжают расти в популярности, и в январе 2021 года общая ниша в этой нише превысила 63 миллиарда долларов. С такой суммой интереса справедливо предположить, что DEX будут продолжать расширяться на рынке. этот год.

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

пакет exmo — github.com/thrasher-/gocryptotrader/exchanges/exmo — pkg.go.dev

пакет GoCryptoTrader Exmo

Этот пакет exmo является частью кодовой базы GoCryptoTrader.

Это все еще в активной разработке

На этой доске Trello вы можете отслеживать идеи, запланированные функции и то, что происходит в процессе: https://trello.com/b/ZAhMhpOy/gocryptotrader.

Присоединяйтесь к нам, чтобы обсудить все, что связано с GoCryptoTrader! GoCryptoTrader Slack

Обмен Exmo
Текущие характеристики
Как включить
  // Биржи будут абстрагированы в дальнейших обновлениях, а примеры будут
  // поставляем тогда
  
Как совершать общедоступные / частные звонки в REST
  • Если разрешено через «конфигурацию».json, обмен будет добавлен в Массив IBotExchange в боте go var Bot , и вы сможете использовать только функции интерфейса оболочки для доступа к данным обмена. Просмотреть процедуры.go для примера использования интеграции с GoCryptoTrader. Элементарный пример ниже:

main.go

  var e exchange.IBotExchange

for i: = range bot.exchanges {
  if bot.exchanges [i] .GetName () == "Exmo" {
    e = bot.exchanges [i]
  }
}

// Публичные вызовы - функции-оболочки

// Получает информацию о текущем тикере
галочка, err: = e.GetTickerPrice ()
if err! = nil {
  // Обработка ошибки
}

// Извлекает текущую информацию из книги заказов
ob, err: = e.GetOrderbookEx ()
if err! = nil {
  // Обработка ошибки
}

// Частные вызовы - функции оболочки - убедитесь, что ваши APIKEY и APISECRET
// устанавливаем, а AuthenticatedAPISupport имеет значение true

// Получает информацию о текущем счете
accountInfo, err: = e.GetAccountInfo ()
if err! = nil {
  // Обработка ошибки
}
  
  • Если включено через индивидуальный импортный пакет, примитивный пример ниже:
  // Общественные звонки

// Получает информацию о текущем тикере
тикер, err: = e.GetTicker ()
if err! = nil {
  // Обработка ошибки
}

// Извлекает текущую информацию из книги заказов
ob, err: = e.GetOrderBook ()
if err! = nil {
  // Обработка ошибки
}

// Частные вызовы - убедитесь, что ваши APIKEY и APISECRET установлены и
// AuthenticatedAPISupport имеет значение true

// GetUserInfo возвращает информацию об аккаунте
accountInfo, err: = e.GetUserInfo (...)
if err! = nil {
  // Обработка ошибки
}

// Отправляет ордер и обмен и возвращает его tradeID
tradeID, err: = e.Trade (...)
if err! = nil {
  // Обработка ошибки
}
  
Щелкните шеврон GoDocs выше, чтобы просмотреть текущую информацию GoDoc для этого пакета
Вклад

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

При отправке PR соблюдайте наши правила кодирования:

Код
  • должен соответствовать официальным правилам форматирования Go (т. Е. Использовать gofmt).
  • Код
  • должен быть задокументирован в соответствии с официальными рекомендациями Go в отношении комментариев.
Обновлено: 03.11.2021 — 12:19

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *