Документация

Начало работы. Алгоритм бота

Дата: 31.12.2013
Быстрый старт.

Начало работы. Алгоритм бота


После запуска бота нажимаем кнопку Play вверху. Бот начинает собирать информацию по API. Во всех таблицах появляются цифры.
Бот автоматически переходит в демо режим. Теперь можно начинать писать условия продажи и покупки.
Для запуска торговли на реальных деньгах отжимаем кнопку паузы. Бот начнет торговлю по условиям правил.
Для полной остановки бота нажимаем кнопку стоп. Также в текущей панели есть кнопка сделать скриншот окна бота(Shft+Ctrl+Alt+P)

Краткая инструкция:

1. Качаем бот
2. Распаковываем бот в папку.
3. (Этот шаг можно пропустить) Если есть желание мониторить несколько валют - копируем папку несколько раз (при наличии лицензий). Удобно называть папки с ботами также как валютные пары, так как для разных пар разные настройки стакана и могут отличатся правила по объемам.
4. Запускаем бот (1bBotDemo.exe)
5. Выбираем валютную пару для торговли.
6. Нажимаем кнопку плей в левом верхнем углу. Бот запрашивает ввести начальный баланс по паре и начинает собирать информацию по API
Начальный баланс можно вводить и по первой валюте пары и по второй. Пример выбрана пара LTC/USD. Ввели в LTC - бот их оприходует по текущей цене и создаст партию покупки, USD - просто отобразится в балансе.

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

7. (этот шаг можно пропустить )Появляются цифры, если не появился биржевой стакан - заходим в торговые настройки - Order book и уменьшаем значения LOW до 1 к примеру , Wall до 10.
Значения рекомендуемых стенок для каждой пары смотрите в теме стратегии на сайте.
8. Скачиваем стратегию с сайта. и открываем ее в таблице правил (в шапке каждой таблицы с правилами есть кнопка открыть) или начинаем писать свою стратегию.


!!!Как только стратегия загружена - бот может покупать и продавать!!!

9. Для написания своей стратегии удаляем все строки из таблиц Buy rules и Sell rules.

Для начала просто смотрим как работают механизмы покупки и продажи на простом примере - делаем два условия в покупки и продажи:
В продажу забиваем:
deltaVolume5m<0

Продавать при пятиминутном спаде отношения объемов покупки и продажи
В покупку забиваем:
deltaVolume5m>0

Покупать при пятиминутном росте отношения объемов покупки и продажи
В каждом периоде есть значение этой дельты - визуально в программе эта колонка то зеленая то красная. По простому если большинство колонок зеленые (т.е. значения дельт больше нуля) то курс растет.

Чем больше значения дельты - тем вероятнее больше курс и увеличится.

При этих правилах бот будет смотреть только пятиминутный интервал времени и ничего больше.
И сможет слить баланс в 0.
Для того чтобы бот продавал только в плюс ставим еще одно правило в продажу второй строчкой.
sellPrice>botBuyPrice*1,005

Цена продажи ботом должна быть больше цены покупки +0,5%

0,5% это примерное значение потерь на 2-х комиссиях биржи.

При таком написании правил бот не привязан к цене - нет условий покупать меньше 20 к примеру. Бот может зайти в торговлю в любой момент когда посчитает нужным.


Для написания правил покупки - основная переменная buyPrice -текущая цена покупки на бирже.

Для написания правил продажи - основные переменные sellPrice (текущая цена по которой можно продать на бирже) и botBuyPrice(цена партии закупки бота).

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

Алгоритм работы бота:
При выполнении всех правил закупки (все строки с активными галочками в таблице закупки зеленые) - бот пытается закупить.
Закупает пока есть деньги (количество средств на закупку можно ограничивать - смотрим настройки торговли ботом). В боте система моментальных ордеров - при невыполнении ордера сервером биржи он уничтожается и создается новый.

Начало работы. Алгоритм бота


При выполнении всех правил продажи бот продает.

Начало работы. Алгоритм бота

В демо версии реализован механизм приближенный к реальным торгам. Биржа может не продать боту по текущей цене, может продать только часть и так далее. В боте реализован партионный учет. Пример: бот хотел купить 100 по 10.Биржа продала 50 по 10. и 50 по 11.
Бот хранит все эти данные и при продаже учитывает цену закупки по партиям.

При покупке и продаже бот делает скриншот только своего окна для тонкой настройки правил. Скриншоты хранятся в папке PICS корневой папки бота.


Интерфейс торгового бота 1b bot для биржи btc-e.com

Начало работы. Алгоритм бота


(1) - Блок тикера биржи btc-e (Ticker)

В блоке тикера выводится информация полученная по API в реальном времени.

Last price - последняя цена торговли (переменная в правилах Ticker -> lastPrice)

Low - минимальная цена за торговый день биржи (переменная в правилах группы Ticker -> lowPrice)

High - максимальная цена за торговый день биржи (переменная в правилах группы Ticker -> highPrice)

Average - средняя цена за торговый день биржи (переменная в правилах группы Ticker -> avgPrice)

Volume - объем торгов за торговый день биржи (переменные в правилах группы Ticker -> volumeCurr1 и Ticker -> volumeCurr2)

Server time - Текущее время на сервере биржи (переменная в правилах группы Ticker -> serverTime)

Buy - текущая цена покупки (переменная в правилах группы Ticker -> buyPrice)

Sell - текущая цена продажи (переменная в правилах группы Ticker -> sellPrice)

(2) - Блок финансовых данных пользователя в текущий момент (Funds)

Данные о финансах получаются также по API в реальном времени + расчетные данные бота.

LTC - данные по первой валюте. Если выбрана другая торговая пара - название сменится. (переменная в правилах Bot-> botFundsCurr1)

USD - данные по второй валюте. Если выбрана другая торговая пара - название сменится. (переменная в правилах Bot-> botFundsCurr2)

Total "Суффикс валютной пары" - Расчетный баланс в данный момент с учетом комиссии. (переменная в правилах Bot-> botFundsCurr2Total)

Например торгуется пара LTC/USD. Бот закупил на часть денег LTC и также есть USD. В поле Total отображается общая сумма в USD при моментальной продаже в данный момент времени


(3,6) - Блоки биржевого стакана (Order book walls,Order book)

Данные блока получены по API в реальном времени + расчетные данные бота. Подробнее о биржевом стакане читайте в торговых настройках

(3)Данные Order book walls

Sell wall - Текущее значение верхней стенки стакана (верхняя ценовая граница продажи торгового коридора) (переменная в правилах Order book->Sell-> obWallSellPrice)

Buy wall - Текущее значение нижней стенки стакана (нижняя ценовая граница покупки торгового коридора) (переменная в правилах Order book->Buy-> obWallBuyPrice)

Buy - Текущий суммарный объем всех выставленных заявок на покупку (переменная в правилах Order book->Buy-> obVolumeBuy)

Sell - Текущий суммарный объем всех выставленных заявок на продажу (переменная в правилах Order book->Sell-> obVolumeSell)

(6)Данные Order book

Шапка таблицы:

"Sell LTC : 6" - Количество LTC в заявке на продажу. Цифра 6 - суммарное количество строк заявок продажи. На красном фоне их 6(смотрим скриншот)(переменная в правилах Order book->Sell-> obSellCnt)

"Price USD" - Цена в USD. При смене пары будет смена названия.

"Buy LTC : 11" - Количество LTC в заявке на покупку. Цифра 11 - суммарное количество строк заявок покупки. На зеленом фоне их 11(смотрим скриншот)(переменная в правилах Order book->Buy-> obBuyCnt)

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


