Git Product home page Git Product logo

batil's Introduction

batil's People

Contributors

ssoper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

batil's Issues

Hide internals from documentation

Adopt an EtradeServiceError protocol

  • It would adopt from a parent ApiError protocol with just code and message
  • Would be specific to E*TRADE errors
  • All calls to API endpoints would catch this and return null letting other errors still throw

Resolve dokka issues

Unresolved function com.seansoper.batil.samples.Orders.buyEquityLimit in @sampl
Cannot find PsiElement corresponding to com.seansoper.batil.samples.Orders.buyEquityLimit
Unresolved function com.seansoper.batil.samples.Orders.sellEquityLimit in @sample
Cannot find PsiElement corresponding to com.seansoper.batil.samples.Orders.sellEquityLimit

E*TRADE token expires in long running processes

After an hour or so the token provided by E*TRADE will expire causing an exception to be thrown which we can catch and force the session to renew. Likely we’ll want some sort of flag/enum like ForceSessionRenew with default to true that is passed in.

Simplify creation of client

Currently the client setup is kinda complex as it was intended to abstract away all the hard parts of managing multiple broker accounts. But each broker account should be configurable on its own and with Batil only supporting one broker at this time (E*TRADE) it doesn’t make sense to have all this abstraction, at least not yet.

Follow the Alpaca model where you can set everything up with a single line of code and all the endpoint specific calls are held by the client vs. having them passed in. Likely this will require re-thinking how to do testing (DI).

Create a sample client

  • Uses the Batil dependency
  • Could be bundled as part of Batil or a separate repo
  • Focus on one broker, likely E*TRADE
  • Do everything on the command-line, even graphs of chance of profitability Let’s go with the basics for now and save this for a future improvement

Investigate use of a shadow jar for building fat executables

Currently overriding default JAR settings in the gradle file to build a fat executable which could interfere with future attempts to build a maven plugin. Use the ShadowJar gradle plugin to build a fat executable instead.

Update Chromium dependency

Primarily chrome-reactive-plugin which has a new version of rxjava with a lot of changes. Rest of the dependency changes are minor.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.