owocki / pytrader

cryptocurrency trading robot
MIT License
1.93k stars 433 forks source link

Incentive structures for a successful pytrader #36

Open owocki opened 8 years ago

owocki commented 8 years ago

I've been thinking a fair bit about the concerns raised in https://github.com/owocki/pytrader/issues/7 and what it will take in order to make this system successful over time.

What success looks like

Success being defined as :

  1. traders gain alpha, and subsequently, can make a profit using pytrader.
  2. the greater the contributions to pytrader, the greater the alpha.
    • a. contributions to pytrader compound upon each other, creating greater alpha.
    • b. there is sufficient market cap & trading volume available such that pytrader contributors are not competing with one another for profit.
    • c. if pytraders do compete with each other, those who have made greater contributions will beat those have made lesser contributions.
  3. 1 & 2 are maintained over time.

    Actors

Since open sourcing the repo, I've been chatting with people on the pytrader slack ( https://github.com/owocki/pytrader/issues/23 ) about the development roadmap.

So far, I see the following actor archetypes:

  1. core contributor -- just me so far
  2. contributor - python, machine learning, or quant. has made PR with meaningful contributions to repo.
  3. potential contributor - same skills as contributor. potential to make meaningful contributions.
  4. trader -- had enough coding experience and/or interest to run the repo, but not to make meaningful contributions.
  5. other -- anything else

    Balance

A key part of achieving success as defined above will be maintaining balance. Balance between

Given the zero sum nature of the trading market, the incentive structure of pytrader should be set up to avoid competing with one another.

Given the compounding nature of the collective contributions of pytrader, the incentive structure should be set up to encourage PRs back to the repository.

In Practice

I propose the following setup:

  1. code is public, maintained in the main pytrader fork.
  2. data is private, maintained by indivdual contributors and traders.
  3. some data may be made public such that it encourages compounding the value of this repository, such as prices, bid/ask spread, and (in the future) order books, social semantics.

    TODOs & Future considerations

    • Profitable NN configurations -- These are currently public. They may be made private soon, after documentation is written on how to find profitable NN configurations on ones own.
    • Tipping -- In order to encourage PRs to the repository, a BTC bounty is may be attached to roadmap items. I am looking for feedback on this idea.
    • Private Slack Room I will be creating a private slack room, entitled #contributors. To get an invite, you must make a contribution to the repository.
owocki commented 8 years ago

how some hedge funds are structured —> there are various teams with their own code-base and they get a cut of the incentive fee, if a shop is structured so that you’re covered during a bad year when others do well, you end up sharing code

maybe public/private is too binary of a model for a "distributed autonomous hedge fund". if there are pockets of traders that have some incentive (whether theres shared funds, an agreement to share their best code, sharing cpu cycles, whatever), that would be a good middle ground.

that said, i don’t want to prematurely optimize the incentive model stuff..

owocki commented 8 years ago

https://github.com/owocki/pytrader/pull/59

LinuxIsCool commented 6 years ago

I really like the brainstorming that is going on in the depths of this repository. It's such an interesting organizational and game theoretical problem: Can people work together on a shared profitable trading software stack to optimize personal and communal benefit? I am doing a lot of research now on Reinforcement Learning applied to algo trading. I am a Masters CS student in Big Data and AI. Very interested in the project.