Pages:
Author

Topic: Qt Bitcoin Trader [Open Source secure trading client for Mac/Windows/Linux] - page 18. (Read 383582 times)

hero member
Activity: 762
Merit: 500
tried install it on Debian VPS. but there error message
Code:
-bash: qmake: command not found

Installation

Windows: just download exe file and save it to safe place.

Install commands under Linux with Qt5 (Prefered):
Code:
sudo apt-get install g++ libssl-dev libglu1-mesa-dev qt5-qmake qtscript5-dev qtmultimedia5-dev
export QT_SELECT=5
qmake QtBitcoinTrader_Desktop.pro
make && make install && make clean
Code:
Cannot find file: QtBitcoinTrader_Desktop.pro.
sr. member
Activity: 407
Merit: 250
HI Ighor,

i use stamp. Thx for your reply

Have you plans to support Kraken?
legendary
Activity: 1034
Merit: 1065
Hi IGHOR,

i have made the update from 1.08. to 1.10.
until the 1.08 version you have made a very nice solution to avoid a big internet traffic when the orderbook tab/window was not open/active. Without the open tab QT was downloading only about 10Kb/s and was only downloading 150-200kb/s when the orderbook tab was open.
Now the new 1.10 version is downloading  150-200kb/s all the time even when the orderbook windows ist not open. This is really heavy when qt is running 24/7.
Is there a setting to change it back in qt?

Have you plans to support Kraken?

Thanks, I'll check it out and fix. What is your exchange?
For now you can go to settings and set longer request interval, so it will cause lower traffic.
Also orderbook traffic depends on visible row count. You can set up 5 and traffic will be low also.

tried install it on Debian VPS. but there error message
Code:
-bash: qmake: command not found
tried install it on Debian VPS. but there error message
Code:
-bash: qmake: command not found

Installation

Windows: just download exe file and save it to safe place.

Install commands under Linux with Qt5 (Prefered):
Code:
sudo apt-get install g++ libssl-dev libglu1-mesa-dev qt5-qmake qtscript5-dev qtmultimedia5-dev
export QT_SELECT=5
qmake QtBitcoinTrader_Desktop.pro
make && make install && make clean
sr. member
Activity: 407
Merit: 250
Hi IGHOR,

i have made the update from 1.08. to 1.10.
until the 1.08 version you have made a very nice solution to avoid a big internet traffic when the orderbook tab/window was not open/active. Without the open tab QT was downloading only about 10Kb/s and was only downloading 150-200kb/s when the orderbook tab was open.
Now the new 1.10 version is downloading  150-200kb/s all the time even when the orderbook window ist not open. This is really heavy when qt is running 24/7.
Is there a setting to change it back in qt?

Have you plans to support Kraken?
hero member
Activity: 762
Merit: 500
tried install it on Debian VPS. but there error message
Code:
-bash: qmake: command not found
legendary
Activity: 1034
Merit: 1065
How about Poloniex support for Monero (XMR) trading?

I can donate to make this happen.

I'll think about it.

Which software package did you use to code the software? I am seeing QT but which version? Any link? I would like to look at enhance the charts component and would like the same IDE as you. It isnt a VS project as Visual Studio doesnt recognize it. I tried QT 5.5 and its still not recognized as a QT project.

Thanks!

Qt 5.X.X supported

@ Ighor

Do all (or only some) of the programmatic commands query the application itself, or does it query the server directly?

For example, if I write trader.get("AskPrice")

Does this query the application internally that collects this information, or does this query go to the api and the server answers the request?

----------------------

The reason I ask is because I am trying to determine if by writing a heavy number of queries if I am accidentally hammering the server api (through my internet connection) or if I am just hammering the application with the information it has available on hand, to answer the requests?

I noticed that in one command (asksprice, volume) you state that the application has to have a certain number of available order book rows visible for it to work properly. But it is unclear if that is because the application itself is answering the queries with whatever information it has on hand

OR

If the application just has a quirk that needs a certain number of internal settings to assigns internal values and then hands off the queries to an external server api to get an answer.

I am trying to prevent hammering the BTC-e exchange with queries so I would like to know if the application acts like an aggregate of data. In so far as the application answers some of the queries itself and only a few specific commands are answered by the server itself.

Application send requests to exchange with fixed interval and store everything in RAM.
If you write trader.get("AskPrice") you just access variable in RAM.
There is no need to make loop and many of trader.get("AskPrice"), you should use trader.on.. events instead.
Only open/cancel orders cause more requests via Script.

Does the software offers the possibility of configuring a trading BOT? Are you guys using it to help with arbitrage trading? Is it safe to use?


Current version not supports arbitrage. It will com in future updates.

Hi guys,

i'm rather a newbie in JL scripting and i have the following question:

