Вскрытие хомяка

Вскрытие хомяка

Официальный сайт: http://hamster-bot.com
Telegram-чат: @bitmextrue
Автор обзора: Noro
12.04.2019

Объективно?

Думаю у читателя может сразу возникнуть вопрос по поводу объективности обзора. С одной стороны это продукт конкурентов, а поэтому его выгодно выставлять в худшем виде. А с другой стороны у меня с парнями договорённость о моём вознаграждении, так как использованы были в том числе и мои идеи (торговая стратегия), а значит надо хвалить. Так что я в замешательстве 🙂 Но решение тут простое: я опишу лишь сухие факты, без моих личных выводов, а Вы выводы сами сделаете, исходя из фактов.

Результаты

Начнём с интересного. Я пишу какие результаты у них, и как я это узнал и проверял, а Вы делаете вывод хорошие они или нет.

Павел прислал мне снимок экрана с результатами, но мы же все понимаем что «скриншоты ничего не доказывают». И он это тоже, конечно, понимал и поэтому выслал так же API-ключ с правами для просмотра этого аккаунта.

Кстати, ключ:

key = 6Vjg8dS0cKxf7YSUFqiBBaYP
secret = bZ7pg2wpaHxBwrVIbnxvTc106Xe4-5oT-J_47RPxptGHP9SS

Проверка

Я написал простенький PHP-скрипт, чтобы он по API-ключу собрал информацию и вывел её в виде таблицы. Исходный код скрипта такой:

