Бот для биржи BTC-e.
Особенности:
1) Торговые стратегии пишутся на языке LUA расширенным специальным набором функций.
2) Для работы доступны все пары одновременно - легко можно написать скрипт для арбитража.
3) Из скриптов доступны индикаторы SMA, EMA, WMA, ADX.
4) Поддержка отправка скриптом SMS - сообщений, а так же сообщений при создании и/или исполнении ордеров (настраивается). Реализовано через сайт sms.ru
- 60 сообщений в день на свой номер бесплатно.
5) Возможность из скрипта сохранять на диск любые данные для последующего анализа стратегии. Так же ведется лог событий бота, сохраняется в папку с программой log.txt.
6) Простая стратегия определяющая текущий тренд и в зависимости от него вычисление цены покупки/продажи и расстановка ордеров в комплекте.
7) Бесплатная версия работает от нескольких часов до нескольких суток (зависит от скорости соединения). Полная версия стоит $50.
Настройки программы:
1) Разархивировать BTC-E-BOT.zip на диск.
2) Открыть блокнотом файл bot.ini - в этом файле мы будем менять наши настройки.
3) Зарегистрироваться на https://btc-e.com/
4) В профиле на вкладке API ключи нажать "Создать ключ". Выставить права info и trade. Нажать "Сохранить".
5) Скопировать содержимое Key в секцию [api]->keyer. Скопировать содержимое Secret в секцию [api]->secret.
6) Сохранить изменения.
Настройка отправки sms:
1) Для работы sms необходимо зарегистрироваться на sms.ru.
2) Скопировать "Ключ для внешних программ - Ваш api_id". Выглядит например так: "1b22f876-9578-d654-5958-a1a5ca8d04be" и сохранить его в bot.ini в [sms]->sms_api_id.
3) Прописать номер телефона [sms]->phone (например 79171234567 - номер телефона должен быть таким же, какой был указан при регистрации на sms.ru).
4) Так же есть возможность настроить разрешения на отправку смс из скриптов [sms]->sms_from_lua, при создании ордера [sms]->sms_create_order, при создании отложенного ордера [sms]->sms_create_pending_order, при выполнении ордера [sms]->sms_complete_order, при удалении ордера [sms]->sms_remove_order. Для разрешения указываем True. Для запрещения указываем False.
5) Сохранить изменения.
Описание программы:
После того как вы выполните все настройки запустите BTCEBOT.exe.
Программа имеет 3 панели.
Панель «Pair for work» отображает все доступные пары для работы. Внутри данной панели мы можем видеть курсы покупки/продажи с биржи, список ордеров по этой паре (Order list), при выборе ордера из списка можно увидеть дополнительную информацию Rate - цена ордера, Amount – количество для покупки/продажи, TTL – время жизни ордера в секундах, Rate resell – цена перепродажи (если она установлена то при срабатывании ордера на покупку сразу же будет выставлен ордер на продажу).
Кнопками «Reload» можно перезагрузить список ордеров. Кнопкой «Remove» - удалить текущий ордер. Кнопкой «Remove all» - удалить все ордера по выбранной паре.
Кнопкой «Edit script» можно просмотреть/отредактировать скрипт торговой стратегии. Для каждой пары валют предусмотрен отдельный скрипт, при этом из каждого скрипта доступны все пары.
Кнопкой «Start BOT for pair»/«Stop BOT for pair» запустить/остановить скрипт для выбранной пары.
Прогрессбар Gathering statistical information отображает процесс сбора информации для работы индикаторов SMA WMA EMA ADX.
Панель «Balance» показывает доступные средства по каждой валюте.
В нижней части окна программы отображается панель лога.
Краткое описание функций расширения LUA для написания торговых стратегий:
-- SMA(string имя_пары, num width) - Возвращает значение индикатора SMA для последних width цен
-- SMATREND(string имя_пары, num width) - Возвращает тренд движения цены SMA для последних width цен
-- WMA(string имя_пары, num width) - Возвращает значение индикатора WMA для последних width цен
-- EMA(string имя_пары, num smoothing) - Возвращает значение индикатора EMA. Значение smoothing от 0 до 1 - вес последней цены
-- EMATREND(string имя_пары, num smoothing) - Возвращает тренд движения цены индикатора EMA. Значение smoothing от 0 до 1 - вес последней цены
-- ADX(string имя_пары, num smoothing) - Возвращает значение индикатора ADX. Значение smoothing от 0 до 1 - вес последней цены
-- WIDTH(string имя_пары) - Возвращает размер доступной статистики по которой работают индикаторы. Чем число больше тем долговременнее тренд можно оценить
-- VOL_BUY(string имя_пары, num секунд) - Возвращает объем исполненных биржей ордеров на покупку
-- VOL_SELL(string имя_пары, num секунд) - Возвращает объем исполненных биржей ордеров на продажуnum
-- VOL_DELTA(string имя_пары, num секунд) - Возвращает отношение объемов покупок/продаж за время в секундах num. Индикатор роста - падения курса
-- HIGH_BUY(string имя_пары, num секунд) - Возвращает высшую цену покупки исполненных биржей ордеров
-- LOW_BUY(string имя_пары, num секунд) - Возвращает низшую цену покупки исполненных биржей ордеров
-- AVG_BUY(string имя_пары, num секунд) - Возвращает средневзвешенную цену покупки исполненных биржей ордеров
-- HIGH_SELL(string имя_пары, num секунд) - Возвращает высшую цену продажи исполненных биржей ордеров
-- LOW_SELL(string имя_пары, num секунд) - Возвращает низшую цену продажи исполненных биржей ордеров
-- AVG_SELL(string имя_пары, num секунд) - Возвращает средневзвешенную цену продажи исполненных биржей ордеров
-- PERIOD(string имя_пары) - Возвращает период в секундах истории с биржи по которым оценивается объемы и цены
-- WALL_BUY(string имя_пары, num объем) - Возвращает цену стенки объемом не менее num в стакане на покупку
-- WALL_SELL(string имя_пары, num объем) - Возвращает цену стенки объемом не менее num в стакане на продажу
-- TOPGLASS_BUY(string имя_пары) - Возвращает доступный для покупки объем сверху стакана
-- TOPGLASS_SELL(string имя_пары) - Возвращает доступный для продажи объем сверху стакана
-- FEE(string имя_пары) - Возвращает размер комиссии на сделку
-- SPREAD(string имя_пары, num цена) - Вычисляет сумму 2х комиссий от цены покупки. Продажа должна быть > (цена + spread)
-- SUM(string имя_валюты) - Возвращает доступные средства. Например - ltc
-- RATE(num, bool, bool) - Округлить цену. bool 1 - скорректировать в большую сторону, bool 2 - в меньшую сторону
-- AMOUNT(string имя_пары, цена, min ордер, max ордер, bool обратный_ордер) - Возвращает размер ордера для покупки. Можно проверить также средства на обратный ордер. Вернет 0 если мало средств
-- TICKER(string имя_пары, string индикатор) - Возвращает текущие данные с биржи. string может быть: "high", "low", "avg", "vol", "vol_cur", "last", "buy", "sell"
-- PTICKER(string имя_пары, string индикатор) - Возвращает предыдущие данные с биржи
-- ORDER(string имя_пары, "buy или sell", цена, количество, цена перепродажи (при > 0 после покупки создать ордер продажи), ttl) - Создает ордер. ttl - время жизни в секундах. Возвращает string - id ордера или пустой string при ошибке
-- EXISTS(string id) - Возвращает результат проверки наличия не исполненного ордера
-- ELAPSED_BUY(string имя_пары) - Возвращает время в секундах с момента создания последнего ордера на покупку
-- ELAPSED_SELL(string имя_пары) - Возвращает время в секундах с момента создания последнего ордера на продажу
-- LOADVAR(string var) - Возвращает содержимое переменной var
-- SAVEVAR(string var, string value) - Сохраняет содержимое value переменной var
-- LOG(string) - Отображает в логе string
-- SENDSMS(string) - Отправляет смс с текстом string
-- SAVE(string filename, string text) - Сохраняет string в файл
Так же в теме отвечу на вопросы, помогу с реализацией стратегий и объясню особенности работы программы и написаний стратегий на LUA.
BTC-E-BOT.zip