JL script offers me a function to get the BTC volume for the last 10 Minutes.

Code:
var tenMinVol = trader.get("10MinVolume")

My question is now, how can i implement this for 1, 3, 5, 15 Minutes and so on.
I can't see where I can get something like the last amount or something similiar.
Have I missed something?

My idea was to add last amount for a specific time, maybe with a timer and so I get the volume
of this specific time range.

Good idea or not?  Undecided
Any help is appreciated!

Greetz Aknot

PS: Sorry for my bad english, it's not my native language.  Embarrassed

This will be easy to do with upcoming update of JL Script.
You will able to use loop and query each historical trade to create own calculations.
legendary
Activity: 1890
Merit: 1003
Hi guys,

i'm rather a newbie in JL scripting and i have the following question:

JL script offers me a function to get the BTC volume for the last 10 Minutes.

Code:
var tenMinVol = trader.get("10MinVolume")

My question is now, how can i implement this for 1, 3, 5, 15 Minutes and so on.
I can't see where I can get something like the last amount or something similiar.
Have I missed something?

My idea was to add last amount for a specific time, maybe with a timer and so I get the volume
of this specific time range.

Good idea or not?  Undecided
Any help is appreciated!

Greetz Aknot

PS: Sorry for my bad english, it's not my native language.  Embarrassed
First, You might want to try getting the 10 minute volume at the start of the script within the first 60 seconds.
Then, with a 60 second timer deduct the next result from the previous result within the next minute.
Finally, write the returned value to a holding variable.


If you assign separate variables for each minute you should be able to get the true volume for any period of time that has passed.

(Might need to spend time writing out all the variables.)
newbie
Activity: 3
Merit: 0
Hi guys,

i'm rather a newbie in JL scripting and i have the following question:

JL script offers me a function to get the BTC volume for the last 10 Minutes.

Code:
var tenMinVol = trader.get("10MinVolume")

My question is now, how can i implement this for 1, 3, 5, 15 Minutes and so on.
I can't see where I can get something like the last amount or something similiar.
Have I missed something?

My idea was to add last amount for a specific time, maybe with a timer and so I get the volume
of this specific time range.

Good idea or not?  Undecided
Any help is appreciated!

Greetz Aknot

PS: Sorry for my bad english, it's not my native language.  Embarrassed
legendary
Activity: 1596
Merit: 1027
Does the software offers the possibility of configuring a trading BOT? Are you guys using it to help with arbitrage trading? Is it safe to use?
newbie
Activity: 3
Merit: 0
Hey there, I love this project so much. It's so well made and makes so much sense, thanks a million!

May I ask why Crypsty is not supported, it's such a major exchange. I've checked out your code and will begin to write my own Cryptsy support this weekend unless you have it on your roadmap Smiley

Which IDE did you use? Is the project easy to compile on Visual Studio or QT 5.5? Thanks a million!
hero member
Activity: 981
Merit: 500
DIV - Your "Virtual Life" Secured and Decentralize
Hello,
about 18 hours ago my UI for QtBitcoinTrader disappeared. The application did not crash. It is still running it appears in the background. It was showing for a moment when I turned on the TV (monitor replacement). As I have no crash log it likely wouldn't be helpful to you. So far this is unconfirmed. I was running two instances with separate API key pairs etc. Both user interfaces are gone but both processes keep running. I am using the command line to stop them but hoping I don't have to force them to close.

Running windows 7 64 bit. QtBTCT V. 1.1.
Another side issue. When I upgraded there was a crash. the crash happened on the version just before 1.1 as the bug fix release showed up after the restart. This crash was after a few hours of running and at least one restart. The problem is the crash killed my API key pair. I didn't lose any trading logic so its fine. Since BTCe replies with what the number is to sign the connection it should be possible to make the trader more crash tolerant. I remember the reasoning being that if someone did get on your API connection you would definitely know there was a problem. I have been thinking about it myself and it seems to me a feature request could be in order. The default behavior is nice. It is very exact and very easy to see. Possibly in the debug window or somewhere in settings add a button to correct to what the server lists for authorization. Making this manual would leave the very obvious notice to people something went wrong. They should check on their account etc. If nothing is awry though blowing out a profile to make the same profile with a different key pair seems wasteful to me. Even just being able to change the key pair without a new profile would be great.

Running Arch Linux Raspberry pi model B. QTBCT V1.1
After I upgraded the trader ran for 3 hours of so before it crashed or seemed to crash. When restarted the API was not working just like the windows machines I did the day before. The bug fix release is the only one I upgraded to.

So far this was a one time crash just after upgrading. I'm not sure of the cause. If it didn't take the API with it I likely wouldn't even mention it.

