17 июня 2013 в 10:27

Qt Bitcoin Trader — программа для торговли Bitcoin под Windows, Mac и Linux

В этой статье я покажу вам, как работает программа Qt Bitcoin Trader, и поведаю историю ее разработки.
Эта программа с открытым исходным кодом позволяет быстро делать ставки на BTC-e и Mt.Gox, задавать правила для автоматической торговли.
Написана она на чистом Qt 4 с использованием OpenSSL, и, по моему мнению, в ней есть интересные особенности со стороны разработки, о которых тоже хочу рассказать.



Предыстория


Во время апрельских скачков курса Bitcoin я, и мой друг Dybik, как и многие на хабре, заинтересовались этой замечательной криптовалютой. Мы, как и, думаю, множество из тех кто читает эту статью, решили попробовать себя на бирже. Как оказалось, самой популярной биржей для торговли Bitcoin является Mt.Gox. Мы зарегистрировались там и начали делать первые ставки.

Курс постоянно рос, ажиотаж нарастал. Весь интернет гудел об этом, и помню, даже по телевизору тогда говорили о Bitcoin. Мы торговали на сайте Mt.Gox, и сайт часто подлагивал. Раздражало когда выставишь ордера, а отменить не получается. Вернее, получается, но кнопка «cancel» не давала никаких подтверждений и откликов. Было непонятно, отменился ордер или нет.

Уже тогда я подумал: «А почему нет на сайте возможности задать правила для создания ордеров?». Круглосуточно следить за курсом нельзя, было бы хорошо оставить правила на ночь. Искал программы и находил python боты и какие-то непонятные мне тогда платные клиенты для десктопа. «Редактировать файл, чтобы подправить правило? Это же неудобно», — подумал я. Нужна программа, которая не позволит сделать механических ошибок, пропустить ноль или запятую.

Курс постоянно прыгал, и мы успевали выгодно покупать и продавать. Я пытался получить выгоду на мелких скачках. В логе ордеров Mt.Gox ясно отображался отдельный пункт суммой комиссии на покупку, но не было пункта для продажи. «Комиссия только на покупку», — подумал я. А когда посчитал, то понял, что проигрываю. Комиссия на продажу тоже есть, он встроен в сумму. По-моему, логичнее было бы делать одинаково отображение комиссии и для продажи и для покупки. Но, может, Mt.Gox специально хочет нас запутать? Не знаю. Выяснил это и начал дальше торговать.

Получилась хорошая сумма и мы поняли, что не зря потратили столько времени. А дальше, ну, вы и сами помните, дальше настал полный крах курса и мы тоже попали под удар. Сайт зависал, продать Bitcoin было невозможно, а потом Mt.Gox вовсе заморозил торги на сутки. Курс стремительно упал. Так я проиграл половину вложенной суммы.

Что дальше делать? Сдаться и вывести остаток суммы? Я не на минуту не сомневался и начал думать о стратегии, она не выходила у меня из головы. Искать боты на python? Нет, мне стало интересно реализовать что-то свое. Когда только начал торговать на Mt.Gox, у меня перед глазами уже была простая программа, которую я не мог нигде найти и тогда я приступил к разработке Qt Bitcoin Trader.

Встречайте — Qt Bitcoin Trader


После первого запуска вас встретит окно создания профиля.

Надо выбрать биржу, получить API ключ с параметрами Info и Trade, вести его в программу, далее — придумать надежный пароль.
Все данные сохраняются в папке профиля пользователя, зашифрованные c помощью OpenSSL шифрованием AES256.

В окне логина можете включить проверку обновлений.

Для пользователей Mac и Windows есть автоматическое обновление.
Проверка новых версий проводится по загрузке файла с GitHub, в котором сохранена контрольная сумма бинарного файла, зашифрованного с помощью RSA2048. Поэтому, нет риска подмены файла вредоносным.

Когда выйдет новая версия, то вы увидите такое окно:


Интерфейс я старался разработать простым, и так, чтобы все было на виду. Не в обиду пользователям с низкими разрешениями экранов, но оптимизировать интерфейс для них буду позже.

Слева вы видите список открытых ордеров, обновляющихся в реальном времени.
Вы можете создавать ордера на покупку и на продажу, но, чтобы сумма их не превышала ваш баланс. С недавних пор Mt.Gox сразу удаляет ордера, которые превышают баланс.
Наконец-то можно отменить ордер, и сразу видеть его статус «Отменен», даже если он еще висит на сайте, API получает подтверждение доставки.

Все данные маркета обновляются одним запросом, кроме последней цены. Она обновляется еще и из цен последних сделок.

Калькулятор комиссии доступен по маленькой кнопке слева вверху. Мне приходили отзывы, и я сделал его таким, какой привыкли использовать пользователи онлайн калькуляторов.

Он работает так же, за исключением того, что автоматически загружается баланс и последние цены, что есть удобно.
Вы можете открыть сколько угодно калькуляторов на свое усмотрение.

Вы можете легко создать правило для автоматического создания ордеров:

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

Для некоторых значений есть звуковое оповещение. Значок динамика — это кнопка-выключатель.

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

Для Windows пользователей есть возможность включить портабельный режим. Надо создать папку QtBitcoinTrader в той же папке что exe файл, и все зашифрованные данные будут сохраняться в ней.

Что ожидается в следующих версиях Qt Bitcoin Trader?


Сейчас поддерживаются биржи BTC-e и Mt.Gox. По возможности свободного времени, я доделаю поддержку остальных самых популярных бирж по очереди.
Возможно работа websocket api и http api одновременно.
Далее — отображение графиков в реальном времени.
Будет реализована возможность добавления API разных бирж и разных валют в один профиль, для одновременного мониторинга.
Скриптовый язык, как дополнение правил, которым можно будет в несколько строк написать стратегию анализирующую цены на разных биржах.

Как вы мне можете помочь в усовершенствовании Qt Bitcoin Trader?


На данный момент программа переведена на английский, немецкий, русский, украинский, испанский, голландский и норвежский языки.
Вы можете помочь перевести программу на свой родной язык. В программе присутствует встроенный движок-переводчик. Нажмите кнопку «О программе», и вы увидите инструкцию:


Нажмете кнопку «Перевести программу», и увидите диалог:


Здесь есть все поля, которые надо перевести. Поля с красным текстом — это поля, совпадающие с английским переводом.
По нажатию кнопки «Применить», вы сразу увидите свой перевод в программе и сможете подкорректировать слишком длинные тексты. Когда вы закончите перевод, сохраните файл и пришлите на электронный адрес, указанный в инструкции. После проверки перевода я добавлю его в следующую версию Qt Bitcoin Trader.
И не забудьте оставить свою контактную информацию и адрес Bitcoin для донейтов в поле «Переводчик:».

Также вы можете помочь в развитии программы материально, поскольку программа живет только на донейтах.
Адрес Bitcoin для поддержки: 1d6iMwjjNo8ZGYeJBZKXgcgVk9o7fXcjc

Официальные ресурсы Qt Bitcoin Trader


Исходник на GitHub

Скачать для Windows и Mac (SourceForge.net)
Скачать с Softpedia для Windows
Скачать с Softpedia для Mac

BitcoinTalk RUS Форум
BitcoinTalk ENG Форум
BtcSec Форум

Facebook
Twitter
VK



Фишинг


Как только моя программа появилась в интернете, сразу начали появляться дубликаты с описанием моей программы.
Но, вместо ссылок на скачку Qt Bitcoin Trader предлагается скачать вирус. Я был удивлен, почему так много фейков Qt Bitcoin Trader в интернете. И даже qtbitсоintrаdеr.соm — это фейк с ссылкой на вирус, и www. qt-trаdаr.ru тоже фейк. Если бы знал, что программа будет так популярна, то сразу бы забил эти домены. Думаю, это урок для меня и для всех, кто читает эту статью.
Будьте внимательны, если не знаете, надежная ли ссылка, то гуглите по названию.
Я рекомендую использовать встроенное в программу безопасное обновление.

Особенности разработки Qt Bitcoin Trader


Механизм встроенного переводчика


Может, вы задаетесь вопросом, почему я не выбрал для перевода программы стандартный Qt Linguist?
Мне он не нравится, может и удобно редактировать форму, но, чтобы перевести файл, нужен сам Qt Linguist, а он есть, наверное, только у 5% всех пользователей программы.
Поэтому, я решил написать свой движок, и сделать его удобным не только для разработчиков, но и для всех пользователей программы.
Можете посмотреть исходники класса JulyTranslator на GitHub. Это базовый класс, в котором сохраняются все ассоциации слов в QHash. Этот класс умеет загружать и сохранять файлы перевода, а так же переводить отдельные объекты интерфейса и загружать текст из интерфейса в файл.
Каждому объекту интерфейса, который должен переводиться, я задаю уникальный текстовый идентификатор через setAccessibleName().
Функция translateUi(QWidget *parent) класса JulyTranslator обходит все дочерние виджеты родителя из параметра функции. Каждому виджету, который надо перевести, само собой надо вызывать translateUi() в конструкторе или по сигналу.
Например, обходим все кнопки QPushButton, проверяем, есть ли значение accessibleName(), и, если да, то достаем ассоциацию этого значения из QHash класса JulyTranslator
foreach(QPushButton* curButton, par->findChildren<QPushButton*>())
   if(!curButton->accessibleName().isEmpty())
       curButton->setText(translateButton(curButton->accessibleName(),curButton->text()));

Получился класс, который загружает язык из файла и применяет его в интерфейс.

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

Пример для кнопки:
foreach(QPushButton* pushButtons, par->findChildren<QPushButton*>())
	pushButtons->setMinimumWidth(qMin(pushButtons->maximumWidth(),QFontMetrics(pushButtons->font()).width(pushButtons->text())+10));

В результате, мы экономим место в интерфейсе, и при этом тексты не выходят за виджеты.

Второй этап — сделать создание перевода удобным для пользователей.
Класс TranslationDialog предназначен для генерации списка полей. Он достает весь массив текстов из JulyTranslator и генерирует QTextEdit для каждого поля.
Поскольку мне не всегда нравится то, что делает лейаут с QTextEdit, я написал виджет TranslationLine, который при изменении идеально обтекает текст для экономии места.
Вы можете это наблюдать в переводчике, когда дописываете что-нибудь или ставите энтеры в текстовые поля. Поле автоматически увеличивается и уменьшается.

Безопасное автоматическое обновление только с помощью GitHub и SourceForge


Принцип обновления прост: программа при запуске загружает файл raw.github.com/JulyIGHOR/QtBitcoinTrader/master/versions.txt, который лежит на GitHub в открытом виде.
В файле сохранена зашифрованная с помощью RSA2048 контрольная сумма бинарника SH1.
Public.key вшит в ресурс программы, а Private.key надежно сохранен и запаролен, и есть только у меня.
Программа при проверке обновления загружает файл по указаной ссылке из файла в оперативную память, если файл больше 15 мб, то закачка отменяется.
Дальше вычисляется контрольная сумма SH1 скачанных данных, и сопоставляется с расшифрованной информацией из файла обновления.
Если контрольная сумма совпадает, то программа сохраняет файл из оперативки на диск под названием QtBitcoinTrader.upd. После контрольной проверки читает его обратно, и проверяет, хорошо ли сохранился файл. После успешной проверки переименовывает себя в *.bkp, а файл *.upd — в оригинальное имя файла.
После перезапуска лишние файлы удалятся.
Этот принцип работает одинаково и для Windows, и для Mac OS X.

Послесловие


Помните, программа за вас не торгует, это лишь инструмент помогающий вам торговать.
Надеюсь, я не слишком затянул и статья была вам интересна.
Буду рад поддержке, отзывам и рекомендациям.
+39
39958
188
IGHOR 28,4 G+
Похожие публикации
Реализация и тестирование Qt C++ клиента сетевого сервиса с асинхронным интерфейсом на примере Yandex Dictionary Api 12 августа в 17:30
Анализ логов Mt.Gox выявил подозрительную активность бота Вилли 26 мая в 13:30
Биржа Mt. Gox объявила об обнаружении более 100 миллионов долларов пользовательских средств на собственном кошельке 22 марта в 00:45
Инсайд истории Mt. Gox 6 марта в 00:22
Создатель Mt. Gox и eDonkey работает над секретным проектом, связанным с Биткоин 14 февраля в 23:58
Центр онлайн-обучения на базе свободного программного обеспечения за 15 минут, или Еще раз о BigBlueButton 24 января в 11:22
Технологии фондового рынка: прямой доступ на биржу 3 декабря 2013 в 11:04
Организация сервиса общих календарей и контактов для корпоративного использования на базе свободного программного обеспечения 14 октября 2013 в 16:33
США заморозили счета Bitcoin Mt.Gox 17 мая 2013 в 09:35
Торговля на бирже превращается в битву математиков 27 мая 2010 в 23:42

Комментарии (50)

+5
Ockonal, #
Интерфейс я старался разработать простым, и так, чтобы все было на виду.

Не в тему но. Страшненько, имхо, нужно допиливать очень.
+3
Fedcomp, #
Согласен, абсолютно не нужно рисовать свой стиль.
+1
evnuh, #
Можно посмотреть какие-нибудь профессиональные торговые терминалы и понять, почему они все сделаны в многооконном режиме. Это удобно, настраиваемо и концетрирует человека только на том, что ему нужно.
0
IGHOR, #
Я просто хотел включить прозрачность Aero для фона.
Но из-за бага Qt который присутствует с версии 4.7.х при включении прозрачности стиль QGroupBox исчезает.
Поэтому пришлось задать стиль принудительно.
+1
Disasm, #
Мне он не нравится, может и удобно редактировать форму, но, чтобы перевести файл, нужен сам Qt Linguist, а он есть, наверное, только у 5% всех пользователей программы.

Зачем он пользователю? Переводите, компилируете перевод, распространяете вместе с программой.
0
IGHOR, #
У меня нет возможности перевести программу на другие языки.
А если у пользователей есть время и они переводят сами, почему бы и нет?
–1
Disasm, #
Обычно пользователи в таком случае довольствуются английским языком.
+3
BaJlepa, #
По моему опыту, пользователи с удовольствием переводят на свой язык.
+1
turboNOMAD, #
Инструменты, подобные этому, облегчают вход в торговлю для неподготовленных пользователей. Поэтому я считаю, что они скорее вредны, чем полезны.
Чтобы иметь доход на бирже, нужно обладать хотя бы базовым пониманием механизмов трейдинга и анализа — как технического, так и фундаментального. А еще нужно постоянно следить за изменяющейся ситуацией.
Если вы этого не умеете, пожалуйста, не ввязывайтесь — больше вероятность потерять свои деньги, чем приумножите. Помните: никогда не вкладывайте больше денег, чем можете безболезненно потерять.

И конечно же не стоит забывать про моральные аспекты такого типа дохода…
+1
tangro, #
Я правильно понимаю, что Вы выставляете недостатком простоту и легкодоступность программы, а также указываете на то, что людям должно быть стыдно за заработанные с её помощью деньги?
0
turboNOMAD, #
«Заработанные» деньги? В чем здесь «работа» заключается и какой ее продукт?
+1
tangro, #
Это придирки к словам. Подставьте туда «полученные», «выигранные» или «найденные» — суть не измениться, Вы предлагаете людям стыдиться того факта, что у них хватило ума увеличить свой капитал? Слегка наивно и необоснованно, не находите?
+2
turboNOMAD, #
«У них хватило ума увеличить свой капитал» за счет потерь у других людей, не дав тем ничего взамен. С тем же успехом можно оправдывать действия организаторов МММ, телевангелистов и всякого отребья типа гадалок и наперсточников в переходах.
Если расстрелять всех обладателей такого «ума», для общества будет только лучше.
+2
tangro, #
В парке стоит каруселька — жрёт электричество и отбирает у родителей деньги, принося по сути фигню — детскую улыбку на 2-3 минуты. Сжечь её к чертям, поскольку где же тут полезная работа и готовый продукт?

Хватит рассказывать людям как им жить. Я согласен что все эти форексы — развод и кидалово, но если люди хотят там играть на свои честно заработанные деньги и испытывать эмоции от их потери или получения — разве это повод их в чём-то обвинять? Или тем более наезжать на авторов софта?
0
turboNOMAD, #
Первый абзац — некорректная аналогия, доведение до абсурда. Второй — приписывание оппоненту того, чего он не говорил и торжественное опровержение.

Дешевые приемчики.
+1
tangro, #
Такие себе, да.

Однако по первому абзацу — все общие признаки (выполнение ненужной работы и отсутствие продукта) на лицо, а разницу Вы не указали. Соответственно, где тут доведения до абсурда — я не вижу.

По второму — вот слова: «нужно постоянно следить», «не ввязывайтесь», «помните», «никогда не вкладывайте» — прямые указания к действию, т.е. отсутствие уважения к свободной воле людей, желающих частенько делать глупости.
–3
turboNOMAD, #
«Соответственно, где тут доведения до абсурда — я не вижу.» — «Тато, де море?»

Я использовал свою свободную волю предупредить людей, чтоб не сливали деньги бездумно. А еще высказал порицание тем, кто получает (уж точно не «зарабатывает», за отсутствием работы) таким способом.

Не пытайтесь мне доказать, что я сказал/сделал что-то неправильно. Я лучше вас знаю, что правильно, а что нет. Потому и даю советы.
+2
tangro, #
>Я лучше вас знаю, что правильно, а что нет.

А, ну тогда конечно ок, сорри.
0
turboNOMAD, #
Не стоит извинений, я не обиделся.
+2
SAGAK, #
Возьмем пример лотереи. Каждый участник какой-либо лотереи покупает билет, часть от стоимости билета уходит на джек-пот (призовой фонд), другая часть — организаторам лотереи (но это не суть важно). Так вот, тот, кто выиграл в лотерею, забирает джек-пот, а все остальные участники остаются ни с чем. Но каждый участник прекрасно знает, что шансы победить ничтожны, но все равно покупают билеты.

В случае бирж — ситуация идентичная: каждый знает, что он может остаться ни с чем. Все участники об этом знают, это их ВЫБОР. По сути, это перетягивание каната — выигрывает только одна сторона, которая забирает свой выигрыш. Но, опять-таки, повторюсь — все оправданно идут на риск, их никто не принуждает.

Что касается наперсточников и гадалок — это уже другая тема, это банальный развод. Насчет МММ немного другая ситуация, чтобы что-то в ней получить — нужно знать правила, которые никому обычно не интересны и никто их не читает, за что многие и расплачиваются/расплатились. Кроме того, от МММ пострадали/пострадают те, кто жаждит халявное бабло, закладывает квартиры, машины и т.п., а как известно: «жадность фраера сгубила».
0
turboNOMAD, #
Ах, если бы начинающие трейдеры действительно помнили, что могут потерять деньги. На практике это, как правило, не так: люди вкладывают семейные сбережения, считая себя самыми умными, хитрыми и т.д. — «я уж точно знаю, как навариться!». А потом обжигаются, но поздно — денег не вернешь.

