Как будет работать бот для пампа на YoBit? Да очень просто, он будет скупать указанную монету, но делать это будет очень быстро, по следующей схеме.
Одна покупка в одну секунду, и так 5 раз. То есть бот проводит по 5 сделок подряд раз в секунду, после ждёт, например, 4 секунды чтобы не схлопотать БАН от YoBit после чего снова проводит 5 сделок. И вот получается такой круговорот…
Так же, нужно позаботится о том, что бы бот не вы-хлопал весь баланс фиатного бабла. Значит нужно поставить ограничение. Например, Если осталось 300 рублей то перестать скупать монету. По-моему, прикольно, ну поехали писать бота и тестить что получится.
Бот для пампа на бирже криптовалют YoBit
Так-то громко сказано «для пампа», обычный скупщик монеты мелкими частями… да и на срать… Пусть будет для пампа.
Что понадобится для написания бота:
1 – Документация по API с самой биржи YoBit.
2 – Файл настроек, предлагаю использовать JSON формат.
3 – Ну и не много баблишка на фиатном счете или пох на каком.
Да, писать будем на PHP так что, чтобы заюзать бота нужно установить PHP. Под винду это OpenServer там и консоль есть нормальная. Под Linux первая попавшаяся ссылка по запросу «Установка php linux» и проблем не будет.
Начнём всю движуху с создания файла «config.json» сюда засунем API, Секретный ключ и ещё немного инфы.
[cc lang=»php»]
{
«api_key» : «api»,
«api_secret» : «secret»,
«budget» : «0.002»,
«coin_1» : «ltc»,
«coin_2» : «rur»
}
[/cc]
budget – это по сколько будем скупать монету за одну сделку.
Биржа требует отправлять в HTTP заголовках уникальное число от «1» до «2147483646» поэтому удобнее будет создать файл для хранения этого числа, с каждым запросом к бирже из него будет браться новое значение и отправляться на биржу. Файл так и назовём – «nonce» (У меня без расширения)
Предлагаю для удобства создать отдельный файл под несколько функций, для собственного удобства. Назову его «Yobit-Functions.php»
Первая функция, которую я туда запихну будет считывать свежее значение из «nonce» для последующей его отправки на сервер…
[cc lang=»php»]
/*
* Get_Config()
* Получить номер запроса……
*/
function Nonce() {
$nonce_num = file_get_contents(__DIR__ . ‘/nonce’);
if ( $nonce_num == » ) { $nonce_num == 0; }
$fp = fopen(__DIR__ . ‘/nonce’, «w+»);
$rez_nonce_num = fwrite($fp, $nonce_num = $nonce_num + 1);
return $nonce_num;
}
[/cc]
Теперь нужно научить бота общаться с биржей, что бы он мог отправлять нужные нам запросы на биржу, а мы радовались и улыбались… В этот же файл в след за предыдущей функцией кидаем это. Так сказать – сердце бота)))
[cc lang=»php»]
/*
* Yobit_Api()
* Общение с биржей
*/
function Yobit_Api($method, $req = array()) { // Yobit_Api
$config = Get_Config();
$nonce_num = Nonce();
$req[‘method’] = $method;
$req[‘nonce’] = $nonce_num;
$post_data = http_build_query($req, », ‘&’);
$sign = hash_hmac(«sha512″, $post_data, $config->api_secret);
$headers = array(
‘Sign: ‘. $sign,
‘Key: ‘. $config->api_key,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36’);
curl_setopt($ch, CURLOPT_URL, ‘http://yobit.net/tapi/’);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$res = curl_exec($ch);
if($res === false) {
curl_close($ch);
return null;
}
curl_close($ch);
$result = json_decode($res, true);
return $result;
} // END Yobit_Api
[/cc]
Что бы скупать монету «Со стакана» а именно так и нужно скупать, нам нужно узнать цену по которой торгуется монета, то есть ту цену по которой можно купить сразу без выставления ордера. Пишем функцию.
[cc lang=»php»]
/*
* price_top($coins, $type)
* Получим самую первую цену на Продажу
* [$type] asks = ордера на продажу
* [$type] bids = ордера на покупку
*/
function Price_Top($coins, $type) {
$depth= json_decode(file_get_contents(‘http://yobit.net/api/3/depth/’ . $coins . ‘?limit=1’));
$depth_array = json_decode(json_encode($depth), True);
foreach ($depth_array as $key => $depth_value) {
if ( $type == ‘asks’ ) {
return $price_top_asks = $depth_value[‘asks’][0][0]; // Новая цена Продажи
}
if ( $type == ‘bids’ ) {
return $price_top_bids = $depth_value[‘bids’][0][0]; // Новая цена Покупки
}
}
}
[/cc]
Теперь бот умеет узнавать цену покупки и отправлять запросы на сервер биржи. Осталось самая малость, реализовать логику работы Бота для пампа на YoBit.
В отдельный файлик, назовём его «yobit-Pamp.php» кидаем сам код бота.
[cc lang=»php»]
define(«__COINS_2__», $Config->coin_2);
define(«__COINS_PARA__», $Config->coin_1 . ‘_’ . $Config->coin_2);
$a = 0;
while ($a <= 999999) { // while
$Price_top = Price_Top(__COINS_PARA__, ‘asks’);
$GetInfo = Yobit_Api(‘getInfo’);
$Rur = $GetInfo[‘return’][‘funds’][__COINS_2__];
$Ltc = $GetInfo[‘return’][‘funds’][__COINS_1__];
if( $Rur < 300) { break; } // Если на балансе останется 300 или меньше рублей то хватит скупать $Trade = Yobit_Api(‘Trade’, array( ‘pair’ => __COINS_PARA__, // пара (пример: ltc_btc)
‘type’ => ‘buy’, // тип операции (пример: buy или sell)
‘rate’ => $Price_top, // курс, по которому необходимо купить
‘amount’ => $Config->budget . rand(10000, 90000) // количество, которое необходимо купить
));
echo ‘ ================================= ‘ . $R;
echo ‘ Остаток Руб : ‘ . $Rur . $R;
echo ‘ Куплено манет : ‘ . $Ltc . $R;
echo ‘ Покупаю по цене : ‘ . $Price_top . $R;
echo ‘ ================================= ‘ . $RR;
$a++;
sleep(1); // Покупать 1 раз в 1 секунду
if ( $a == 5 ) { // Делаем по 5 закупок за 1 заход
$a = 0;
sleep(4); // После первых пяти закупок ждём 4 секунды, что бы в БАН не свалить
}
} // while
[/cc]
Как работает, сказал уже выше, топает бот на биржу делает 5 сделок, встаёт на 4 секунды и снова идёт скупать… Все эти параметры можете подстроить под себя, но учтите, что получить по хребтине банным веником от биржи можно вообще легко. Примерно минут на 10 – 15. У них там просто «cloudflare» врублена, так что все серьёзно пацаны!)))
Бот в запущенном виде.
На самой же бирже можно видеть что-то подобное.
Можно и продавать..
Вот такой Бот для пампа на YoBit, со скромным функционалом, можно и по умнее его сделать, но мне в лом… Да, этот бот легко перенастраивается для продажи монеты, если кому нужно пишите. Сейчас расписывать не буду либо задолбался печатать. Я лучше потопаю писать торгового бота, все для той же бирже.