EDIT: taskkill /IM QtBitcoinTrader.exe did not in 15 minutes stop the application. taskkill /IM QtBitcoinTrader.exe /F did but when restarted I had no API. Is there a better way to close the application when the user interface goes absent without leave?

EDIT 2: On the raspberry pi running arch I only show version 1.1 on windows 7 I show version 1.10. 01. It seems I need to upgrade. I have tried compiling but so far I am not getting the newest code base it appears. I have fetched all and merged. I think its my checkout beta that is screwing things up. I am trying checkout 1.10.01. not sure it will fix it but here is hoping.

The raspberry pi setup wouldn't be so bad but everything is slow. Compile takes ~4 hours. Midori takes it seems like 30 minutes to sign in and navigate btce. Creating a profile is another minute with copying. Then comes the real trouble. I can't edit the ini file until the bot has run. This is a problem as it 1 defaults to USD/BTC and that ticker is very busy, 2 it has a request interval of 400 making it ask for data more often then it can even keep up with, and 3 the UI refresh is set to 100 making a lot of processing go into (I guess) redrawing the screen. None of these are issues on more full powered PC's These are all issues directly with the raspberry pi's limited processor. If the ini file populated completely before the first use of the trader I could change request timing to 1500 that keeps me unbanned with 3 bots running on 2 computers, the UI refresh to 750 making the screen update twice per new data, and I could manually start on the much less busy ticker I want to use anyway of NMC/BTC. I know the processor is too slow to keep up as with the defaults I was getting new trading data more then 5 minutes after I pulled the networking cable. This would show me that the computer can't keep up and has a backlog. It does keep up fine with my changes.

If I get updated to the current version I hope the main crashing issue will go away. I have make 8 API key pairs in 48 hours for the Raspberry pi. It would be nice to have a way to just change the key pair rather then building a whole new profile. Completely separate from the time delay because this computer is very slow I have a few difficulties keeping the new profile correct. 1 I need a current version of my script backed up somewhere, 2 I need to copy it from the back up into the new profile. Somehow I messed up #2. I  used a very old script that didn't work completely. Maybe more crashes because of this maybe not. This is my mistake. I did cause it. I wouldn't have had to keep track of the backup file as well if I had been able to either resync the API as the crash was the cause of the API issues or change the API key pair in the current profile.

I am not sure where to pull logs from on Arch Linux. I think the log location is set by the application. I am fairly new to arch. If I am right and I am using a very old code base it is unlikely to help you no matter what I did.

I would really like an easier way to update the API key pair and a way to manually force the bot to use the servers suggestion for the number that signs the request. These do not need to be automatic and shouldn't be automatic. A button or something in settings to change the API key pair would be good, a button to synchronize the API connection to the server would save me about 30 minutes per crash minimum. The time savings would be much greater as it takes about 1 minute to change the ticker then 2 or so to change the settings. Once done with that I have to hope restarting doesn't kill the API and force me to start over. For some hardware this would save maybe 2 minutes. Very handy but not a big issue. For the Raspberry pi the issue is pretty bad.

Edit 3: Most of the problems are caused by me. 1) I used apparently a non-existant branch. I'm sure it existed before but it doesn't now. Maybe it never existed at all. 2) I did not reference the correct project file. I apparently used QtBitcoinTrader.pro instead of QtBitcoinTrader_Desktop. I am sure it existed when I setup the script to automate this. After changing both parts I now have on my Raspberry Pi V1.10.01.

As far as the other issues I have a solution for them. It is blindingly simple and I wish I had thought of it sooner as it would have saved me a lot of time. Pull the network cable on the first run of the UI. No network data to pull, sort, display less processor usage dealing with it when I have to change the ticker or the request interval. Once the first part is done edit the .ini file for the UI so that the delay can be increased beyond 100 for the Raspberry pi.  It just is too fast. There is nothing wrong with it except on limited hardware. Once configured I have occasional spikes to 100% but mostly it isn't constantly that high. It does appear the graphs take a bit of CPU power even when not actively selected. This has moved up from 40% average to maybe 60%. It could average a bit higher but it isn't pinned with the request interval at 1500 and the UI at 750. Truthfully at least on this hardware the 750 seems more fluid then the 100 for the UI. 
hero member
Activity: 1151
Merit: 528
Hey there, I love this project so much. It's so well made and makes so much sense, thanks a million!

May I ask why Crypsty is not supported, it's such a major exchange. I've checked out your code and will begin to write my own Cryptsy support this weekend unless you have it on your roadmap Smiley
legendary
Activity: 1890
Merit: 1003
@ Ighor

Do all (or only some) of the programmatic commands query the application itself, or does it query the server directly?

For example, if I write trader.get("AskPrice")

Does this query the application internally that collects this information, or does this query go to the api and the server answers the request?

----------------------

The reason I ask is because I am trying to determine if by writing a heavy number of queries if I am accidentally hammering the server api (through my internet connection) or if I am just hammering the application with the information it has available on hand, to answer the requests?

I noticed that in one command (asksprice, volume) you state that the application has to have a certain number of available order book rows visible for it to work properly. But it is unclear if that is because the application itself is answering the queries with whatever information it has on hand

OR

If the application just has a quirk that needs a certain number of internal settings to assigns internal values and then hands off the queries to an external server api to get an answer.

I am trying to prevent hammering the BTC-e exchange with queries so I would like to know if the application acts like an aggregate of data. In so far as the application answers some of the queries itself and only a few specific commands are answered by the server itself.
newbie
Activity: 3
Merit: 0
Which software package did you use to code the software? I am seeing QT but which version? Any link? I would like to look at enhance the charts component and would like the same IDE as you. It isnt a VS project as Visual Studio doesnt recognize it. I tried QT 5.5 and its still not recognized as a QT project.

Thanks!
hero member
Activity: 714
Merit: 504
How about Poloniex support for Monero (XMR) trading?

I can donate to make this happen.
legendary
Activity: 1034
Merit: 1065
Another set of feature requests:

At the moment, when your application processes values within a script, it will turn any math resulting in a negative number into a "0".

For example, if you are trying to calculate a percentage, you have to force the value to turn into a positive number in order to see it in the console. Otherwise, it always becomes a "0".

It console bug. Thanks I'll fix it.
Temporary solution - convert numbers to string using javascript.
legendary
Activity: 1890
Merit: 1003
Another set of feature requests:

At the moment, when your application processes values within a script, it will turn any math resulting in a negative number into a "0".

For example, if you are trying to calculate a percentage, you have to force the value to turn into a positive number in order to see it in the console. Otherwise, it always becomes a "0".
legendary
Activity: 1034
Merit: 1065
Nice idea. I'll add it to my list of features todo
Enumerate own orders, orderbook and trade history is coming in next updates.
Also tracking exact order state and cancel by id.
About recent price value, this is bug and will be fixed soon.


The next feature request:

A minor request of two different things.

I see there is a way to confirm an action as a form of protection.

------------------------------------

Request 1:

A tick box (or password feature) which disables the application interface while it is open. (Specifically the buy and sell boxes)

Why?
After writing a few programs I like to watch the console for certain indicators I have programmed, but sometimes I have fallen asleep nearby and our cat/dog/baby will crawl over the keyboard. So out of a force of habit I minimize the screen to prevent accidental interaction.

------------------------------------
Request 2:

The unavoidable accident. Since I haven't tested it, I don't know if it is a problem or not.

I noticed in the prior version that the values in the buy and sell interface would always default to the most recent price activity. But now, disturbingly, they are set to 0.000.

While I am not brave enough to try and see if I can buy or sell my coins/fiat at 0.000. I think this recent application behavior could cause some problems.
legendary
Activity: 1890
Merit: 1003
The next feature request:

A minor request of two different things.

I see there is a way to confirm an action as a form of protection.

------------------------------------

Request 1:

A tick box (or password feature) which disables the application interface while it is open. (Specifically the buy and sell boxes)

Why?
After writing a few programs I like to watch the console for certain indicators I have programmed, but sometimes I have fallen asleep nearby and our cat/dog/baby will crawl over the keyboard. So out of a force of habit I minimize the screen to prevent accidental interaction.

------------------------------------
Request 2:

The unavoidable accident. Since I haven't tested it, I don't know if it is a problem or not.

I noticed in the prior version that the values in the buy and sell interface would always default to the most recent price activity. But now, disturbingly, they are set to 0.000.

While I am not brave enough to try and see if I can buy or sell my coins/fiat at 0.000. I think this recent application behavior could cause some problems.
legendary
Activity: 1890
Merit: 1003
Thanks for the fix,

I have a couple of ideas on feature requests, both big and small, important and minor.

-----------------------------------

One of thee most important feature requests is:

The ability to enumerate your open bids and/or asks.
At this time, if I ask the server/application how many bids are open, it only gives me a "Count" of open orders.

This means unless you know the original balance at the start, it is pretty much impossible to know how many Asks you have open nor their quantity per slot.

-----------------------------------

For example, if I ask, how many Asks do I have open.

The program only responds "3".

There is seemingly no way to enumerate their details, for example,

When were they were initiated? trader.get(AsksTime,"Slot1")

At what price (for re-positioning Asks) trader.get(AsksPrice,"Slot1")

How much does each slot have? trader.get(AsksAmount,"Slot1") or trader.get(AsksTotal) or trader.get(AsksTotal,"Slot1")

--------------------------------------

All of these things could be gathered from the UserInterface but not programatically.

Pages:
Jump to: