Jump to content
July Ighor

Qt Bitcoin Trader - Клиент для безопасных торгов на известных биржах

Recommended Posts

13 минут назад, July Ighor сказал:

Как я уже сказал, чтобы данные могли обновиться следует никогда не блокировать скрипт циклами (либо выходить иногда из них).
При получении данных из биржы обновляются и все системные индикаторы trader.get, но только в том случае если вы не блокируете поток в скрипте.
А если блокируете, то данные обновятся как только вы его освободите.
 

Как видно из вышеприведенного кода, в скрипте нет ни одного цикла. Может быть я не совсем понял - что вы имеете ввиду "в том случае если вы не блокируете поток в скрипте" ?  Циклы не применяются, но переменные инициализируются уже после того, как функция вернула пустой результат.

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

Share this post


Link to post
Share on other sites
12 минут назад, nlogo сказал:

Как видно из вышеприведенного кода, в скрипте нет ни одного цикла. Может быть я не совсем понял - что вы имеете ввиду "в том случае если вы не блокируете поток в скрипте" ?  Циклы не применяются, но переменные инициализируются уже после того, как функция вернула пустой результат.

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


Я лишь ответил на вопрос, если так не работает значит либо у вас текущая пара не BTC/USD (так как достаются данные только текущей пары) либо баг.
Если баг то исправим. Скажите а когда используете ивент LastMyBuyPrice а не функции get, то приходят значения?

Share this post


Link to post
Share on other sites
3 минуты назад, July Ighor сказал:


Я лишь ответил на вопрос, если так не работает значит либо у вас текущая пара не BTC/USD (так как достаются данные только текущей пары) либо баг.
Если баг то исправим. Скажите а когда используете ивент LastMyBuyPrice а не функции get, то приходят значения?

Вот вывод скрипта:
 

21:07:17> BTC/USD: Buy 0.0000425 at 4704.85
21:07:17> balUsd_2= , boughtBtcFinal= 
21:07:17> bought 0.0000425 BTC, price= 
21:07:17> ggg= nan
21:07:24> GetBtcBalance() boughtFor= 4704.85 , boughtBtcFinal= 0.00018
21:07:24> GetUsdBalance() balUsd_2= 32.47364242 , boughtFor= 4704.85

и "price= "  и "boughtFor= 4704.85"  получаются из запроса

boughtFor = trader.get("LastMyBuyPrice");

(  trader.log("bought ", lacksBtc, " BTC, price=", boughtFor);    trader.log("GetBtcBalance()    boughtFor=",boughtFor,", boughtBtcFinal=",boughtBtcFinal);  )

 

соответственно пока отрабатывала функция - значение не успело прийти, а потом вывелись результаты работы вызовов этих 2х дополнительных функций с делеем и там уже результат есть   boughtFor= 4704.85

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

Share this post


Link to post
Share on other sites
34 минуты назад, nlogo сказал:

Вот вывод скрипта:
 

21:07:17> BTC/USD: Buy 0.0000425 at 4704.85
21:07:17> balUsd_2= , boughtBtcFinal= 
21:07:17> bought 0.0000425 BTC, price= 
21:07:17> ggg= nan
21:07:24> GetBtcBalance() boughtFor= 4704.85 , boughtBtcFinal= 0.00018
21:07:24> GetUsdBalance() balUsd_2= 32.47364242 , boughtFor= 4704.85

и "price= "  и "boughtFor= 4704.85"  получаются из запроса

boughtFor = trader.get("LastMyBuyPrice");

(  trader.log("bought ", lacksBtc, " BTC, price=", boughtFor);    trader.log("GetBtcBalance()    boughtFor=",boughtFor,", boughtBtcFinal=",boughtBtcFinal);  )

 

соответственно пока отрабатывала функция - значение не успело прийти, а потом вывелись результаты работы вызовов этих 2х дополнительных функций с делеем и там уже результат есть   boughtFor= 4704.85

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