Стенки или торговый коридор выделены жирным. В данном случае ценовой коридор зажат двумя стенками сверху на цене 24,5 с количеством LTC в заявке 3067,7411 (в правилах это значение в переменной Order book->Sell-> obWallSellAmnt) и снизу ценой 23,91 с количеством в заявке покупки 5756,3608 (в правилах это значение в переменной Order book->Buy-> obWallBuyAmnt). Переменные со значениями цен описаны выше obWallSellPrice,obWallBuyPrice.

(4) - Блоки временных периодов (Time periods)

Начало работы. Алгоритм бота


На бирже btc-e.com выводится история сделок (скриншот биржи). Бот получает эти данные по api , сохраняет их во встроенную базу данных и проводит серию расчетов.
Из базы данных данные уже в сгруппированном и пересчитанном виде выводятся в таблицу 4(смотрим скриншот)
Данные хранятся 24 часа. Возможно в следующих версиях бота данные будут хранится дольше.
Данные сгруппированы по периодам 30 секунд, 1 минута, 5 минут, 15 минут и так далее.

Важно! Период вывода данных до 7 дней. Для оптимизации скорости выводятся только те периоды, переменные которых используются в правилах!


Структура таблицы:
Рассмотрим на примере 30 секундного периода. Логика остальных периодов такая же.

Первое поле - период.

Buy Volume - объем закупки за период. (на примере 30 секундного периода значение хранится в переменной правил Time periods -> 30 sec -> buyVolume30s)

Sell Volume - объем продажи за период. (на примере 30 секундного периода значение хранится в переменной правил Time periods -> 30 sec -> sellVolume30s)

Delta % - отношение покупки/продажи за период. Фон колонки подсвечивается зеленым или красным.При зеленом - рост закупок.При красном - Рост продажи. (на примере 30 секундного периода значение хранится в переменной правил Time periods -> 30 sec -> deltaVolume30s)

High - максимальная цена продажи за период. (на примере 30 секундного периода значение хранится в переменной правил Time periods -> 30 sec -> highPrice30s)

Low - минимальная цена покупки за период. (на примере 30 секундного периода значение хранится в переменной правил Time periods -> 30 sec -> lowPrice30s)

Average - средняя цена за период (на примере 30 секундного периода значение хранится в переменной правил Time periods -> 30 sec -> avgPrice30s)

(5) - Блок ручной торговли

Buy - купить указанное количество. Бот моментально отправит запрос на биржу Btc-e для закупки.

Buy All -купить на все деньги.

Buy half - купить на половину денег.

Sell - продать указанное количество

Sell All -продать все.

Sell half - продать половину.

(7,8) - Блоки правил закупки и продажи

Начало работы. Алгоритм бота

Кнопки тестирования правил:

Описание кнопок:

Значек "+" - добавить правило

Значек "*" - редактировать правило

Значек "-" - удалить правило

Дальше идут три кнопки - открыть правила из файла, сохранить правила в файл и протестировать правило.

При нажатии на кнопку протестировать выбранное правило Вы увидите результат логического выражения True или False (условие выполняется или нет). Если в правиле был указан некорректный синтаксис то оно станет перечеркнутым. Нажмите кнопку редактирования и исправьте ошибку.

Описание переменных для правил
Описание функций для правил

Trades Log

Trades log - таблица-история действий бота
Фиксируются все покупки и продажи, для продажи рассчитывается прибыль.

Начало работы. Алгоритм бота






Приятной работы и мощного профита!


2 комментариев
22.04.2014
Цитата: Eduard
Где качать  + компоненту Pocket HTTP
Ее использование уже не нужно. Подредактировали
06.06.2014
Значения рекомендуемых стенок для каждой пары смотрите в теме стратегии на сайте...
где это? можно ссылку дать где примерные стенки есть?


Wall LTC/USD - 999 Low 100
Wall NMC/USD - 999 Low 500
Wall NVC/USD - 149 Low 50
Wall PPC/USD- 999 Low 500
Wall BTC/USD -50 Low 9
 а где для Рубля можно найти описания? или с ним никто не работает )))?