воскресенье, 20 июля 2014 г.

TFBTC TRADER 1.5

TFBTC TRADER 1.5 - Бот для торговли биткоинами.  Позволяет создавать собственные стратегии и сохранять их.


В новой версии включена по умолчанию проверка ssl сертификатов, добавлена поддержка биржи Cryptonit.net, убрана поддержка обанкротившейся биржи MtGox, обновлена версия php, включена по-умолчанию работа с базами данных SQLite3.

Пошаговая инструкция по установке бота:


WIN
1. распакуйте архив.
2. в папке btctrader 1.5 найдите файл server.bat и запустите его (для удобства создайте ярлык для этого файла и отправьте его на рабочий стол).
3. откройте браузер и перейдите по ссылке http://127.0.0.1:42000/
4. если всё заработало, вы увидите предложение войти в систему. 
По умолчанию: логин: admin пароль: admin

Сразу после установки зайдите в config  и поменяйте логин/пароль.
5. если ничего не работает, добавьте server.bat и (может быть) php.exe в доверенные файлы своего антивируса.
6. скачайте последнее обновление здесь, положите файл в папку webserver/updates, обновите бота. (ссылка UPDATE в интерфейсе)
7. зайдите в config и добавьте пары с которыми бот будет работать в поле monitor pairs (без точек и пробелов, пары разделяются запятыми).

BTC-e.com: 
btc_usd,btc_rur,btc_eur,ltc_btc,ltc_usd,ltc_rur,ltc_eur,nmc_btc,nmc_usd,nvc_btc,nvc_usd,usd_rur,eur_usd,trc_btc,ppc_btc,ppc_usd,ftc_btc,xpm_btc,eur_rur
Bitstamp.net:
bUSD
Webmoney.ru:
wmz_wmx,wmr_wmx,wme_wmx
BTCChina.com
cCNY
Cryptonit.net
ct_ltc_btc,ct_nmc_btc,ct_ppc_btc,ct_trc_btc,ct_ftc_btc,ct_btc_eur,ct_ltc_eur,ct_nmc_eur,ct_ppc_eur,ct_btc_usd,ct_ltc_usd,ct_nmc_usd,ct_ppc_usd

Торговать бот может только на биржах BTC-e, Bitstamp и Cryptonit.

8. добавьте API с которыми будет работать бот в поле Allowed API.

Все доступные API:
btce,btcchina,bitstamp,webmoney,micex,blockchain,sourceforge,cryptonit

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

Не WIN
1. поднимите вебсервер (PHP 5.4 , SQLite3).
2. скачайте bot.zip распакуйте содержимое в активную директорию сервера, для всех распакованных файлов и директорий необходимо предоставить права на запись.
3. скачайте последний апдейт здесь, положите архив в папку updates.
4. откройте в браузере скрипт /updater.php, выберите нужный апдейт и обновите бота, в первый раз бот не отобразит никакой информации, кроме digital signature - true, в последующие обновления апдейтер покажет какие файлы были обновлены.
5. теперь вы можете открыть интерфейс /index.php
     (по-умолчанию логин:admin пароль:admin).
6. обновление данных не из браузера осуществляется скриптом:
     php -f refresh.php
7. для получения данных индикаторов теханализа необходимо скомпилировать и подключить PECL расширение trader:
http://pecl.php.net/package/trader  (+package.xml)

полезные ссылки:
http://php.net/manual/ru/install.pecl.pear.php
http://php.net/manual/ru/install.pecl.phpize.php

КАКЕГОЮЗАТЬ?

1. добавьте ваши API ключи в соответствующие поля в config.
2. стратегии сохраняются в папке webserver/autotrader/strategies.
3. данные бот обновляет двумя способами: либо открытием интерфейса в браузере, либо запуском btctrader.bat
4. если btctrader.bat (php -f refresh.php) пишет server update error, значит у вас не работает сервер. Запустите скрипт server.bat. В других ОС это может означать, что скрипты бота не могут работать одновременно с одним открытым файлом, это не ошибка, а особенность работы php в каждой конкретной системе. Когда закроете веб интерфейс, сообщение об ошибке пропадёт.
5. если btctrader.bat внезапно закрывается, запустите скрипт refresh.php из командной строки: выполнить -> cmd -> cd D:/btctrader (здесь должен быть путь к папке с ботом) -> php -f webserver/refresh.php

...

ps. рекомендую Chrome|Chromium для работы с ботом.

27 комментариев:

Анонимный комментирует...

Привет, Мастер! выручай) Скачал 1.5, подрубил на БТСе, никак не видит биржу: Messages: BTC-e.com: could not get reply.
Если жму на виджет - показывает последние мои ордера всё как и было. В чём может быть проблемма?

Panic комментирует...

хм...
баланс показывает?
на биржу можете зайти?
ваша система?
может что-то с сетью?

Анонимный комментирует...

ВинХР урезанная, на версии 1.3* всё работало, но удалил 1.3 и поставил 1.5.
Сharles proxy не ловит никаких коннектов даже. Может проверка сертификата не проходит?
btce точно доступно(другой бот(отдельно включал и вместе) на апиV2 пашет + ваш виджет показывает историю ордеров верно)
вот фото настроек: http://s006.radikal.ru/i213/1407/7d/2d40cd5cedda.png. Прошу помощи разобраться, выдерну сам почти любые логи)

Panic комментирует...

