Giter Site home page Giter Site logo

condex's People

Contributors

chunderstruck avatar cribbstechnologies avatar notnight avatar r4stl1n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

condex's Issues

DB/app upgrade functionality

We need a simple way to migrate DB functionality on schema changes.

Ideas:

  • have an update SQL script in the root of the project that the main loop could check for and run if available. It would then delete it after running

pre-purchase check of coin wallet

We need a way to check to make sure a wallet/pair isn't offline for whatever reason before attempting a buy and also make sure it can short circuit the loop if need be. The system should:

  1. check if the coin is currently under maintenance and if not hit the exchange and make sure the wallet/pair is online and available for trading. If not, mark the coin as being under maintenance. It should bail on whatever operation it was trying to do.
  2. have a scheduled check to re-evaluate the status of coins marked as under maintenance and remove the flag if necessary

indexequalweight - rounding issue on large coin numbers

When trying to apply indexequalweight to very large numbers of coins, a rounding issue causes missing percentages for last coins in the index as there is not enough percentage left over to be assigned.

eg. indexequalweight on 198 coins rounds up to 0.51 instead of 0.505 so missing about 1% to assign to last 2 coins

Minimum order issue

It seems that there's still an issue with calculating the minimum trade order but only in some occasions. Bittrex has 2 thresholds a trade must pass in order to hit the books:

  1. It must be greater than 0.001 BTC in value
  2. It must be greater than the number of coins for a given pair

This issue seems to be happening only when the system is attempting to bring a coin up from -100% off target.

It is attempting to get the current market for the pair which includes the minimum trade size for the pair. It then makes a call to get the ticker for the current pair and multiplies the last price * the minimum trade size to get a value. This is often lower than the minimum BTC trade value so I'm not sure what's going on there.

Remove the Bittrex minimum order size check when adding coins to the index.

Fringe case was found when trying to convert a preexisting index from coincube to condex. If the BTC value is low enough adding multiple indexed coins can cause condex to not allow adding a coin to the index.

We should remove this check to allow easy migration from coincube to condex. However this check should be reran before starting the index to ensure that all coins meet the minimum requirements.

Remove the ability to remove BTC from index

Currently "Index Remove" allows an individual to remove BTC fromt heir index. This breaks all future coin additions and cripples the trade engine.

Our code currently requires individuals to hold btc in their index to rebalance.

Unrealized gain calculated incorrectly.

The unrealized gain is currently being calculated incorrectly has the values are always tied to equal 100%. This is incorrect has they should be independently calculated against the individual coins gains and losses.

Create Production Use Guide

By default condex utilizes sqlite to manage its database. Unfortunately if a machine has low read write speed it can cause the sqlite database to get locked during writing. In rare cases it can cause a coin lock to not get deleted causing the entire index to lock up.

We need to create a simple setup guide to setup a mysql database and have condex to be configured for it. This will ensure that there isn't a issue with writing to the file system.

index update throws argument error

When updating an index it throws an invalid argument error.

Traceback (most recent call last): File "main.py", line 155, in <module> ConDex().cmdloop() File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop stop = self.onecmd(line) File "/usr/lib/python2.7/cmd.py", line 221, in onecmd return func(arg) File "main.py", line 89, in do_index icm.index_update_coin(command_split[1],command_split[2], command_split[3]) File "/home/phoenix/condex/managers/IndexCommandManager.py", line 168, in index_update_coin if DatabaseManager.update_index_coin_model(coin.upper(), float(percentage), 0.0,0.0, lockCoin): TypeError: update_index_coin_model() takes exactly 4 arguments (5 given) (.env) %

This is due to the fact that the function call supplies 5 arguments but the definition only takes in 4 arguments.
DatabaseManager.update_index_coin_model(coin.upper(), float(percentage), 0.0,0.0, lockCoin):

But update_index_coin_model, only takes
def update_index_coin_model(ticker, desiredPercentage, distanceFromTarget, locked):

BCC not included in supported coins

ConDex> show coins 
+----------+-------+------+-------+-------+-------+-------+-------+------+-------+-------+
| Avalible | Coins | .    | .     | .     | .     | .     | .     | .    | .     | .     |
+----------+-------+------+-------+-------+-------+-------+-------+------+-------+-------+
| SC       | FLO   | ENRG | KORE  | WAVES | MLN   | BAT   | INFX  | DCR  | GUP   | RADS  |
| PIVX     | 2GIVE | LBC  | DGB   | VOX   | QRL   | KMD   | BNT   | BCH  | LMC   | WINGS |
| XMR      | VTR   | DCT  | BLITZ | EDG   | STRAT | ION   | XWC   | THC  | SPR   | GNO   |
| FLDC     | RBY   | XMY  | VRC   | RDD   | VRM   | GBYTE | ETH   | AUR  | ZCL   | NAV   |
| GRS      | BTG   | MCO  | START | PART  | ZEN   | IOC   | FUN   | PAY  | VTC   | TKS   |
| XAUR     | GBG   | LUN  | PDC   | BLOCK | RISE  | FTC   | STORJ | MER  | MTL   | INCNT |
| TRUST    | EMC   | EMC2 | BURST | BRX   | GEO   | SBD   | PPC   | DNT  | SEQ   | PTOY  |
| APX      | ARK   | LTC  | XVG   | ENG   | CLUB  | BTCD  | EXCL  | GLD  | NEOS  | XRP   |
| SALT     | NXS   | IOP  | DASH  | XZC   | SWT   | VIB   | ETC   | MONA | MANA  | COVAL |
| LSK      | DTB   | BAY  | NEO   | SHIFT | 1ST   | BRK   | UNB   | CVC  | QTUM  | AEON  |
| PINK     | XLM   | SYS  | CFI   | FAIR  | CPC   | RLC   | ADA   | PTC  | TRST  | MEME  |
| TIX      | SWIFT | SYNX | BITB  | NXC   | OK    | UBQ   | ADX   | BYC  | VIA   | TRIG  |
| MYST     | NMR   | ADT  | TX    | NLG   | XMG   | XEM   | CURE  | XST  | REP   | DGD   |
| STEEM    | CRB   | CANN | HMQ   | EXP   | QWARK | MUSIC | ARDR  | GNT  | FCT   | BCY   |
| SNRG     | ANT   | ZEC  | GAME  | CLAM  | XVC   | ABY   | EFL   | CRW  | DYN   | EBST  |
| CLOAK    | LGD   | MAID | SNGLS | SLS   | DMD   | NXT   | AMP   | BLK  | RCN   | OMNI  |
| SLR      | XCP   | POT  | BSD   | DOPE  | NBT   | GRC   | PKB   | SPHR | POWR  | GCR   |
| XEL      | AGRS  | DOGE | GAM   | SNT   | XDN   | SIB   | ERC   | EGC  | GOLOS | MUE   |
+----------+-------+------+-------+-------+-------+-------+-------+------+-------+-------+

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.