<table border=1>
<tr>
<td>Дата</td>
<td>Баланс</td>
</tr>
<?php
$key = ‘6Vjg8dS0cKxf7YSUFqiBBaYP’;
$secret = ‘bZ7pg2wpaHxBwrVIbnxvTc106Xe4-5oT-J_47RPxptGHP9SS’;
$url = «https://www.bitmex.com/api/v1/user/walletHistory?currency=XBt»;
$nonce = (string) number_format(round(microtime(true) * 100000), 0, ‘.’, »);
$data = ‘ ‘;
$verb = ‘GET’;
$path = ‘/api/v1/user/walletHistory?currency=XBt’;
$sign = hash_hmac(‘sha256’, $verb.$path.$nonce.$data, $secret);
$balances = curl_init();
curl_setopt($balances, CURLOPT_HTTPHEADER, array(‘api-signature: ‘.$sign, ‘api-key: ‘.$key, ‘api-nonce: ‘.$nonce));
curl_setopt($balances, CURLOPT_URL, $url);
curl_setopt($balances, CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($balances, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($balances);
$json = json_decode($content);
for ($i = 0; $i < count($json); $i++) {
$date = substr($json[$i]->transactTime, 0, 10);
$balance = $json[$i]->walletBalance / 100000000;
echo ‘<tr>’;
echo ‘<td>’.$date.'</td>’;
echo ‘<td align=»right»>’.$balance.'</td>’;
echo ‘</tr>’;
}
echo ‘</table>’;
echo $content;
?>

В результате выполнения PHP-скрипта мой браузер выводит мне такую табличку. И насколько я вижу результаты по API-ключу совпадают с результатами на снимке экрана. Что не удивило. На своём ПК запустить PHP-скрипт Вы смогли бы, если бы Ваш ПК «умел PHP», а для этого надо специальное программное обеспеченье.

Со слов Павла, человека из команды разработчиков робота, робот начал работать на этом аккаунте с 28 января, и судя по ключу видимо так и есть. Так как цена биткойна на бирже BitMEX.com часто бывает оторванной от реальности, а вывести оттуда доллары нельзя (там только биткойн на вывод же), то оценивать биткойн буду по ценам бирж в среднем с сайта CoinMarketCap.com. Цены биткойна смотрю по закрытию дня и беру здесь:

Источник: https://coinmarketcap.com/ru/currencies/bitcoin/historical-data/?start=20190111&end=20190411

Считаем до копеек

Итак, со слов Павла 28 января баланс кошелька составлял 0,5 BTC, а на самом деле он составлял 0,50131426 BTC по данным с API-ключа. Но не будем считать это искажением фактов, человек просто округлил. На 28 января 2019 биткойн стоил $3470,45 в среднем по биржам. А значит в долларах у нас на начало $1739,79. Курс рубля ЦБ РФ на ту же дату был 65,9170 RUB за 1 USD. А значит в рублях было 114681,73.

На дату подсчета баланс составляет уже 0,58901 BTC. При этом никаких вводов/выводов со счёта не было (проверял по API-ключу тоже). То есть счёт увеличился не из-за ввода новых средств. Так же роботу видимо мешал рост курса биткойна за это время, так как «плюсовать» в биткойнах при росте биткойна куда сложнее (как против ветра). Ну тем не менее. На конец периода (на 11 апреля 2019) биткойн стоил уже $5064,49, а значит в долларах это $2983,04. Курс рубля к доллару с тех пор тоже несколько изменился и составляет 64,7373 RUB за 1 USD. Значит в рублях у нас 193113,95.

Итоговая прибыль:

  • В биткойнах +17,49% (на сильно растущем рынке причём)
  • В долларах +71,46% (по большей части благодаря росту курса биткойна)
  • В рублях +68,39% (рублик слегка подорожал)

Получается что большая часть прибыли получилась за счёт роста курса биткойна, а не из-за робота. При этом робот тоже дал прибыль, молодец, но вот его вклад в конечный результат меньше. Но посмотрим как дальше будет. Биткойн за это время вырос с $3470,45 до $5064,49 или на +45,93%.

Срок

А за какой срок? Получается 74 дня. Если в месяце, допустим, 30 дней ровно, тогда срок составил 2,47 месяца. Тут, конечно, сразу мысль «Такой срок явно не показатель». Однако, раньше у ребят этого робота еще просто не было. То есть тут не специально выбранный удачный период, а просто робота раньше не было, и взяли весь срок, пусть и не большой еще.

Торговая стратегия

Стратегия по большей части известна, но не вся. Известно что никакого матрингейла и прочего усреднения убыточных позиций там нет, что уже хорошо. Используется стратегия похожая на мою стратегию Noro’s ZZ-2. Однако, команда хомяка утверждают что стратегию значительно улучшили за счёт дополнительных фильтров сигналов, видимо. В частности видно что есть какой-то RSI-фильтр еще. Утверждать лучше ли их стратегия или нет не получится, так как авторы стратегию не выдают (исходных код скрипта стратегии и робота — закрыты). А так как мне не известна стратегия авторов, то я уже не могу заявлять лучше она или хуже. Как я это пойму если я её просто не знаю? Думаю, Вы согласитесь. Однако, результаты стратегии авторов оказались пока что получше. Но не известно всегда так будет или нет. Посмотрим на них.

Тестировать будем, разумеется, на паре ETH/USD на бирже Bitmex.com, ведь именно там использовался робот, и именно там его предлагают использовать пользователям. Комиссию в бектестах я буду ставить 0,1%, а не 0,075%, потому что стратегия использует стоп-ордеры для входа в позиции (для данной стратегии этой лучший выбор). Так что пользователь робота не будет получать премию мейкера ордера на Bitmex, но будет платить комиссию 0,075%, плюс еще будут проскальзывания. Вот почему я предлагаю тестировать с комиссией 0,1% чтобы учесть проскальзывания. Размер проскальзывания мы заранее никак рассчитать не можем, так как он сильнее всего зависит от суммы. С суммой депозита в $1000 и с $100.000 размер проскальзывания будет существенно отличаться.

Тестирование

Тестировать буду мой скрипт Noro’s ZZ-2, и их скрипт, тоже выложенный на сайте TradingView.com, который называется сейчас Breakout reversal strategy, что можно перевести на русский как «Пробойная реверсивная стратегия». Название в принципе верное. Свой же скрипт для чистоты эксперимента я буду тестировать дважды: с настройками по умолчанию, и с настройками под пару ETH/USD, которые похожи на настройки скрипта авторов робота. Ну чтобы по честному было 🙂 А ниже, на всякий случай, снимки экрана со всеми настройками, которые я буду использовать. На всех снимках я вырезал диапазон дат, чтобы всё удобно влезло, но диапазон дат одинаковый и полный у всех.

ZZ-2 по умолчанию

ZZ-2 настроенный

Breakout reversal strategy

Профит-фактор

Надеюсь Вы понимаете что доходность не единственный значимый показатель, важен так же и риск (размер абсолютной просадки, например). Причём просто поделить доходность на просадку, как некоторые делают, было бы очень не верно, ведь сроки то могут существенно отличаться. И это важно, ведь абсолютная просадка не зависит от срока, а итоговая доходность — зависит. Поэтому те кто просто делят доходность на просадку и этого не понимают по сути лишь вводят себя в заблуждение. Мы конечно просадку посмотрим, но не только её.

Профит-фактор это очень простой коэффициент, который показывает нам сервис TradingView.com. Как он работает и что значит? Преимущество такого подхода в оценке качества торговой стратегии в том что такая оценка не зависит от срока, является более объективной чем просто поделить доходность на просадку. Здесь можно возразить, мол, профит-фактор это косвенный показатель качества торговой стратегии, однако, вообще все подобные коэффициенты являются косвенным показателем, и никакого абсолютно точного коэффициента-показателя не существует и не появится. Профит-фактор нам удобен тем, что его нам покажет TradingView «не отходя от кассы», и просто лучше чем совсем ничего.

 Профит фактор = S(Pi) / S(Li)

где S(Pi) — сумма прибылей всех прибыльных сделок, S(Li) – сумма убытков всех убыточных позиций

Бектесты

Кстати говоря, если запустить оба скрипта одновременно на одном графике, то можно заметить что сигнальные уровни почти всегда совпадают. Да, он у них отображается точками, а не линией, но не суть. Но в некоторых случаях положение уровней отличаются. Видимо срабатывают эти дополнительные фильтры. Один из таких случаев несовпадения я выделил чёрной стрелкой на графике. Ниже тесты в порядке: ZZ-2 по умолчанию, ZZ-2 настроенный, и их Breakout reversal strategy.

Получается их вариант лучше и по доходности, и по просадке, и по профит-фактору. Однако, лучше на прошлом, а это не значит он же будет лучше и на будущем тоже. Кроме того, исходного кода стратегии нет, поэтому что-то предполагать и не получится здесь. Остается только мысль что раз уж решили что-то добавить, значит имеют основания считать что так будет лучше, иначе бы просто не добавляли, а оставили бы скрипт без изменений.

Скачал

Не скачивая если то препарация будет не полной. Мне на дату составления этого текста досталась версия Beta v1-9, а это значит читая данный текст значительно позже Вам может достаться уже совсем другая версия робота, эволюционировавшая, так что текст может быть уже и не актуальным.

Первым делом операционная система (у меня была Windows 10) ругнулась на неизвестного издателя. Ну не прославились парни еще, не известные они 🙂 Я к тому что это не вирусы/трояны, а просто Microsoft ничего не знает про эту команду разработчиков. То есть поймите ругань правильно.

Просто?

После проверки файла разными антивирусами успокоился, и увидел наконец его интерфейс. Жутко тормозной и примитивный интерфейс, но… для такого рода софта это фактически не важно. С другой стороны очень удобно было увидеть график с индикаторами внутри интерфейса самого робота.

Я не буду описывать как настроить робота (это оказалось весьма просто), да и вообще я к своему то мануал до сих пор не дописал. К тому же мануал может быстро устареть, и лучше за мануалом обращаться к разработчикам. Настройки сделались удобно и быстро, ордер на бирже появился сразу. Ордер лежит по той же цене как и у их скрипта на TradingView.com

API-ключ от биржевого аккаунта в интерфейсе робота сразу же шифруется, что как надо. То есть разработчикам ключ передавать не нужно. Кроме того остается возможность запретить доступ к аккаунту, с чужих IP-адресов если заполнить поле CIDR у ключа на сайте биржи, когда ключ создаёте. То есть схема работы такая полностью безопасная.

Претензии

Что у робота плохо, и что возможно стоит исправить. Я разработчиков предупреждал что буду объективно обзор писать, то есть не только о хорошем.

Непонятно почему нет выбора пар с Bitmex.com, хотя такой выбор пар сделать легко и не долго. Дело в том что пары ETH/USD и XBT/USD у биржи есть, а через год их может и не быть 🙂 А еще там могут появиться новые пары к доллару. Понятно что разработчики могут добавить поддержку новых пар, когда они появятся, и выпустить обновление. Да, но могут и забить на проект и ничего не выпустить 🙂 Так что для юзера было бы предпочтительнее чтобы робот сам подхватывал пары с биржи Bitmex.com, в том числе и новые. То есть и без разработчиков робот должен уметь быть актуальным.

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

Я запустил скрипт на фьючерсе битмекса ADAM19, и на снимке графика видно что срабатывает какая-то программная ошибка в скрипте самом — слишком много сигналов и их там быть не должно явно. Тут, конечно, всегда можно сказать: «Ну Вы что народ? Ну там же написано что это Beta еще». 🙂

Выводы?

В начале обзора предлагал я Вам делать выводы самостоятельно. Так как мои будут не объективны же. Из-за причин. Не нужно спрашивать буду ли я сам использовать этого робота — по идеологическим причинам не буду точно 🙂 Использовать чужого робота, но продавать своего? Как это будет выглядеть со стороны? Так что по идеологическим причинам. Саму стратегию ZZ-2 я использовал и скорее всего буду использовать в будущем тоже. Я по ней и прогнозы писал на TradingView.com. Да это не такая же стратегия как в роботе, но всё же.

Мне понравилось что:

  • API-ключ не передается никому
  • API-ключ шифруется ботом
  • Стратегия тестируется на TradingView
  • Есть график и индикаторы в интерфейсе
  • Есть оповещения в Telegram
  • Нет мартингейла и усреднения убыточных позиций