Skip to content
This repository has been archived by the owner on Feb 1, 2024. It is now read-only.

Overhaul Kelp APIs: Use custom Kelp interfaces in Kelp APIs with a more flexible strategy and exchange interface #270

Open
nikhilsaraf opened this issue Sep 3, 2019 · 0 comments
Assignees
Labels
feature request New feature or request
Milestone

Comments

@nikhilsaraf
Copy link
Contributor

nikhilsaraf commented Sep 3, 2019

Desired Behavior

I want to be able to have Kelp-specific structs and interfaces in the Kelp API only, which limits the API dependencies and increased flexibility. The APIs should not be dependent on any package in the stellar/go repo (such as build or txnbuild).

Impact

The desired behavior will allow me to decouple the Kelp APIs from the stellar/go SDK

Feature Suggestion

We can achieve the desired behavior by updating the Kelp APIs in api/* which will constitute a major version bump because of the API change.

This will affect the strategy API as well as the exchange API. We can split this issue into two if needed during the implementation phase.

This will also include a redesign of the APIs to be more friendly to cross-language strategy development and advanced strategy development such as easily accessing technical indicators and convenient access to historical data via a managed data(base) interface (not a direct database connection).

References

This feature exists in a few other trading bots that present a developer-friendly strategy development API but some which are still lacking. The goal here is to make Kelp's APIs extremely expressive while having sub-APIs for specific implementations such as market-making vs. trading vs. remote strategies, etc.

Additional context

  • See this sample PR which demonstrates that we can easily replace the build package dependency with the txnbuild package -- the final solution will not be dependent on either build or txnbuild packages
  • Also see this issue which came close to touching the Kelp APIs, and only updated the implementations to avoid the version bump: Use txnbuild instead of build package, except in Kelp APIs #269

Specification

TBD

@nikhilsaraf nikhilsaraf added the feature request New feature or request label Sep 3, 2019
@nikhilsaraf nikhilsaraf self-assigned this Sep 3, 2019
@nikhilsaraf nikhilsaraf added this to the v2.0.0 milestone Sep 3, 2019
@nikhilsaraf nikhilsaraf changed the title Use custom Kelp interfaces in Kelp APIs, removing build package dependency Overhaul Kelp APIs: Use custom Kelp interfaces in Kelp APIs, removing build package dependency Sep 3, 2019
@nikhilsaraf nikhilsaraf changed the title Overhaul Kelp APIs: Use custom Kelp interfaces in Kelp APIs, removing build package dependency Overhaul Kelp APIs: Use custom Kelp interfaces in Kelp APIs with a better API interface Sep 3, 2019
@nikhilsaraf nikhilsaraf changed the title Overhaul Kelp APIs: Use custom Kelp interfaces in Kelp APIs with a better API interface Overhaul Kelp APIs: Use custom Kelp interfaces in Kelp APIs with a more flexible strategy and exchange interface Sep 3, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature request New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant