Pages:
Author

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

newbie
Activity: 1
Merit: 0
Доброго времени суток! Подскажите пожалуйста, скриптами можно описать правила мультивалютной торговли по разным парам? Правилами не получаеться.
full member
Activity: 204
Merit: 100
Похоже не только у тебя  Undecided Сегодня зашел у меня тоже слетело .
Ложная тревога в профиль другой спросонья ввалился.  Tongue
newbie
Activity: 25
Merit: 0
Почему-то слетают апи-ключи (или еще что-то - не показывает баланс, мои ордера и пр.) при перезапуске компа при работающем боте. Приходится пересоздавать ключи и профили.
Это только у меня так?
member
Activity: 77
Merit: 10
обнаружила что если вычитаются дробные числа из меньшего большее, то скрипт не получает отрицательного числа. А получает 0.
Вот пробные операторы в скрипте:

uu=10.96;
oo=10.99;
gg=uu-oo;
trader.log(" отриц=",gg);

а вот это результат

21:52:05>  отриц= 0

Подскажите как исправить?



Уже писал несколько страниц назад. Обрабатываются числа правильно. Просто традерЛог их отображать не умеет.
Если сильно надо отобразить, то можно так:
uu=10.96;
oo=10.99;
gg=uu-oo;
trader.log(" отриц=",gg+"");
спасибо за ответ.
newbie
Activity: 25
Merit: 0
обнаружила что если вычитаются дробные числа из меньшего большее, то скрипт не получает отрицательного числа. А получает 0.
Вот пробные операторы в скрипте:

uu=10.96;
oo=10.99;
gg=uu-oo;
trader.log(" отриц=",gg);

а вот это результат

21:52:05>  отриц= 0

Подскажите как исправить?



Уже писал несколько страниц назад. Обрабатываются числа правильно. Просто традерЛог их отображать не умеет.
Если сильно надо отобразить, то можно так:
uu=10.96;
oo=10.99;
gg=uu-oo;
trader.log(" отриц=",gg+"");
member
Activity: 77
Merit: 10
Подскажите новичку, как разобраться с добавлением правила, для знающего это наверно очень просто, а я не могу в ехать. Напишите хоть один пример. Допустим, продать за х, купить за у и так по кругу. Huh
Элементарно, Ватсон.

создаешь группу правил
Группа 1
в это группе такие правила

1)купить х битков
2) если ордерсработал, то продать х битков по у цене
3) если ордер сработа, то активировать группу правил Группа2

Группа 2 предварительно была отключена. В этой группе такие правила
1) отключить группу правил Группа1
2) Включить группу правил Группа 1
3)  отключить все правила в группе2

всё правила зациклены.

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

member
Activity: 77
Merit: 10
Подскажите новичку, как разобраться с добавлением правила, для знающего это наверно очень просто, а я не могу в ехать. Напишите хоть один пример. Допустим, продать за х, купить за у и так по кругу. Huh
вот здесь посмотри
http://www.youtube.com/watch?v=VuF9LgzehK4
member
Activity: 77
Merit: 10
обнаружила что если вычитаются дробные числа из меньшего большее, то скрипт не получает отрицательного числа. А получает 0.
Вот пробные операторы в скрипте:

uu=10.96;
oo=10.99;
gg=uu-oo;
trader.log(" отриц=",gg);

а вот это результат

21:52:05>  отриц= 0

Подскажите как исправить?

newbie
Activity: 1
Merit: 0
Подскажите новичку, как разобраться с добавлением правила, для знающего это наверно очень просто, а я не могу в ехать. Напишите хоть один пример. Допустим, продать за х, купить за у и так по кругу. Huh
newbie
Activity: 1
Merit: 0
....
Релиз обновленного скриптового языка отложен и будет в следующем обновлении
....
будет ли управление отдельными ордерами по номеру, по магику или только скопом все удалять можно будет как сейчас?
newbie
Activity: 9
Merit: 0

при первой продаже баланс был, создал ордер на все т.е 0.01169092
баланс стал 0 ,потом скрипт постоянно повторяет продажу  при 0 балансе.


Вот тут есть нюанс.

Когда баланс больше суммы сделки где-то на 0.000001 и меньше, то ордер может не выставиться (закономерности не нашел). Видимо где-то (скорее всего у биржи) туго с математикой.
Делайте небольшой запас по балансу.

Ордер выставляется 1первый, брал баланс по  trader.get("Balance","BTC")
а потом по логу просто кружит типа другие ордера еще пытается,

Спасибо за идею, попробовал trader.get("Balance","BTC")*0,99999 пока вроде норм в остатке 0.00000023
newbie
Activity: 25
Merit: 0

при первой продаже баланс был, создал ордер на все т.е 0.01169092
баланс стал 0 ,потом скрипт постоянно повторяет продажу  при 0 балансе.


Вот тут есть нюанс.

Когда баланс больше суммы сделки где-то на 0.000001 и меньше, то ордер может не выставиться (закономерности не нашел). Видимо где-то (скорее всего у биржи) туго с математикой.
Делайте небольшой запас по балансу.
newbie
Activity: 9
Merit: 0
даже попробовал разделить скрипт покупки и продажи:
в скрипте- запуск скрипта1 при балансе бтц>0.01
Quote
trader.timer(60,"proverka3()");// если есть бтц

function proverka3()
{
if(trader.get("Balance","BTC")>0.01) {
trader.groupStart("Скрипт 1");
}}

но почемуто результат тотже :
в логе скрипта
Quote
20:36:14> Start group: "Скрипт 1"
20:37:14> Start group: "Скрипт 1"
20:38:14> Start group: "Скрипт 1"
20:39:14> Start group: "Скрипт 1"
20:40:14> Start group: "Скрипт 1"
20:41:14> Start group: "Скрипт 1"
20:42:14> Start group: "Скрипт 1"
20:43:14> Start group: "Скрипт 1"
20:44:14> Start group: "Скрипт 1"
20:45:14> Start group: "Скрипт 1"

в логе скрипт 1
Quote
20:42:14> BTCUSD: Sell 0.01119996 at 235.68777114
20:42:14> Stop group: "Скрипт 1"
20:43:14> BTCUSD: Sell 0.01119996 at 235.68777114
20:43:14> Stop group: "Скрипт 1"
20:44:14> BTCUSD: Sell 0.01119996 at 235.68777114
20:44:14> Stop group: "Скрипт 1"
20:45:14> BTCUSD: Sell 0.01119996 at 235.68777114
20:45:14> Stop group: "Скрипт 1"
20:46:14> BTCUSD: Sell 0.01119996 at 235.68777114
20:46:14> Stop group: "Скрипт 1"
как я думаю, после первой продажи он должен остановится т.к. баланс бтц становится =0 т.е выражение trader.get("Balance","BTC")>0.01 должно быть неверным, но скрипт каким то образом зацикливется и проходя проверку нулевого  баланса продолжает.

Помогает только ручной перезапуск. Кстате биржа BTC-e если это имеет значение.
newbie
Activity: 9
Merit: 0
это мое созданное событие "какой то там расчет" из скрипта 1 для переноса в скрипт 2
Ну сразу бы и сказали.Smiley А то думаю, может упустил чего в этой жизни... Smiley

Ну да ладно, по вопросу, начнем отсюда.
Вот тут:
Quote
16:31:54> BTCUSD: Sell 0.01169092 at 226.904808
баланс смотрели?
Хватает? И кстати, пара правильная выставлена?

при первой продаже баланс был, создал ордер на все т.е 0.01169092
баланс стал 0 ,потом скрипт постоянно повторяет продажу  при 0 балансе.

пары в скрипте не прописывал, использовал trader.get("Balance","BTC"),trader.get("Balance","USD")
legendary
Activity: 1287
Merit: 1094
обьясните мне
если я создаю правило вида

"Когда Последняя Цена = Точное значение тогда Продать 100% по Последняя Цена"

это будет работать как стоп лосс?
newbie
Activity: 25
Merit: 0
это мое созданное событие "какой то там расчет" из скрипта 1 для переноса в скрипт 2
Ну сразу бы и сказали.Smiley А то думаю, может упустил чего в этой жизни... Smiley

Ну да ладно, по вопросу, начнем отсюда.
Вот тут:
Quote
16:31:54> BTCUSD: Sell 0.01169092 at 226.904808
баланс смотрели?
Хватает? И кстати, пара правильная выставлена?
newbie
Activity: 9
Merit: 0
это мое созданное событие "какой то там расчет" из скрипта 1 для переноса в скрипт 2
newbie
Activity: 25
Merit: 0

странно, лови.

И где тут procsell?
Или это Ваше пользовательское событие? Тогда и его выкладывайте.
newbie
Activity: 9
Merit: 0
смотри раздел "Пользовательские индикаторы и события" внимательней.

Да уже несколько раз пересмотрел. Может у меня "раздел "Пользовательские индикаторы и события"" не такой? Smiley
Поиск "procsell" тоже ничего не находит. Undecided

Можете дать скрин или процитировать?

странно, лови.

Quote
Пользовательские индикаторы и события

В JL Script можно создавать как свои индикаторы так и события к ним.
Для этого используеться одна команда trader.sendEvent("имя",значение);
Так же команда может быть вызвана с помощью трех параметров trader.sendEvent("символ","имя",значение);
Вы можете придумать любое уникальное имя которое не совпадает с существующими именами индикаторов и отправлять значение всем группам скриптов.
Например, вы хотите создать индикатор вычисления среднего чесла последних цен спроса и предложения AskPrice и BidPrice.
Назовем индикатор "MidPrice". Транслировать событие этого индикатора будет выше указанная функция trader.sendEvent("MidPrice",значение);
Теперь нам надо вычислять значение среднего при каждом изменении цены спроса или предложения.

Создаем новую группу для скрипта и назовем его "Индикатор среднего числа".
И добавляем туда два события на изменение последних цен спроса и предложения.

Image

Теперь добавляем код который будет транслировать наше событие, вычисление которого будем делать в отдельной функции, назвоем ее "calculateMidPrice()".
Кодом который вычисляет среднее значение у нас будет "(trader.get("BidPrice")+trader.get("AskPrice"))/2".
Транслировать событие надо только если изменилось наше среднее значение, поэтому создаем переменную "lastMidPrice", в которой будем хранить последнее значение.

Code: Select all
var lastMidPrice=0;
calculateMidPrice(); // Вызываем функцию при старте, чтобы не дожидаться изменения индикаторов

function calculateMidPrice()
{
var midPrice=(trader.get("BidPrice")+trader.get("AskPrice"))/2;
if(midPrice==lastMidPrice)return; // Останавливаемся если значение не изменилось
lastMidPrice=midPrice; // Сохраняем последнее значение
trader.sendEvent("MidPrice",midPrice); // Транслируем наше событие
}

trader.on("BidPrice").changed()
{
calculateMidPrice();
}

trader.on("AskPrice").changed()
{
calculateMidPrice();
}


Image

Теперь проверим как работает наш индикатор. Создаем еще одну пустую группу скрипта под названием "Проверка".
Получать событие пользовательского индикатора так же просто как и с стандартными событиями.
Пишем тело события:

Code: Select all
trader.on("MidPrice").changed()
{

}


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

Code: Select all
trader.on("MidPrice").changed()
{
trader.log("Средняя цена изменилась:", value);
}


Запускаем обе группы скриптов и смотрим в лог.

Image

Наш индикатор работает, и его можно использовать в любом скрипте и в любом месте с помощью стандартного метода trader.get("MidPrice");
newbie
Activity: 25
Merit: 0
смотри раздел "Пользовательские индикаторы и события" внимательней.

Да уже несколько раз пересмотрел. Может у меня "раздел "Пользовательские индикаторы и события"" не такой? Smiley
Поиск "procsell" тоже ничего не находит. Undecided

Можете дать скрин или процитировать?
Pages:
Jump to: