For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/

Crowdfunding support of CCXT support in backtrader?



  • Hi,

    I asked this question in an already existing thread, but it stayed without answer (https://community.backtrader.com/topic/1424/can-backtrader-support-ccxt), so I raise it in this specific thread.

    Mostly, it is addressed at @backtrader admin: if existing, would implementation of CCXT support in backtrader be acceptable?

    If yes, and given a lot of work has already been done in this direction (https://community.backtrader.com/topic/623/anyone-use-backtrader-to-do-live-trading-on-bitcoin-exchange/291?page=15), but as you seem to indicate, maybe not fully according the best practises (you mention "ideally the best way would have been to create only a broker which can be loaded at run time"), would you be open to a crowdfunding of this feature?

    For actual development, I see at least 2 different solutions (I am not relying on my programming skills, and current version of CCXT support appears at the moment not complying with backtrader development guidelines):

    • either a detailed analysis from you of what needs to be modified to serve as "whitepaper" for an external IT company to quote this work & develop it (I am thinking for instance to backtest rookies https://backtest-rookies.com/professional-services/ as I am currently reading their tutorials on backtrader, and that they know backtrader, ccxt and panda)
    • or fully developped by backtrader team?

    I thank you for your feedback on this idea.
    Have a good evening.
    Best regards,
    Pierre



  • CCXT exists as a separate module. What is wrong with it? Why do you think it would be better to include it into bt?

    Or do you work as a sales for that backtest-rookie guy? :)



  • @ab_trader

    Hi,
    I am speaking about support of CCXT, not integrating it directly as is in backtrader. (like panda for instance: it is not integrated, but it does be supported ;) )
    There has been a 15 pages forum thread about code modification in backtrader to support CCXT, ending with several users having their own forks of backtrader, all out of date now as backtrader has been updated X times since...

    Nope, I am not a sales for backtest-rookie ah ah :)
    As said I really don't rely on my programming skills, and at some point, if I am successful in backtesting, I do intend to go live trading on a crypto exchange.
    This type of programming seems for me out of my skills (in addition that as said, some 15 pages in forum have already been written, to end up in another thread with @backtrader saying that it would have been best to do it differently)

    Do you yourself work for an IT company? I am fine to organize a call for proposal with several IT companies ;)
    Well, I am speaking about crowdfunding, but this proposal doesn't seem to raise much attention (I would have thought that a topic discussed during 15 pages in the forum would attract more attention ???) so if I am the only one ok for funding, fund risks to be rather limited anyway... :)

    Well anyhow, thanks to have replied. I feel less alone ;)

    Have a good evening,
    Bests,
    Pierre


  • administrators

    @pierrot said in Crowdfunding support of CCXT support in backtrader?:

    about code modification in backtrader to support CCXT

    Which code modification? Integrating a broker requires no modifications.



  • @pierrot said in Crowdfunding support of CCXT support in backtrader?:

    ending with several users having their own forks of backtrader,

    I assume that you just need to take cxxtbroker.py from one of the forks and use it as a separate module, import the broker and assign it to bt. At least it should work this way if it is done in accordance to bt concept. Adding different useful features doesn't require bt code modification.



  • @ab_trader @backtrader
    Hi, ok thanks for this feedback. I will have a deeper look when I am at this point so.
    Thanks again,
    Have a good day.
    Bests,
    Pierre



  • @pierrot said in Crowdfunding support of CCXT support in backtrader?:

    Hi,

    I asked this question in an already existing thread, but it stayed without answer (https://community.backtrader.com/topic/1424/can-backtrader-support-ccxt), so I raise it in this specific thread.

    Mostly, it is addressed at @backtrader admin: if existing, would implementation of CCXT support in backtrader be acceptable?

    If yes, and given a lot of work has already been done in this direction (https://community.backtrader.com/topic/623/anyone-use-backtrader-to-do-live-trading-on-bitcoin-exchange/291?page=15), but as you seem to indicate, maybe not fully according the best practises (you mention "ideally the best way would have been to create only a broker which can be loaded at run time"), would you be open to a crowdfunding of this feature?

    For actual development, I see at least 2 different solutions (I am not relying on my programming skills, and current version of CCXT support appears at the moment not complying with backtrader development guidelines):

    • either a detailed analysis from you of what needs to be modified to serve as "whitepaper" for an external IT company to quote this work & develop it (I am thinking for instance to backtest rookies https://backtest-rookies.com/professional-services/ as I am currently reading their tutorials on backtrader, and that they know backtrader, ccxt and panda)
    • or fully developped by backtrader team?

    I thank you for your feedback on this idea.
    Have a good evening.
    Best regards,
    Pierre

    If Crowdfunding ==1:
    Print(" i will donate 1k usd first")



  • @backtrader

    Hi, thanks for your reply.
    Can cxxtbroker.py, ccxtstore.py & ccxtfeed.py be integrated in official backtrader repo then?
    If not, what does prevent it / make it impossible?

    I thank you in advance for your reply.
    Have a good day.
    Best regards,
    Pierre


  • administrators

    First, you haven't answered the question, which was a question related to the comment you made

    @backtrader said in Crowdfunding support of CCXT support in backtrader?:

    @pierrot said in Crowdfunding support of CCXT support in backtrader?:

    about code modification in backtrader to support CCXT

    Which code modification? Integrating a broker requires no modifications.

    With regards to your proposal, I think you obviate the RACI part of any project (it's just a model like any other, but it helps)

    • R: Responsible
    • A: Accountable
    • C: Consulted
    • I: Informative

    If I were to grab two .py files from someone else:

    • Who is responsible?
    • Who is accountable?
    • Who has to be consulted?
    • Who has to be informed?

    To you it may seem trivial to grab two files and drop them it, but

    • What happens if they don't work out of the box? Am I in charge responsible of making them work?
    • What happens if they generate problems or have patented technologies? Am I accountable?
    • Who do I have to ask permission for the integration and copyright delegation?
    • Who needs to be informed? There may be many third parties who have contributed and have rights and may have to informed about copyright delegation, integration in another package?

    backtrader was designed with a plug-in approach in mind and anyone can develop and independent broker and make it run against the official package. Examples:

    • https://github.com/ftomassetti/backtrader-oandav20

    • https://github.com/alpacahq/alpaca-backtrader-api

      The people from Alpaca submitted a pull-request and they received a similar answer from me. Furthermore, alpaca is a company who wants to make business, and they should be prepared to be accountable and responsible for software they develop. Dropping it into the main distribution of backtrader and forgetting about it, it's not company-style. For surer they could have promised support, but promises are usually carried away with the wind.

    The same as you can do with indicators, analyzers, observers, strategies.

    So let's consider "crowdfunding", because backtrader, like any other project, no matter how good it may (or may not) be, does for sure admit modifications, improvements, optimizations and additions

    • This is something to be considered, because I wouldn't like it to have an impact.

    It is a recurring topic, which has shown up in the community and in private requests, including large projects. I will consider it.



  • @backtrader

    Dear backtrader
    you haven't answered the question, which was a question related to the comment you made
    I am sorry.
    As you will understand from my other recent posts, I am a beginner in backtrader, so I can only be imprecise.
    Intended code modifications & additions are basically of the same type than the ones highlighted in Dave Vallance's fork
    https://github.com/Dave-Vallance/bt-ccxt-store

    Additons:
    ccxtbroker.py, ccxtstore.py ccxtfeed.py
    Modifications:
    listed in README.md

    Regarding RACI part, yes, you're completely right, this is a topic that needs to be clarified.
    I fully agree with what you expose, and have actually already encountered once these questions after a submission I made once (fortran scientific code - clearly not python :))

    If it can be addressed thanks to a crowdfunding approach, this is great.

    Thank you for your answer, and hope it can turn in a positive answer.

    For other readers, it would be nice to know how many would feel like to contribute some funds, so that everybody has an idea of what amount needs be invested in an effort to even overall the expense (no need to clearly state how much you can afford).
    If we do be many, this will also demonstrate that the preliminary task of quantifying the development work (if crowdfunding is accepted by @backtrader) is not made in vain.

    @moontrader : thanks to have dropped a word, this is very positive

    Thanks again @backtrader & @moontrader ,
    Have a good day.
    Bests,
    Pierre


Log in to reply
 

});