Pages:
Author

Topic: Qt Bitcoin Trader [Клиент для безопасных торгов на Mac/Windows/Linux] - page 35. (Read 303480 times)

newbie
Activity: 51
Merit: 0

Доброго времени суток!
Огромное спасибо автору за софт такого уровня. Наткнулся на этого клиента 2 дня назад, но до сих пор нахожусь под впечатлением. Интерфейс на 5+ Такое впечатление, что программа написана по твоему заказу. Жду дальнейших обновлений и добавления функционала, а также примеров скриптов. Т.к. сам не программист, то пытаюсь понять все с описания и примеров. Отдельное спасибо dikanevn за его стратегию.
И маленький вопрос. Откуда берутся события такие как AskPrice, BidPrice и т.д.? Они заложены в программе или берутся с самой биржи? И полный ли их список на странице описания JL Script  http://forum.centrabit.com/viewtopic.php?f=3&t=4168 и в самой программе?
Просто сейчас пытаюсь писать какие-то простые примеры скриптов, и столкнулся с тем, что не могу, к примеру, вычислить усредненную цену 10 последних продаж. Буду благодарен, если кто подскажет, как это можно вычислить. Или без сохранения переменных это пока не возможно?

Здравствуйте, AskPrice , BidPrice берутся с биржи, это цена продажи и покупки на данный момент,а вот вычислить усредненную цену 10 последних продаж, без сохранения и подсчёта в самом скрипте , если не ошибаюсь, пока не возможно.
jr. member
Activity: 46
Merit: 10
баг с шагом стакана 0.010 и 0.005 так и остался  Tongue

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


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

Будет сохранение переменных и сохранение в локальную SQL базу данных.

Эти апдейты ожидаются в следующем релизе?

Доброго времени суток!
Огромное спасибо автору за софт такого уровня. Наткнулся на этого клиента 2 дня назад, но до сих пор нахожусь под впечатлением. Интерфейс на 5+ Такое впечатление, что программа написана по твоему заказу. Жду дальнейших обновлений и добавления функционала, а также примеров скриптов. Т.к. сам не программист, то пытаюсь понять все с описания и примеров. Отдельное спасибо dikanevn за его стратегию.
И маленький вопрос. Откуда берутся события такие как AskPrice, BidPrice и т.д.? Они заложены в программе или берутся с самой биржи? И полный ли их список на странице описания JL Script  http://forum.centrabit.com/viewtopic.php?f=3&t=4168 и в самой программе?
Просто сейчас пытаюсь писать какие-то простые примеры скриптов, и столкнулся с тем, что не могу, к примеру, вычислить усредненную цену 10 последних продаж. Буду благодарен, если кто подскажет, как это можно вычислить. Или без сохранения переменных это пока не возможно?
newbie
Activity: 51
Merit: 0
сКРИПТ НА ДОРАБОТКЕ, НАЙДЕН ГЛЮК

Так вот кто курс лайта уронил ниже плинтуса!  Grin
А что там было не так?
Нее это не я ^^ , пока по мелкому, тестирую ))
Когда какой-то ордер был куплен не до конца и цена пошла вверх, он неправильно считал, и мог продать себе в убыток, но я исправил, сейчас обновлю пост.
newbie
Activity: 24
Merit: 0
сКРИПТ НА ДОРАБОТКЕ, НАЙДЕН ГЛЮК

Так вот кто курс лайта уронил ниже плинтуса!  Grin
А что там было не так?
newbie
Activity: 51
Merit: 0
Доброго времени суток!
На сайте btc-e.com видно какой баланс сейчас на ордерах, нет возможности добавить такую же trader.get... в  приложение? будет очень полезна.
legendary
Activity: 1034
Merit: 1065
KIS 2013 упорно не пускает в сеть клиент 1.08.03 на Win8 x64. Клиент в исключениях, сетевые правила разрешены. В чем может быть проблема?

Пишите в суппорт KIS. Они быстро отвечают.
legendary
Activity: 1650
Merit: 1033
KIS 2013 упорно не пускает в сеть клиент 1.08.03 на Win8 x64. Клиент в исключениях, сетевые правила разрешены. В чем может быть проблема?
newbie
Activity: 51
Merit: 0
Для отмены ордеров на торгующей паре в Скрипт 1 НЕОБХОДИМО указать например trader.cancelOrders("LTCUSD"); вместо trader.cancelOrders(); последнее чревато отменой всех ордеров по всем вашим парам и использования всего появившегося фиата на текущей паре Grin
Для trader.cancelAsks(); также.

Для BTCUSD начальные константы в Скрипт 1 будут конечно же другие.


Спасибо что заметили,но скрипт расчитан чтобы использовать один аккаунт на бирже только для одной пары в скрипте, так как баланс USD всё равно общий и будет неправильный расчет при рестартах скрипта. Исправлю конечно, и допишу это в описание, зарегистрировать новый бтц-е думаю не так сложно. А константы просто как пример, тут уж трейдер сам себе хозяин. =)) Сейчас активно тестирую скрипт на 4 парах, постоянно нахожу новые ошибки, обновляю пост =))
legendary
Activity: 1034
Merit: 1065
Эти апдейты ожидаются в следующем релизе?

Как только все стабильно заработает то выложу.
Если не все одновременно то по очереди.
full member
Activity: 137
Merit: 113
баг с шагом стакана 0.010 и 0.005 так и остался  Tongue

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


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

Будет сохранение переменных и сохранение в локальную SQL базу данных.

Эти апдейты ожидаются в следующем релизе?
legendary
Activity: 1034
Merit: 1065
Не хватает очень важной функции, сохранения значений переменных. Из-за этого нет реальной возможности запускать на долговременных стратегиях.

Будет сохранение переменных и сохранение в локальную SQL базу данных.
newbie
Activity: 49
Merit: 0
Не хватает очень важной функции, сохранения значений переменных. Из-за этого нет реальной возможности запускать на долговременных стратегиях.
legendary
Activity: 1034
Merit: 1065
баг с шагом стакана 0.010 и 0.005 так и остался  Tongue

Новый движок еще с багами, как только завершу работу то заменю текущий механизм стакана и все заработает как надо.
Так же будет новый интерфейс с плавающими панельками.
newbie
Activity: 24
Merit: 0
баг с шагом стакана 0.010 и 0.005 так и остался  Tongue
full member
Activity: 137
Merit: 113
Вышел v1.08.03 релиз!
Приветствуем новую биржу bitcurex.com
Исправлено много багов в вычислениях.
Исправлены баги JL Script и незначительные баги.
Исправлены баги в Bitfinex.
Болгарский язык обновлен.

https://centrabit.com/?m0prm=6

Круто, спасибо за труды!
legendary
Activity: 1034
Merit: 1065
Вышел v1.08.03 релиз!
Приветствуем новую биржу bitcurex.com
Исправлено много багов в вычислениях.
Исправлены баги JL Script и незначительные баги.
Исправлены баги в Bitfinex.
Болгарский язык обновлен.

https://centrabit.com/?m0prm=6
newbie
Activity: 51
Merit: 0
UPD: Давно забил на скрипт, информация для общего развития, не запускайте его, он не пашет, все сразу продаст вроде
С наступившим НГ !
Решил написать стратегию для этой программы
Внимание! Стратегия мало протестирована, используйте на свой страх и риск!
Торговал на боте по ссылке ниже, в принципе сделал такой же ,  так что алгоритм читайте тут -
https://ezhrd.wordpress.com/2014/06/05/%D0%BE%D0%B1%D1%89%D0%B8%D0%B9-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%B1%D0%BE%D1%82%D0%B0/
Но там 5$ в месяц за одну пару на одной бирже, тут же всё бесплатно.
как и в обновлении того бота,в алгоритм добавлена функция подтяжки таблицы ордеров вслед за курсом. Например, бот выставил таблицу закупок, ни одна закупка не исполнялась, но курс пошел вверх, а не вниз. Когда курс станет выше, чем цены покупки на указанный % , бот снимет всю таблицу закупок и выставит заново, отталкиваясь от нового курса.

Я JavaScript вообще не знал, изучал всё с ходу и поэтому скрипт написан непрофессионально, присылайте глюки и баги если будут.
по умолчанию скрипт написан для пары LTC/USD на бирже BTC-e, что бы настроить для другой пары на любой бирже, заменить на обоих скриптах в блокноте через ctrl+H все LTC на, например, BTC , и USD на ,например , EUR
Скрипт расчитан чтобы использовать один аккаунт на бирже только для одной пары в скрипте, для другой пары необходимо зарегистрировать ещё один аккаунт со своими балансами.

для запуска в разделе правила добавляем два скрипта с именами "Скрипт 1" и "Скрипт 2" и вставляем текст ,в начале ОБОИХ скриптов меняем параметры под свой вкус, и  запускаем Скрипт 2.
сумма на балансе должна быть вся на второй валюте в паре (для LTC/USD в USD),на первой должен быть ноль.

текст для Скрипт 1
 
Code:
var otstup = 0.5        //   в %, отступ первого шага,Насколько цена первого buy ордера в таблице закупке должна быть меньше текущей на момент расчета таблицы. Все остальные buy ордера будут еще дешевле
var orders = 13         //  от 2 до 20 , Сколько buy-ордеров помещать в объеме перекрытия.
var perekr = 30            //   в % , перекрытие хода цены,Глубина расчета таблицы buy ордеров. Например, при цене первого шага 10USD процент перекрытия 20% означает, что таблица будет выставлена в диапазоне // 8-10USD.
var profit =  1        //  в % , профит,Сколько профита закладывать в каждый sell ордер.
var martin = 15            //  в %, мартингейл, При расчете таблицы buy ордеров каждый следующий более дешевый ордер по объему больше предыдущего на это значение.
var depo = 98              //   в % , от 1 до 98, Использование депо, какую часть от USD (или второй валюты в паре) пускать в оборот


bal=trader.get("Balance","USD")
var komissiya = trader.get("Fee")  
otstup = otstup / 100
otstup = 1 - otstup

  depo = depo / 100
martin = martin / 100 + 1

komissiya = komissiya *2
komissiya = komissiya / 100 + 1

perekr = perekr + otstup
profit = profit / 100 + 1
var prceni = perekr / orders

prceni =1-( prceni / 100)
// pervaluteif = 100000
trader.cancelOrders("LTCUSD");
 var pric = trader.get("BidPrice") * otstup;
var  price=pric
var cena = pric
 pricet = pric * prceni;
raznost = pric - pricet
function koa()
{
all = trader.get("Balance","USD") * depo
yyy=0
for (var i = 0; i < orders  ;) {
yyy = yyy + Math.pow(martin,i)
i = i + 1
 }

var amount = all / yyy
amstart = amount
for (var i = 0; i < orders;) {
 trader.buy("LTCUSD" , amount / price , price);
price = price - raznost
amount = amount * martin
  i = i + 1
}
 }


trader.delay(25 ,"koa()");

trader.timer(15,"hbvr()");




function hbvr() {

if (trader.get("Balance","LTC") > 0.000001) {
if (trader.get("OpenAsksCount") < 1 ) {

trader.delay(10,"venakid()");
}}}
var pperv =0
var ppervraz = 0
var pvtorvraz = 0







trader.delay(40 ,"aaa()");

function aac()
{
trader.cancelAsks();
}

function venakid()
{
if (trader.get("Balance","LTC") > pperv*0.9999) {
ppervraz =0
}
vsumma = 0
vbaksi = 0
vprice = pric
vamount = amstart
vskoordp = orders - trader.get("OpenBidsCount")
for (var vi = 0; vi < vskoordp;) {
vsumma = vsumma +(( vamount / vprice )/1000*(1000-(trader.get("Fee")*10)))

vbaksi = vbaksi + vamount
vprice = vprice - raznost
vamount = vamount * martin
  vi = vi + 1
}
vamraz = trader.get("Balance","LTC") - vsumma
trader.log("vamraz ",vamraz );
vbaksraz =  (vamraz/(1000-(trader.get("Fee")*10))*1000) * vprice
vvbaks = vbaksraz + vbaksi
vvbaks = vvbaks * profit *  (1000/(1000-(trader.get("Fee")*10)))
pperv= trader.get("Balance","LTC")
trader.sell("LTCUSD" , trader.get("Balance","LTC") , vvbaks / (trader.get("Balance","LTC")+ppervraz) );
}



function aaa()
{
trader.on("OpenBidsCount").changed()
{

if (trader.get("Balance","LTC") > 0.000001) {
if (trader.get("Balance","LTC") < pperv*0.9999) {
if (trader.get("OpenAsksCount") == 1 ) {
if (pperv != 0 ) {



ppervraz = pperv - trader.get("Balance","LTC")
// pvtorvraz = ppervraz * trader.get("LastMySellPrice")
}}}}
 trader.delay(3,"aac()");
}}










trader.timer(45,"hjk()");
function hjk() {
if (trader.get("OpenBidsCount") != orders ) {

if (trader.get("OpenAsksCount") < 1 ) {
if (trader.get("Balance","LTC") < 0.000001){

trader.groupStop("Скрипт 2");

trader.groupStart("Скрипт 2");
}}}}

текст для Скрипт 2

Code:

var vverh = 1 // в %, например, если стоит 2%, и  на момент запуска скрипта цена покупки будет 100 USD , то при цене покупки 102 весь цикл перезапустится
var orderss = 13 // значение как в скрипт 1
// ниже если не шарите ничего не меняйте.

var rest = 100000000000
trader.groupStop("Скрипт 1");
trader.groupStart("Скрипт 1");
sledcikl();
function sledcikl(){
rest = vverh  / 100 + 1
rest = rest * trader.get("BidPrice")
trader.log("restatr pri", rest );
}

trader.timer(45,"rrr()");
function rrr(){

if (trader.get("BidPrice") >= rest) {

if ( trader.get("OpenAsksCount") < 1 ) {

if ( trader.get("OpenBidsCount") == orderss ) {


trader.log("proverka1", trader.get("OpenBidsCount") );
trader.groupStop("Скрипт 1");
trader.groupStart("Скрипт 1");
sledcikl();
}}}}

небольшая история работы бота

Code:
16.01.2015 13:22:41 Ł0.121557 продано $1.43392 0.17430302
16.01.2015 12:47:18 Ł0.1218        куплено $1.41404 0.17223007
16.01.2015 12:42:29 Ł0.261119 продано $1.4006   0.36572327
16.01.2015 10:57:32 Ł0.137858 куплено $1.37309 0.18929144
16.01.2015 10:51:00 Ł0.123784 куплено $1.39        0.17205976
16.01.2015 10:38:53 Ł0.267887 продано $1.36405 0.36541126
16.01.2015 10:22:25 Ł0.141432 куплено $1.33727 0.18913277
16.01.2015 10:22:25 Ł0.126992 куплено $1.35393 0.17193828
16.01.2015 10:18:26 Ł0.127438 продано $1.36486 0.17393503
16.01.2015 10:14:35 Ł0.127693 куплено $1.34595 0.1718684
16.01.2015 10:12:13 Ł0.789664 продано $1.34143 1.05927898
16.01.2015 9:30:14 Ł0.194138 куплено $1.29297 0.25101461
16.01.2015 9:28:49 Ł0.174234 куплено $1.30971 0.22819601
16.01.2015 9:04:24 Ł0.156396 куплено $1.32644 0.20744991
16.01.2015 7:56:32 Ł0.140407 куплено $1.34317 0.18859047
16.01.2015 7:51:05 Ł0.126072 куплено $1.35991 0.17144658

Всем профита! и пишите всё что думаете по поводу бота ))
UPD: 23.01.2015 20:49:06 , исправил ошибки , исправил описание! Обновите оба скрипта, ну, кроме начальных данных.
legendary
Activity: 1034
Merit: 1065
Здравствуйте, подскажите в чем может быть причина проблемы: при работе QTBT с Indacoin через некоторое время (2-4 мин) вылетает с ошибкой

Сигнатура проблемы:
  Имя события проблемы:   APPCRASH
  Имя приложения:   QtBitcoinTrader.exe
  Версия приложения:   1.0.8.2
  Отметка времени приложения:   543edc7e
  Имя модуля с ошибкой:   QtBitcoinTrader.exe
  Версия модуля с ошибкой:   1.0.8.2
  Отметка времени модуля с ошибкой:   543edc7e
  Код исключения:   c0000005
  Смещение исключения:   000eee6d
  Версия ОС:   6.1.7601.2.1.0.256.1
  Код языка:   1049
  Дополнительные сведения 1:   0a9e
  Дополнительные сведения 2:   0a9e372d3b4ad19135b953a78882e789
  Дополнительные сведения 3:   0a9e
  Дополнительные сведения 4:   0a9e372d3b4ad19135b953a78882e789

Ключи API менял-бесполезно. С BTC-E работает без проблем.

Это баг их сервера когда он присылает неверные данные. Ошибку обошел программно, в следующем апдейте выйдет исправление.

Обнаружил недавно странные показания стакана на продажу биржи BTC-E. При шаге 0.010 и 0.005 в столбце "Всего В", значение даже приблизительно не совпадало с количеством, которое отображалось если выбрать другой шаг или вовсе без него. На тот момент сумма BTC на $300 была приблизительно 1150. А при шаге 0.005 в галза бросились четырёхзначные значения BTC, ну и суммы были соответствующие, причём при прокрутке стакана они изменялись.
Скрины прилагаю.

https://mega.co.nz/#!n0YhFAxL!xGEtciV0M-lCJf3NbMxahMkxdd1mxnGJqrVqn8G4qv4
https://mega.co.nz/#!e5Q0wKzJ!HsW2zntXmtWXV8i1CD16ZrZqTATQuHwiTmLkdqtYclo

PS Выздоравливайте скорее!  Wink

Эта часть кода переписана и в следующем апдейте должно работать корректно.
newbie
Activity: 2
Merit: 0
Здравствуйте, подскажите в чем может быть причина проблемы: при работе QTBT с Indacoin через некоторое время (2-4 мин) вылетает с ошибкой

Сигнатура проблемы:
  Имя события проблемы:   APPCRASH
  Имя приложения:   QtBitcoinTrader.exe
  Версия приложения:   1.0.8.2
  Отметка времени приложения:   543edc7e
  Имя модуля с ошибкой:   QtBitcoinTrader.exe
  Версия модуля с ошибкой:   1.0.8.2
  Отметка времени модуля с ошибкой:   543edc7e
  Код исключения:   c0000005
  Смещение исключения:   000eee6d
  Версия ОС:   6.1.7601.2.1.0.256.1
  Код языка:   1049
  Дополнительные сведения 1:   0a9e
  Дополнительные сведения 2:   0a9e372d3b4ad19135b953a78882e789
  Дополнительные сведения 3:   0a9e
  Дополнительные сведения 4:   0a9e372d3b4ad19135b953a78882e789

Ключи API менял-бесполезно. С BTC-E работает без проблем.
Pages:
Jump to: