Торговый робот для децентрализованной биржи в блокчейн-платформе Erachain
Позволяет получать курсы обмена с разных бирж (настройка внутри кода), и выставлять на децентрализованную биржу Эрачейн свои заявки по заданному алгоритму.
В программе есть разные потоки, получающие курсы с бирж по заданным парам (курсовик - Rater) и потоки, осуществляющие торговлю по заданному алгоритму (трейдеры Trader)
Для работы бота нужно запустить на локальной машине полную ноду Erachain и открыть доступ по RPC (на локальный адрес 127.0.0.1) и задать пароль у кошелька более 8-ми символов.
Перезадать пароль для кошелька можно так:
- удалить из рабочей папки ноды папки walletKeys и dataWallet
- запустить ноду и восстановить по СИДу кошелек и задать нужный пароль
Скопируйте файл secret-keys-orig.json
в secret-keys.json
и задайте в нем ключи доступа:
- к кошельку ноды Erachain - в параметре
wallet
- к вашему аккаунту на metals-api.com - в параметре
metals-api.com
См. как Развернуть проект в IDEA
Скопируйте файл settings-orig.json
в settings.json
и задайте в нем нужные параметры:
- Для выбора нужной сети блокчейн - отладочная или боевая используйте
network
- Для запуска без запуска торговцев:
only_raters
: true
Лучше всего запускать run.bat - так как там вставлен циклический запуск и другие настройки
Логи см в папке logs
Нажмите в черном окошке, где крутится прога Crtl-C
Если доступа к полной ноде нет то прога выйдет сразу же.
Если курс для трейдера не найден (например связь с биржой пропала) трейдер снимет все заявки.
Есть 4 курсовика (настройка пар внутри кода):
- RaterLiveCoin - за один запрос только одну пару
- RaterLiveCoinRUR - за один запрос только одну пару
- RaterPolonex - за один запрос выбирает все пары
- RaterWEX - бывший BTC-e, сейчас не работает
Каждый курсовик использует АПИ соотвествующей биржи. Так как данные бесплатные, не рекомендую чаще чем раз в 10 минут получать курсы
Файл настройки трейдеров содержит список настроек, каждый элемент которого запускающий своего трейдера. Причем трейдеры отличаются по названиям:
-
Guard - страж позиции, держит заданные позиции в стакане относительно курса обмена с внешних источников
-
GuardAbs - страж позиции с абсолютными значениями, то же что и Guard но отступы заданы в абсолютных значениях
-
RandomHit - случайные покупки по заданной схеме
{ "traderAddress": "7NhZBb8Ce1H2S2MkPerrMnKLZNf9ryNYtP", "sleepTime": 200, "cleanAllOnStart": true, "haveAssetKey": 1106, "wantAssetKey": 1108, "sourceExchange":"polonex", "limitUP": "0.01", "limitDown": "0.02", "scheme": { "1000":"0.1", "100":"0.03", "10":"0.001", "-10":"0.001", "-100":"0.03", "-1000":"0.1" }
traderAddress - счет с котрого будут создаваться ордера, должен быть в вашем кошельке
sleepTime - время сна - лучше ставить не чаще чем один блок
cleanAllOnStart - при запуске очищать стокан от всех своих ордеров. Очень удобно если у вас слетела прога
haveAssetKey - номер актива в Erachain. Прога найдет его и возьмет Имя из блокчейна
wantAssetKey - номер актива в Erachain
sourceExchange - по курсу какого источника работаем
limitUP - если превышена разница вверх нового курса от старого, то переносим все заявки в стакане
limitDown - если превышена разница вних нового курса от старого, то переносим все заявки в стакане
scheme - схема заявок в стакане:
- Количество продажи/покупки. Минус у количества означает покупку.
- Отклонение к среднему курсу. Минус означает отклонение "по рынку". Например минус задаем для торговца RandomHit
Вы можете разрабатывать дальнейшие стратегии бота, создавая свои классы и внедряя их в org.erachain.dextrader.traders.TradersManager.start