Skip to content

Бот для автоматической торговли на криптовалютных биржах

License

Notifications You must be signed in to change notification settings

cryptokupets/bot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cryptotrader

Бот для торговли на криптовалютных биржах. На данный момент разработано:

  • редактирование стратегии в браузере
  • тестирование стратегии на исторических данных взятых с сайта CryptoCompare
  • трейдер в режиме советов:
  • покупать,
  • продавать,
  • удерживать,
  • отменять ордер
  • трейдер в режиме автоматической торговли:
  • следит за новыми свечами
  • при появлении новой свечи применяет стратегию
  • создает лимитный ордер
  • следит чтобы ордер был первым в списке ask или bid
  • отменяет ордер, если он не исполнен, а сигнал изменился

Подготовка

  1. Установите node js
  2. Установите MongoDB, используется подключение "mongodb://localhost:27017/crypto"

Установка

  1. npm install
  2. Устраните ошибку в OData Server
  3. npm run build

Запуск

  1. npm start Приложение использует порт 3000 по умолчанию.
  2. Откройте в браузере http://localhost:3000/

Использование

Раночные данные

  1. На странице Market Data создайте набор данных, для этого введите код валюты, обычно это BTC, код валюты, которую будете покупать, и период (в данный момент доступны только M1, H1 или D1).
  2. Перейдите в созданный набор.
  3. Нажмите "Обновить" и дождитесь обновления.
  4. Нажмите "Загрузить" и выберите необходимый диапазон, обратите внимание на ограничения по выгружаемым данным.

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

Стратегия

  1. Создайте первую стратегию и откройте.
  2. На экране слева CodeEditor введите стратегию для примера:
// module.exports = function(candles, tulind, console, callback)
{
    const PERIOD = 14;

    if (candles.length < PERIOD * 2 - 1) {
        callback(null, 0);
    } else {
        const high = candles.map(e => e.high).slice(-(PERIOD * 2 - 1));
        const low = candles.map(e => e.low).slice(-(PERIOD * 2 - 1));
        const close = candles.map(e => e.close).slice(-(PERIOD * 2 - 1));
    
        tulind.indicators.cci.indicator([ high, low, close ], [ PERIOD ]).then(([ ccis ]) => {
            const advice = (ccis.length > 0) ? (ccis[0] >= 100 ? 1 : -1) : 0;
            callback(null, advice);
        });
    }
}

Стратегию можно изменить. Комментарий первой строки не удаляйте, к параметрам в скобках можно обратиться из кода. Для отладки стратегии используйте консоль сервера. Кликните в любое место кроме окна, произойдет сохранение. 2. На экране справа создайте новый тест. Для выполнения теста должны быть подготовлены данные. Выберите набор рыночных данных для теста. 3. Нажмите "ОК" и додждитесь выполнения. В двух правых столбцах будет изменение цены рынка и эффективность стратегии в виде изменения баланса. 4. Для просмотра деталей можно перйти на страницу бэктеста.

Аккаунт

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

Трейдер

  1. Перед созданием трейдера перейдите в раздел Эксперт, создайте эксперта на основе имеющейся стратегии и рыночных данных.
  2. Перейдите в раздел Трейдер, создайте трейдера на основе эксперта и созданного аккаунта.
  3. На странице трейдера его можно обновить (кнопка вверху справа), тогда он загрузит обновленные данные и посчитает совет на основе стратегии.
  4. Для синхронизации состояние тикера, баланса и заказа есть кнопка вверху рядом с кнопкой обновить.
  5. Внизу активны кнопки, соответствующие командам, которые в данный момент доступны трейдеру. Если нажать кнопку, то трейдер выполнит соответствующую команду. Если кнопка дополнительно подсвечена синим, это означает, что трейдер рекомендует выполнить соответствующее действие. После запуска трейдера он будет самостоятельно обновлять для себя данные и выполнять рекомендованные операции. Для запуска или остановки трейдера предусмотрены кнопки внизу слева.

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

About

Бот для автоматической торговли на криптовалютных биржах

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 76.5%
  • JavaScript 22.8%
  • HTML 0.7%