New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Has anyone ever live traded with ccxt.pro? #190
Comments
haven't tried |
Ok Thank for answering |
I've been working on the integration using Binance and BitMEX. There's still some things to work out with it. Which exchange are you guys looking to trade on? |
I am still far from real trading ... |
I will be doing live trading on binance and binance futures this week. Then I plan to start trading at FTX (because FTX offers Subaccount very well and Fix engine too(I heard they have institutional graded fix engine)). And I'm reviewing what you're doing on Binance and BitMEX. Is there anything I can do to help? May be do live trading and give feedback with PR? |
You will get there soon |
@ian-wazowski Some help would be much appreciated. Right now I'm just reworking some things with handling identifiers, going forward we'll have to integrate each exchange individually as the features of this platform are too advanced to be satisfied with the CCXT Pro unified API - that library can still be used though, as one has the option of passing custom arguments, and responses always contain the original API response in the So basically the unified API will allow access of live and historical market data and probably order books for the 27 exchanges they currently show implemented. For live trading on the unified API probably only MARKET and LIMIT orders with delayed fill reporting (not aggregated, only on fully filled) will be possible. Individual APIs will be fully integrated with all order types and features, and I'm starting with Binance (largest spot volume) and BitMEX (largest derivative volumes). I'll add an explanation for this in the README with a table showing the exchanges where we support advanced features, and the integration status. Give me a few days to do some refactoring and I'll let you know how you could help. Have you integrated a FIX engine before? I have experience with FXCM and LMAX FIX4.4 for FX - they're not so easy to get right, the tag use can often be really different between providers - but it is very fast. Cheers! |
Just to be clear, CCXT Pro will still be used for these initial integrations. I just have to do some refactoring to cleanly separate the fully implemented exchanges from the |
I've reconsidered this. I think it's too unsafe to allow people to trade through the unified API, we wouldn't be able to guarantee the behavior and there would be a lot of buggy issues. So the unified API will probably just be for market data including the order book via For live execution the aim will be to do one good solid integration at a time. Right now I'll use the CCXT WebSockets under the hood, but this will be swappable. I sorted a lot of issues with Binance today and that seemed to be running well although more testing is needed before I'd call it stable. Implemented were Amongst other things I'll get BitMEX going again tomorrow. |
Thank you for the thoughtful answer. Really.
I have never integrated fix as main role before, but I have experience integrating 60+ exchanges and 3 brokerages (including spot/derivatives/stock/commodites) for market making and StatArb. Ok, then I will look for other ways to improve the project until the integration is complete. |
That's some great experience! Actually it would be good if you could test out some live trading on Binance, if you wanted to. I've been using a very small account for it (a few hundred USD worth) and using minimum order values. Or if performance profiling is your thing I've been doing some analysis into the performance of the system, as found in the performance tests. I think there's a bottleneck between a trader calling It doesn't have anything to do with object creation as all of that is super low, 0.4μs to make a Using a Cythonized strategy reduces that by around 400μs, but there must be something else getting in the way as I would expect and target 500μs or much less. I'm not expecting to find it in calls to I'll report back my findings. |
it looks like DNS delay, I came across this at the time when I wrote a high-load on Perl %) https://github.com/jayvdb/dns-cache
further optimization at the level of setup Linux (TCP/IP keep-alive timeouts etc) and recompile the kernel |
I didn't quite translate it correctly... in general DNS Cache will also not hurt)) |
It'll be valuable to look into performant networking some more, however for clarity, the This is because there's another task listening for order events, and even though the event loop is based on cooperative multi-tasking, we want to ensure that the |
i hear what HFT use LMAX disruptor cython code: |
That look really interesting. I'm aware of the disruptor pattern, its very elegant. I'm going to find the exact source of the bottleneck first as it may be something really simple. Right now I'm back on integrations. I'm starting to consider writing a networking module for async REST and websockets to get off CCXT. It could take a while though thats all. |
One thing I did recently was make sure the Before that I had re-implemented So it is possible to do multi-threaded "parallel" programming with python although is faux threading because its actually a whole separate process. Later I'll be adding some sinks for Logstash -> ELK and Prometheus so piping things out to those reporting processes will be a good idea. |
@ian-wazowski hold off on the live testing for the moment. I'm making some big changes. I'm removing the redundant This will be more efficient as it avoids some object creations and message passing, and also simplifies the state space for orders. Thoughts guys? |
It's easier to turn off all DNS settings to get the most out of your network performance. We do not need DNS because exchanges and brokerage endpoint is static(when this has to be changed they will notify us.) and once set, it seldom changes.(by this we can reduce extra 10~15% network latency(centos7 64bits, latest kernel)) |
Agreed, It seems to be an efficient choice from an micro-optimization point of view and DDD point of view. If there is it( |
ELK or fluentd is good option but how about this ? vector. |
Good, Thanks! |
it will work if the exchange or broker provides you with such an API for a certain volume, Binance has such an option standard, public Binance API will not work by IP, because there is a balancer and also need to encrypt traffic via https |
This looks great. Big plus it's written in Rust too. I'll have to do some research and have a discussion when that stage comes up. |
Ok close this issue. |
I'm looking at the ccxt.pro source code, but I'm not 100% sure if live trading is going well.
It is also a bit uneasy that some exchanges' data checksum logics are left as TODO.
Does it work well?
The text was updated successfully, but these errors were encountered: