Comments (4)
from gryphon.
My 2 cents here, is that ccxt seems to favour quantity over quality (most exchanges are just "partially" supported, with some features that don't work, etc.), and the python code produced is autogenerated (I believe ?), which means it is not the primary language for working with it.
Although I do get the argument for reusing something that already exists instead of reinventing the wheel, there are already other trading bots out there relying on ccxt, and I was personnally quite happy to see that gryphon has his own python-based implementation of exchange client code, and that it doesnt attempt to connect to everything out there.
I interpreted that as a desire to focus on quality over quantity, which I appreciate even more when it comes to trading.
That said however, attempting to unify the API so that a dedicated user could "dropin" ccxt as a replacement if he wished to attempt to connect to exchanges that are not integrated in gryphon just yet, could be a useful exercise...
from gryphon.
I'm open to this, or using CCXT selectively to make it quicker to implement hotly-requested exchange pairs.
Aside from what @asmodehn said, the one thing I'd really like to think through about this is security. Does adding a 3rd party exchange library introduce any new vectors to attack users of Gryphon? e.g. what if one of the maintainers of CCXT goes rogue before we/users notice, or what if a contributor slips a change in that reads environment variables and sends them to a their email under the maintainers nose? This is a risk with any library we use, but no library used by gryphon today is explicitly a cryptocurrency trading library, so would be a hot target.
There might be ways to reduce or nullify those risks, I'm not sure either way right now. We do use a 3rd party library to simplify an integration in one place already, which is coinbase, but in that case it was Coinbase's own code, so it was a bit of a different situation.
from gryphon.
I definitely agree that support is a good question for CCXT, perhaps limiting list to "fully supported" at least initially would satisfy fears in that regard.
Haven't dug into the gryphon (or the CCXT) code enough to truly pros/cons of each connection methodology, though I'd imagine both are simply just relying on the default APIs provided by each exchange, not sure how much there is to optimize one way or the other in that regard.
I really like the idea from @asmodehn about offering the support as a "sidecar" in some manner, allowing Gryphon to flesh out it's API support while offering broader short term support.
@garethdmm in regards to security that is always priority 1 when it comes to open source haha... This is particularly valid with projects that seem to value speed over all, their release cycle is honestly insane, I count 8 versions released today already https://pypi.org/project/ccxt/#history I definitely think if this feature is added we certainly want to pick a major version and stick with it, usually best to not be on the bleeding edge of open source because that's how you cause injuries :P
One thing that particularly interests me is that CCXT is planning to do a "pro" version with websockets support ccxt/ccxt#56 To me this is a good reason for offering CCXT as an option rather than the base mechanism, because the goal here is to keep Gryphon free and independent, while still giving devs and traders the freedom to make their own choices :)
from gryphon.
Related Issues (20)
- Bitstamp : subaccount API invalid signature HOT 3
- The homepage readme "gryphon-exe" is a typo? HOT 2
- exchange.market_order requires a price ? HOT 4
- Document sim_exchange HOT 1
- Strategy: Auditing cancels orders ? HOT 1
- Running [strat_name].py leads to .config file not being found. Original fix did not resolve this HOT 2
- Looking for feedback: Strategies and Strategy Ledgers are not intuitive to users HOT 1
- Add support for BitMex exchange. HOT 1
- Keeping track of dependencies HOT 2
- Running a strategy from a Jupyter Notebook HOT 1
- 'module' object has no attribute 'Money' HOT 4
- Setting up Data Service HOWTO HOT 1
- AttributeError: type object 'IOLoop' has no attribute 'initialized' HOT 2
- Slack invite link is down HOT 6
- AttributeError: 'NoneType' object has no attribute '_instantiate_plugins' HOT 2
- How to use ohlc bar data ? if I want TA indicator in my strategy? HOT 1
- What was the main idea to synchronize exchange rate of fiat-currencies?
- Migrate database cannot import name escape_sequence
- ERROR:gryphon.execution.live_runner:[UnmappedInstanceError] Class '__builtin__.NoneType' is not mapped
- ImportError: cannot import name ESDIRK
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gryphon.