скорее всего прокси как раз и мешает, как временное решение отключите проверку сертификата:
functions.php строка 112
curl_setopt($curls[$id], CURLOPT_SSL_VERIFYPEER, TRUE);
поменяйте на
curl_setopt($curls[$id], CURLOPT_SSL_VERIFYPEER, false);

Panic комментирует...

лучше не отключать проверку, а найти файл
charles-proxy-ssl-proxying-certificate.crt
открыть его блокнотом и скопировать содержимое в файл с доверенными сертификатами:
ca-bundle.crt

Анонимный комментирует...

Спасибо, помогло!

Анонимный комментирует...

Здравствуйте!

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

Я так понимаю, проще это делать в консоль.
Пробовал echo - при активации autotrading вебинтерфейс зависает.

Как лучше/проще выводить значения переменных в процессе работы?

ПС: в PHP не разбираюсь, но пытаюсь.

Спасибо за ваш полезный труд!

Panic комментирует...

вывести данные в блок message можно с помощью message();

1. включите автотрейдер
2. в CODE или INITIAL VALUES добавьте

message('какой-то текст');
message(array('A','B','C'));
message($ticker['btce']['btc_usd']['high']);
message(var_export($ticker['btce']['btc_usd'],true));

В последнем сообщении будет показана структура массива и хранящиеся данные.

Анонимный комментирует...

message(array('A','B','C'));
Ничего не выводит.
Думал может ошибка, тупо преобразовал к книжному примеру - тоже молчит.
$c=array("A","B","C");
message($с[1]);

Panic комментирует...

:) действительно, в одном из последних апдейтов я поломал отображение массивов.

Чтобы вывести текст в консоль можно использовать:
console('hello!');

Panic комментирует...

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

include __DIR__.'/userscript/strategy.php';

чтобы стратегию можно было сохранить, в самом начале CODE добавьте комментарий:

//code:strategy.php

Анонимный комментирует...

Если интересно про "поломки", то и в

http://127.0.0.1:42000/rules.php
правил нет.


Да и в примере btce_ltc_usd_example_v1


//на балансе достаточно USD
if($depth['btce']['ltc_usd']['ask'][0][0]<=$my_buy && $my_buy!=0 && $btce_balance['USD']>0.01){



Подозреваю, что на один цент много не купишь. Эта же проверка в других местах расчитывается верно :)


А вообще софт отличный. И за кумдельту отдельное спасибо.

Panic комментирует...

с версии 1.5 правила вырезаны.
Пишите стратегии в виде кода на php.
Старые стратегии с правилами должны по-прежнему работать (если они работали в более ранних версиях).

Анонимный комментирует...

btctrader.bat мы по прежнему запускаем? В новой инструкции про него ни слова.

Panic комментирует...


КАКЕГОЮЗАТЬ?

...3. данные бот обновляет двумя способами: либо открытием интерфейса в браузере, либо запуском btctrader.bat

Анонимный комментирует...

Не работает.
Подскажеите пожалуйста почему? :)
https://www.dropbox.com/s/4ogo0uhryjl753s/%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%20%D0%BF%D0%BE%20TFBT.png

Panic комментирует...

попробуйте так:

$data="asdfghjkl1234567890\n";
file_put_contents("somefile.txt", $data, FILE_APPEND);

Анонимный комментирует...

Все сохранял, браузер обновлял F5,проводник тоже обновлял - ниччего не понимаю!


https://www.dropbox.com/s/j49fz1uqdz4booe/%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%20%D0%BF%D0%BE%20TFBT%202.png
Вставил просто в CODE- не работает.
Поменял кавычки на одинарные - тоже не работает...
https://www.dropbox.com/s/gsxritfzfwmx08m/%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%20%D0%BF%D0%BE%20TFBT%203.png

Panic комментирует...

у вас автотрейдинг не включен =)

Panic комментирует...

а вот на втором скриншоте всё должно работать.

Анонимный комментирует...

Заработало, спасибо!
Оказывается, пишет в WEBSERVER, а не в userscript!

Panic комментирует...

добавьте нужный путь и писать будет куда надо (относительно папки webserver):
file_put_contents("userscript/somefile.txt", $data, FILE_APPEND);

Анонимный комментирует...

В Message выводит нормально, а в файл - нет, пишет строку такого вида :'01:12:18


'.


'\n' не работает, '\r\n' тоже.


$dd= date('H:i:s').'
'.'
'.'
';
message($dd);

file_put_contents('userscript/logdebug.txt', $dd, FILE_APPEND);

https://www.dropbox.com/s/l92jdoy3931d4tf/%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%20%D0%BF%D0%BE%20TFBT%204.png

Panic комментирует...

используйте двойные кавычки:
http://ru2.php.net/manual/ru/language.types.string.php#language.types.string.syntax.double

или добавляйте PHP_EOL:
$data='texttextext'.PHP_EOL;

Анонимный комментирует...

Добавь api Upbit.org
https://upbit.org/api/trade

Анонимный комментирует...

Приветствую автор.Спасибо за разработку и потдержку проекта.
Задумывались о локализации бота как платформы и планируете ли интеграцию новых (популярных) с более широким торговым рядом?
Очень интересно,если вы можете развивать проект,то полагаю,что именно в данном направлении было бы рационально шагать.
Чем смогу,помогу.)

Panic комментирует...

пока в свободное время добавляю биржи и сервисы "по заявкам трудящихся". Популярное - непопулярное, неважно, главное чтобы не скам. Остальная разработка ведётся спонтанно, как вдохновение накатит)), так что объявлять о том, что будет или не будет не буду. Но что-нибудь будет обязательно))