I think he wanted to say that he is affected of this, but used the wrong translations of the german word. I'm not sure about the rest of the sentence, but if you don't like errors, why did you use the beta and not just the stable version? Beta version can always have bugs. you can't blame the dev for it as it should be obvious that something like this can happen. 1. yes that meaning 2. I have installed the beta because of a necessary reboot, CAT had to be closed and it requires consistently hours to get CAT working as is was before the reboot, - therefore restart of CAT shall be done (for me) so infrequently as possible. And because it was time to restart the PC I took the new beta. But you have a point there: in future I will never take beta. Learning from this mistake Error could also occurs in official version. Even best software with thousand of programmers have bug/errors. Mine is not a bug is only a regression problem with an xml file from a previous version. That is very different from a bug. CAT works well even without fix if you use directly the 4.7 version. But i think the solution i wrote you is very fast (edit the xml file) so you won't loose much time
|
|
|
My respect to Sampey, he managed to cover 18 (20 soon) different markets, we are not that advanced, we currently have only 5 and various little differences between them is already a significant headache.
Thank you so much man Real Api Number is 24 18 In current Version 2 (Bitex/Liqui) in the coming version 3 Dismissed due to Exchange Close (Cryptsy/Cryptomic/RawX) 1 Never Go Live due to Exchange Scam (Mintpal) Don't forget that the trick to interface so many exchanges is that you must create a layer MAIN PROGRAM <-> API LAYER -> External Api Sistem When MAIN PROGRAM doesn't know anything about the API LAYER. Nothing in specific. Only the Interface the API Layer must respect. Then you will be able to write the API LAYER For any exchange without many difficulties.
|
|
|
And maybe I pushed the discussion to the wrong side: the client-side.
But my discussion was on Client HTTP <-> API layer. So we lost time all of us. Good
|
|
|
I think i have the DEFINITIVE Reponse. I remember about http return codes. When CALL Is Synchronous you get HTTP 200 When CALL Is Asynchronous you get HTTP 202 (because it only means accept) https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlAs i remember i never seen something different than HTTP 200 after the REST Connection
|
|
|
Of course, this is async at APPLICATION LEVEL. This is an high level library but i can also write that function by mystelf - Prepare Call --------- NEw Thread(PerformCall -> Give the Reponse to Method X) - Continue with main flow I use java futures for dedicated process like monitoring or checking running algorithms. But if we look into NEw Thread(PerformCall -> Give the Reponse to Method X) we will discover that a Sync call is happening :-) It's invisible to you, but technically is a Sync call. There's a lot of mysunderstanding about the concept of Sync/Async because many time it depends by the level of the view. The code you post is surely async but the real http call will be performed in sync way. A REAL async http Call is this : As you can see 1-2 is the SEND Routine (that can be completed with a 200 http OK Code) Then 3-4 is the real async response, where you set a service for the response.
|
|
|
For example, you can send a new order request and at the same time, without waiting for a reply to this request
Yeah this is multithreading. You didn't explain me how did you get the response result from the server. I'm interested in. Then i will use your response to demostrate you that HTTP <-> API will remain sync
|
|
|
The same point I didn't get: How did he know, if bter is internally working async or sync. This is not visible to a client. And I don't care how they work internaly, as long as they are fast and reliable. You already said it... If bter accepts a request with a higher nonce before a lower nonce . something ist not working as it should in my opinion.
No Misunderstanding from my point of view. Because i'm not talking about internal exchange code or internal client code. I'm talking about (since the beginning) of CLIENT CALL HTTP <-> APISYSTEM. CLIENT CALL HTTP = A Class inside your Client, that will send the Data over the net using http/tcpip protocol. The async call you are talking about are async not at HTTP Level but at Application Level. There's nothing to misunderstand. In all the examples you wrote, CALLS Are sync. You can have CLIENT <- ASYNC -> DELEGATE HTTP CALL <- SYNCH -> API SYSTEM <- ASYNC -> INTERNAL API ROUTINE The red part will be always sync. Do you know how to make this call DELEGATE HTTP CALL <- SYNCH -> API SYSTEM <- ASYNC async? You need to open a service on your machine and let the Exchange reply on that service. But it doesn't works this way, so to get data from exchange you must use HTTP REST SYNC CALL. It means CLIENT -> HTTP CALL -> ASYNC -> API SYSTEM -> RESPONSE ON CLIENT ADDRESS:PORT SERVICE This is async. When you'll find a system that works this way, we will talk about async call. It's very funny we are technicall talks about sync/async call in a topic called Do you use a bot for trading?
|
|
|
The only thing "deisik" wanted to clarify, is that RESTful endpoints are not synchronous by definition, as you said in one of your posts. You are using them in a synchronous way, and thats okay. no problem with that.
Well deisik tells a little more than this Of course Rest by definition could be sync or async. all my comments are about Bot Api Integration. You can perform tasks in many way, but good programming practise makes you decide about what to use. And when you need to get the result to continue your work sync is the obvious way. I Can also create a thread and monitorize it while it's running (performing the aPI call), but it doesn't make sense. I have a lot of thread in my bot, but they NEED to exists.
|
|
|
the way I do it: Sending a request to the exchange and async subscribing to the response.
BUT this is sync, your subscribing class use a sync call. Is the way you perform the call from Main System -> Subscriber that will have async result. Your subscriber -> API is sync. It seems async for you because the Main program could continue works. But if we are talking about that, my system if completedly Async My focus was only on HTTP CALL -> API System interface. Question : if you delegate the response management to a subscribe what your programs will do while is waiting for the response? Is your bot somewhere on this board? Can i take a look?
|
|
|
BUT, i'm pretty sure you can agree with me that if you write a Trading BOT, you will use REST API Sync CALL. No, definitely not... I hate blocking threads and waiting 2 seconds for a response from the exchange ... sure, I need the result of my request at some point, but not in a sync So you create order without get the OrderID, or you cancel orders without wait for return code. What kind of bot did you deploy?
|
|
|
the REST services should necessarily be synchronous
Never say that. I'm talking about a BOT Context. Not about the world of the REST api Call. If you read my previous reply i develop by myself in async context. BUT if we talk about BOT, async response is not useful, i need to get data, i can't continue my work without getting the resul : Just an example - If i want to delete an order i must wait for the OK response, because if response is KO i need to find for the trade that fills the order - I want to have best market prices, i need to call MarketOrders and then get the 2 TOP elements - I want to create an orders, i need to wait for return code OK and read market ID Any Calls my bot use need the response. BUT if you wants to use the MARKET EXPLORER function (that ONLY loads order/trades/myOrder/Mytrader) after you press the LOAD Button, then a dedicated thread will start to popolate the table while you can change screen and continue your work. This is async BUT, not at API level, because i will perform 4 Sync Call to collect data and then i will show results in 4 tables. So workflow is UPDATE BUTTON PRESS -> ASYNC THREAD -> 4 SYNC API CALL -> POPULATE TABLES with REsponses.
|
|
|
YEah i know about that, and i've also develop async call, but not in Bot environment. I create async call with dedicated thread to wait result and send it back to the main sistem, or async call where next computation part is demanded to another thread on another system and client doesn't know nothing about result. BUT, i'm pretty sure you can agree with me that if you write a Trading BOT, you will use REST API Sync CALL.
|
|
|
the way you manage the API Call inside your Client it's up to you, but the HTTP CALL from your Client to API System in a REST environment is Sync.
A RESTful endpoint can be either synchronous or asynchronous. As the C.A.T. bot is implemented in Java, you might have a look into JAX-RS 2 specification. Yes of course, never Said that you can't perform an async call. BUT when you need the result to continue your computation you must perform a Sync call. For example, my bot is 100% sync, but i'm pretty sure 99% of Bots are sync About JAX-RS 2 i just use JAVA.NET i don't need nothing more to make POST/GET REST CALL.
|
|
|
Well i really start thinking that it's not possible to talk with you : HTTP LIBRARY is a CLIENT environment library to perform HTTP CALL. OK? A Library on CLIENT SIDE that will makes you perform HTTP CALLS using REST API I use java, so for example : this is a HTTP Library : http://hc.apache.org/httpclient-3.x/this is another java http library https://docs.oracle.com/javase/7/docs/api/java/net/package-summary.htmlOk? This is a code example : And here you can find some java code example if you wants to learn something useful https://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/ As I already told you, if you send two authenticated requests to this exchange, your last request (by timestamp) can be be processed first. This doesn't work with other exchange but it works with Bter. Instead of arguing, you'd better really try it out This has nothing to do with async or sync call. I Can create 10 sync call that starts at the same exact moment. There's only 1 problem : you must set a NONCE. Do you know what is a NONCE, i'm sure yes, you're an expert NONCE is created to discard eventually http call with a nonce lower than the last use. So in your example if i send First CALL 1 And Then CALL 2 BUT for any reason CALL 2 arrives to API System before CALL 1, then CALL 1 will be discarded. If bter doesn't do that (Standing at what you said) there are 2 reason : 1 - It's bad written 2 - You're not using the BTER REST Api system May exchanges offers different API System OkCoin for example offers 3 API System https://www.okcoin.com/about/rest_api.doWell the next will be my last post. Choose the last things to say, i will make only 1 last reply, i'm not here to loose time, and i'm not here to make me troll without any specific reason.
|
|
|
I've been in the business for more than 25 years (really)
I Can imagine
|
|
|
Now tell me more mate. You said something about REST being synchronous if I remember correctly, right?
I confirm (and any programmer that had interfaced any API exchange could confirm) that Any Api Call is Synch. The way you manage the API Call inside your Client it's up to you, but the HTTP CALL from your Client to API System in a REST environment is Sync. I need to repeate once more or you have understand?
|
|
|
~snipped~
I need to continue?
I don't care about anything you just said You may tell it someone else but please don't tell me, this has absolutely no effect on me. After all, this is not a pissing contest. I've been in the business for more than 25 years (really), but I'm not going to talk about that since if you tell bullshit, this will remain bullshit, no matter what. I think you were just using some standard routine and did actually try to work with this exchange in an asynchronous mode. Asynchronous mode means that you don't need to wait for a result after sending an authenticated request, i.e. you can send requests and process the results asynchronously, in different threads without synchronizing the threads This is asynch on YOUR CLIENT SIDE because you launch the API Call inside a Thread. But it's not asynch at HTTP CALL Library level. Of course i can do this CLIENT Main Program <-> CLIENT Thread with Api Call -> REST SYNC POST (Wait For Response) Main program will have control again after the thread launch. But this workflow Thread with Api Call -> REST SYNC POST still remain Synch. Please stop trolling man, that doesn't works with me.
|
|
|
Why do you show me quotes from Bter api guide? I've been trading there myself using their api and know how it works. In fact, now you only confirm that either didn't really try their api or just thinking things up. You can send authenticated requests to this exchange without waiting for a reply and you get all requests processed. The same will result in an error condition on other exchanges. Just REALLY try that and see for yourself
And now tell me how REST is necessarily synchronous Man.....i'm Selling BTER API ok? I've customers that trade on BTER. I really don't understand how you're not able to verify i'm a long time legit developer with big experience in api interfaces. What do you need to check? Official topic is not enough? https://bitcointalk.org/index.php?topic=507103.0My Feedbacks Are not Enough? My 200+ Positive Feedbacks are not Enough? https://bitcointalk.org/index.php?action=trust;u=130152Or official exchange annocements : https://blog.cex.io/news/cex-io-bitcoin-integrates-bot-15179https://medium.com/the-rock-trading/c-a-t-now-available-for-trts-customers-f54139744f48#.o03cq2kxjhttps://www.facebook.com/ccexcom/posts/1713206285561221Or i need to tell you the exchanges admin who directly works with me? Starting from Tristan From Poloniex when Poloniex was a 50BTC/volume day exchange..... I need to continue? Now the question is for you : If you make a asynch call to CREATE ORDER how did you get back the ORDER ID? That is the result of a successful CREATE ORDER Call? Tell me the way you make a Bot using async call If you find a method it's good for you, but you probably add complexity to your software. I've never used an async call, because i need to wait for any response, obviously, if i'm asking for something i need the result to continue, so i need to wait, so we are talking about sync call.
|
|
|
Well i've written 18 and 2 will be added to the next release, for a total of 20. And yes, i've interfaced Bter. https://bter.com/apiAnd they are REST synchronous, obviously. It was one of the first exchanges in interface Tell me everything you need. I can teach you a lot about bot worlds and API interfaces You must be kidding mate You don't need to teach me anything since I know what I say from first-hand experience (a big wink here). And I'm very very doubtful now about your true knowledge and understanding since Bter authenticated calls are truly asynchronous unlike any other exchange api that I've seen. You don't need to prove me anything since I've been there myself and seen that with my own eyes. Other than that, I can't possibly see how REST should necessarily be synchronous (unless you mean something very different from what I said earlier about synchronous/asynchronous api's) Man, all REST Api Are synchronous , on ANY EXchange, and of course this Bter Private CALL is Sync Place order API
API URL: https://bter.com/api/1/private/placeorder
Parameter submission method: POST Do you know the difference between sync and asynch? A Bot must ASK and Manage Request <-> Response. From The Http Call (Request) and The API Result (Result) there's a waiting time. It's synch. Don't troll me please
|
|
|
nice. i saw this past months but never really got into it. if i just want to buy an api for polo, that means all i'm just going to pay is 0.15 btc? can you tell us the success rate of the API? has someone already request an api for liqui? there are coins that are only listed there such as GNT which i'm particularly interested. Yeah, how do you know that https://twitter.com/Liqui_Exchange/status/823307073916116993
|
|
|
|