Возможно там баг и вы можете помочь быстрее исправить.

Добавьте пожалуйста этот код и скажите получаете ли вывод.

trader.on("LastMyBuyPrice").changed()
{

trader.log("test", symbol, name, value);
}
Так же скажите меняется ли значение двух индикаторов в панельке истории своих транзакций во время выполнения скрипта?
Попробуйте использовать trader.get("BTCUSD", "LastMyBuyPrice");

Edited by July Ighor

Share this post


Link to post
Share on other sites
8 минут назад, July Ighor сказал:


Возможно там баг и вы можете помочь быстрее исправить.

Добавьте пожалуйста этот код и скажите получаете ли вывод.

trader.on("LastMyBuyPrice").changed()
{

trader.log("test", symbol, name, value);
}
Так же скажите меняется ли значение двух индикаторов в панельке истории своих транзакций во время выполнения скрипта?
Попробуйте использовать trader.get("BTCUSD", "LastMyBuyPrice"); 

сделал

вот вывод:

23:10:41> ----------------- QTBuy -----------------------
23:10:41> BTC/USD: Buy 0.00004216 at 4749.18
23:10:41> balUsd_2= , boughtBtcFinal= 
23:10:41> bought 0.00004216 BTC, boughtFor= 
23:10:41> ggg= nan
23:10:42> test BTC/USD LastMyBuyPrice 4740.73
23:10:48> GetBtcBalance() boughtFor= 0 , boughtBtcFinal= 0.00022
23:10:48> GetUsdBalance() balUsd_2= 5532.28363396 , boughtFor= 0

скрипт был таким:

var ggg;
ggg = QTBuy(0.2);
trader.log("ggg=", ggg);

function QTBuy(buyUsdtValue){
    trader.log("----------------- QTBuy -----------------------");
    var balUsd_1;
    var balUsd_2;
    var balBtc;
    var askVolumePrice;
    var boughtFor;
    var lacksUsd;
    var lacksBtc;
    var nowPrice;
    var boughtBtcFinal;

    balBtc  = trader.get("Balance","BTC") ;  

//    trader.delay(5,"myDelay()");

        balUsd_1  = trader.get("Balance","USD") ;

            lacksUsd = buyUsdtValue;// вычислим сколько осталось еще потратить до нужной суммы
            nowPrice = trader.get("AskPrice");
                trader.delay(5,"myDelay()");
            lacksBtc = lacksUsd / nowPrice; // приблизительный объем покупки
            askVolumePrice = trader.get("AsksPrice",lacksBtc);  // AsksPrice показывет цену напротив суммарного объема битков
                trader.delay(5,"myDelay()");
            trader.buy("BTC/USD" , lacksBtc , (8+askVolumePrice)); 


    trader.on("LastMyBuyPrice").changed()
    {
        trader.log("test", symbol, name, value);
    }

                trader.delay(5,"myDelay()");
                trader.delay(7,"GetUsdBalance()");
                trader.delay(7,"GetBtcBalance()");

            if(balUsd_2 == balUsd_1 || boughtBtcFinal == balBtc) {
                trader.cancelBids();
                trader.delay(5,"myDelay()");
                trader.delay(7,"GetUsdBalance()");
                trader.delay(7,"GetBtcBalance()");
            }


              trader.log("balUsd_2=",balUsd_2,", boughtBtcFinal=",boughtBtcFinal);
              trader.log("bought ", lacksBtc, " BTC, boughtFor=", boughtFor);




    boughtBtcFinal  = boughtBtcFinal - balBtc;

    return ( MyRoundTo8(boughtBtcFinal) );
}

//--------------------------------------------
function GetBtcBalance(){
    boughtFor = trader.get("BTCUSD", "LastMyBuyPrice");  
    boughtBtcFinal  = trader.get("Balance","BTC") ;
    trader.log("GetBtcBalance()    boughtFor=",boughtFor,", boughtBtcFinal=",boughtBtcFinal);

}

//--------------------------------------------
function GetUsdBalance(){
    boughtFor = trader.get("BTCUSD", "LastMyBuyPrice");  
    balUsd_2  = trader.get("Balance","USD") ;
    trader.log("GetUsdBalance()  balUsd_2=",balUsd_2,", boughtFor=",boughtFor);
}

//--------------------------------------------

function MyRoundTo2(MyValue){    
    var result = Math.round(MyValue * 100) / 100;
    return result;
}
//--------------------------------------------

function MyRoundTo8(MyValue){    
    var result = Math.round(MyValue * 100000000) / 100000000;
    return result;
}

в "истории моих сделок" окошко цены показало правильную цену покупки...

Биржа HitBTC

Только что, nlogo сказал:

меняется ли значение двух индикаторов в панельке истории своих транзакций

в "истории моих сделок" окошко цены показало правильную цену покупки...    -  если вы это имели ввиду

Share this post


Link to post
Share on other sites
7 часов назад, nlogo сказал:

boughtFor = trader.get("BTCUSD", "LastMyBuyPrice");

как видно тут стали почему то выводится нули (когда выводится).... 

 

Edited by nlogo

Share this post


Link to post
Share on other sites

@nlogo все еще изучаю проблему, а пока

 

Вышел апдейт Qt Bitcoin Trader v1.40.41

 

Исправлен баг в интеграции Bitstamp API
Исправлен критический баг в диалоге правил, которые не работали при использовании комиссии в цене
Исправлен баг синхронизации времени
Исправлен ордербук в Binance
Удалена биржа Wex
Добавлена настройка альтернативного домена для Yobit
Исправлен визуальный баг мерцания панелек
Много мелких фиксов

Share this post


Link to post
Share on other sites

прочитал стартовый пост, не нашёл главной инфы: 1) сколько стоит? 2) какой оф. сайт программы? очень странно, выложены только ссылки на исходники проги на файлообменниках, первый раз такое вижу  Оо

Share this post


Link to post
Share on other sites
3 минуты назад, golova сказал:

прочитал стартовый пост, не нашёл главной инфы: 1) сколько стоит? 2) какой оф. сайт программы? очень странно, выложены только ссылки на исходники проги на файлообменниках, первый раз такое вижу  Оо

 

Программа бесплатная. Разработка велась за счет средств от поддерживаемых бирж, а теперь разработка ведется за счет проекта https://qttrader.com

Официальный сайт https://centrabit.com

Share this post


Link to post
Share on other sites

добрый день. стоп-лосс и тейк я так понимаю нет возможности одновременно выставить?

Share this post


Link to post
Share on other sites

Добрый день! Программа работает с маржой на битфайнексе? Также, можно при покупке или продаже по рынку, что бы система автоматически выставляла стоп и тейк профит по заранее установленному %?

Share this post


Link to post
Share on other sites
18.04.2019 в 19:40, lovecreep сказал:

добрый день. стоп-лосс и тейк я так понимаю нет возможности одновременно выставить?

 

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

 

44 минуты назад, CrimSonMAN сказал:

Добрый день! Программа работает с маржой на битфайнексе? Также, можно при покупке или продаже по рынку, что бы система автоматически выставляла стоп и тейк профит по заранее установленному %?

 

Работает, маржа отображается как отдельные пары. Вы можете скриптом анализировать изменения цен и решать когда открывать и закрывать ордера, делая сравнения с сохраненными данными в %.

Share this post


Link to post
Share on other sites

Правильно ли я понял, что использование правил с различными крипто парами невозможно без ручного переключения окошек и выбора этих самых пар?

Share this post


Link to post
Share on other sites
16 минут назад, OlegF123 сказал:

Правильно ли я понял, что использование правил с различными крипто парами невозможно без ручного переключения окошек и выбора этих самых пар?

 

Да, из-за ограничения количества запросов биржами, можно работать только с одной парой.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...