По большому счету, суть спекуляций, пирамид типа МММ и всяческих лотерей-лохотронов одинакова — выигрывают только те, кто действительно понимает «правила игры», и таких меньшинство. Фактически, получается ввод большинства участников происходящего в заблуждение.
Против этого и предостерегаю.
0
SAGAK, #
«Несостоявшийся электрик Вова, который хотел сэкономить денег на вызов электрика, не понимал и не читал ничего про технику безопасности при работе с электрооборудованием и не мог понять, почему оказался на небесах. Он жалобно просил бога о том, чтобы тот вернул его на Землю. Бог ему отказал, а Вова все продолжал поглядывать на своё обожжённое мёртвое тело».

Если ты начинающий трейдер — ты в первую очередь должен помнить о рисках, если все проиграл — твоя проблема, и не нужно винить кого-то, кроме себя. Про горе МММщиков можно сказать тоже самое. Мне не жалко ни первых, ни вторых — думать мозгами и читать инструкции никто не запрещает.

И вы не предостерегаете, в большей степени — пропагандируете то, что трейдеры и МММщики белые и пушистые, и их надо согреть и приласкать. И ещё раз повторюсь — они сами знали то, чем это может обернуться.
+2
shaeng, #
работа заключается в том что люди продают товар когда в нём дефицит, и покупают товар когда в на рынке его излишки, это устанавливает на товар справедливую цену. это намного важнее чем вы думаете.
0
ankh1989, #
не могли бы вы пояснить в чём состоит важность этого процесса?
+1
shaeng, #
Представьте, вы при ходите на рынок, купить скажем капусту, но сегодня она стоит в десять раз дороже чем вчера, вчера она вам не нужна была, а сегодня вы не можете позволить себе платить столько. фактически такой ситуации произойти не может, так как есть люди которые скупают излишки капусты когда она дешёвая, и продают её когда она в дефиците, эти люди обеспечивают стабильность цен и доступность товара. Почему это важно? Наверное потому что это приносит пользу как продавцам капусты, которые могут продать товар быстрее снизив цену, так и покупателям, которые не должны искать момент чтобы купить капусту дешевле, потому что цена уравновешена рынком.
0
turboNOMAD, #
Надо же, какое вранье. Всегда было так, что при повышении цены спекулянты придерживают товар, а то и скупают его, тем самым заставляя цену вырасти еще сильнее и максимизировать их доход. Соответственно, при падении цены они демпингуют, чтоб потом закупиться еще дешевле.

Возникает вопрос — вы этого действительно не понимаете, или же сознательно вводите людей в заблуждение? Вы случаем не спекулянт?
0
shaeng, #
то есть Вы утверждаете что «спекулянты» покупают товар когда цена растёт (спрос превышает предложение), а продают когда цена падает? Откуда они в таком случае получают прибыль?
+1
RussianNeuroMancer, #
> Фишинг
Планируется ли в связи с этим официальный PPA проекта?
0
IGHOR, #
Думаю с официальным сайтом разберемся, и репозиторий Ubuntu добавлю.
+1
Evengard, #
А графики-то где? Как без графиков-то? На Metatrader хоть посмотрите — там графикам уделена центральная часть, и неспроста
+1
IGHOR, #
И графики будут, и поддержка других бирж. Поскольку разработчик только один, это занимает больше времени.
Приоритетной была разработка именно текущего функционала программы.
+4
bO_oblik, #
Впервые вижу такую функциональность перевода. Очень интересно. Надо взять на заметку.
0
IGHOR, #
Я давно хотел реализовать такой встроенный в программу переводчик.
И Qt Bitcoin Trader стала первой программой куда я его встроил.

Требования себе ставил такие:
1) дать пользователям возможность просто перевести программу без надобности изучать разметку файлов;
2) не дать пользователю ввести не верные значения перевода;
3) дать пользователю возможность сразу применить перевод и посмотреть как он выглядит;
4) возможность сохранить готовый файл для распространения.
0
sphinks, #
В свое время тоже подумывал о некой автоматической торговле биткоинами, но в итоге отказался — отсутствие стабильности работы бирж, пробовать заработать на небольших изменениях курса довольно тяжело. Как вы написали достаточно 1-2 остановок в работе биржи, что бы потерять все заработанное, а такое случается не редко на биткоин биржах.
+1
Amomum, #
Не по теме: Вот, опять. Опять это требование к паролю — не меньше 7 символов, спецсимволы и цифры. А если у меня пароль — фраза из 42 символов, но без цифр и спецсимволов? Спасибо хоть нет ограничения сверху на длину.
0
IGHOR, #
Я прислушаюсь к вам и отключу это требование при пароле длиннее 10 символов.
Спасибо за отзыв.
0
Amomum, #
О, надо же! Спасибо!
Но лучше ориентироваться на какую-нибудь другую характеристику сложности пароля, вроде энтропии.
+2
IGHOR, #
Я подумаю над этим.
А пока уже выложил обновление на GitHub.
И теперь требования к паролю такие:
1) Пароль должен быть минимум 8 символов, состоять из букв, чисел и спец символов.
2) Пароль должен быть минимум 8 символов, состоять из букв, чисел и содержать как большие так и маленькие буквы.
3) Если пароль длиннее 14 символов то нет в ограничениях спец символов.
В следующей версии v1.0.2 это будет по умолчанию.
0
foff4ik, #
А ачем вообще эти ограничения нужны, просто написать думаю в примечании стоит что не надо делать слабые пароли и при слабом пароле спросить «А вы уверенны? Это же совсем небезопасно.»
0
IGHOR, #
Сначала не было пароля вовсе.
А потом начали приходить отзывы с просьбами улучшить безопасность.
И думаю большинство пользователей поставили бы простой пароль несмотря на предупреждения.
Я об этом еще подумаю, чтобы сделать требования к паролю не такими жесткими, но и не дать пользователю поставить слишком простой пароль.
0
kin63camapa, #
Коментим 3 строки кода, пересобираем, profit.
0
IGHOR, #
Реализацию проверки пароля уже переписал.
И согласитесь, каждый раз обновляя версию программы, неудобно комментировать даже несколько строк кода.
0
reimax, #
в заголовке указан клиент для linux, что то не нашел ссылок на него, плохо смотрю?
0
IGHOR, #
Можете собрать программу из исходников GitHub если у вас есть библиотека Qt 4.x.x
+1
Santacruz, #
Пиши еще автор! полезные вещи… посмотри еще github.com/rippleFoundation/ripple-lib Это скоро будет нужно
0
IGHOR, #
Над этим тоже работаю.
Ждите обновлений :)
0
kin63camapa, #
Не нашел ни на форуме ни тут под какой лицензией исходники распространяются? Хочется заиспользовать часть в целях личного обогащения.
0
IGHOR, #
Лицензия на GitHub как в файле LICENSE.GPL3 так и в каждом cpp и h файле.
GPL3
Планируеться скриптовый язык для создания любых стратегий и ботов.
Если есть предложения по механизму стратегий, пишите на email в окне About.
0
kin63camapa, #
слона то и не заметил, сорри. Автору респект и уважуха, идея такого у меня была уже давно а реализовать никак руки не доходили а тут готовое почти всё, чуть чуть под себя доработать осталось. кстати автор не рассматривал идею ботов плагинами подключать?
0
IGHOR, #
Рассматривал, и буду реализововать несколько вариантов создания стратегий, от простых правил до скриптов и плагинов.
Но пока не знаю сколько времени уйдет на все что запланировал.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.