Git Product home page Git Product logo

tribeca's Introduction

tribeca

Join the chat at https://gitter.im/michaelgrosner/tribeca

tribeca is a very low latency cryptocurrency market making trading bot with a full featured web client, backtester, and supports direct connectivity to several cryptocoin exchanges. On modern hardware, it can react to market data by placing and canceling orders in under a millisecond.

Web UI Preview

Runs on the latest node.js (v7.8 or greater). Persistence is acheived using mongodb. Installation is recommended via Docker, but manual installation is also supported.

Docker compose installation

  1. Install docker compose.

  2. Change the environment variables of env file to match your desired configuration. Input your exchange connectivity information, account information, and mongoDB credentials.

  3. Run docker-compose up -d --build. If you run docker-compose ps, you should see the containers running.

Docker Installation

  1. Please install docker for your system before preceeding. Requires at least Docker 1.7.1. Mac/Windows only: Ensure boot2docker or docker-machine is set up, depending on Docker version. See the docs for more help.

  2. Set up mongodb. If you do not have a mongodb instance already running: docker run -p 27017:27017 --name tribeca-mongo -d mongo.

  3. Change the environment variables of env file to match your desired configuration. Input your exchange connectivity information, account information, and mongoDB credentials.

  4. Save the Dockerfile, preferably in a secure location and in an empty directory. Build the image from the Dockerfile docker build -t tribeca .

  5. Run the container docker run -p 3000:3000 --link tribeca-mongo:mongo --env-file ./env --name tribeca -d tribeca. If you run docker ps, you should see tribeca and mongo containers running.

Manual Installation

  1. Ensure your target machine has node v7.8 (or greater) and mongoDB v3 or greater. Also, ensure Typescript 2.2, grunt, and, optionally, forever are installed (npm install -g grunt-cli typescript forever).

  2. Clone the repository.

  3. In the cloned repository directory, run npm install to pull in all dependencies.

  4. Compile typescript to javascript via grunt compile.

  5. cd to the outputted JS files, in tribeca/service.

  6. Create a tribeca.json file based off the provided sample-dev-tribeca.json or sample-prod-tribeca.json files and save it in the current directory. Modify the config keys (see configuration section) and point the instance towards the running mongoDB instance.

  7. Set environmental variable TRIBECA_CONFIG_FILE to full path of tribeca.json

  8. Run forever start main.js to start the app.

Configuration

  • EXCHANGE

    1. coinbase - uses the WebSocket API. Ensure the Coinbase-specific properties have been set with your correct account information if you are using the sandbox or live-trading environment.

    2. hitbtc - WebSocket + socket.io API. Ensure the HitBtc-specific properties have been set with your correct account information if you are using the dev or prod environment.

    3. okcoin - Websocket.Ensure the OKCoin-specific properties have been set with your correct account information. Production environment only.

    4. bitfinex REST API only. Ensure the Bitfinex-specific properties have been filled out. REST API is not suitable to millisecond latency trading. Production environment only.

    5. null - Test in-memory exchange. No exchange-specific config needed.

  • TRIBECA_MODE

    1. prod

    2. dev

  • MongoDbUrl - If you are on OS X, change "tribeca-mongo" in the URL to the output of boot2docker ip on your host machine. If you are running an existing mongoDB instance, replace the URL with the existing instance's URL. If you are running from a Linux machine and set up mongo in step 1, you should not have to modify anything.

  • ShowAllOrders - Show all orders sent from the application in the Orders List in the UI. This is useful for debugging/testing, but can really negatively impact performance during real trading.

  • TradedPair - Any combination of the following currencies are supported, if the target EXCHANGE supports trading the currency pair:

    • USD
    • BTC
    • LTC
    • EUR
    • GBP
    • CNY
    • ETH
    • BFX
    • RRT
    • ZEC
    • BCN
    • DASH
    • DOGE
    • DSH
    • EMC
    • FCN
    • LSK
    • NXT
    • QCN
    • SDB
    • SCB
    • STEEM
    • XDN
    • XEM
    • XMR
    • ARDR
    • WAVES
    • BTU
    • MAID
    • AMP
  • WebClientUsername and WebClientPassword - Username and password for web UI access. If kept as NULL, no the web client will not require authentication (Not recommended at all!!)

Input your exchange connectivity information, account information, and API keys in the config properties for the exchange you intend on trading on.

Application Usage

  1. Open your web browser to connect to port 3000 of the machine running tribeca. If you're running tribeca locally on Mac/Windows on Docker, replace "localhost" with the address returned by boot2docker ip.

  2. Read up on how to use tribeca and market making in the wiki.

  3. Set up trading parameters to your liking in the web UI. Click the "BTC/USD" button so it is green to start making markets.

Web UI

Once tribeca is up and running, visit port 3000 of the machine on which it is running to view the admin view. There are inputs for quoting parameters, grids to display market orders, market trades, your trades, your order history, your positions, and a big button with the currency pair you are trading. When you're ready, click that button green to begin sending out quotes. The UI uses a healthy mixture of socket.io and angularjs.

REST API

Tribeca also exposes a REST API of all it's data. It's all the same data you would get via the Web UI, just a bit easier to connect up to via other applications. Visit http://localhost:3000/data/md for the current market data, for instance.

TODO

TODO:

  1. Add new exchanges

  2. Add new, smarter trading strategies (as always!)

  3. Support for currency pairs which do not trade in $0.01 increments (LTC, DOGE)

  4. More documentation

  5. More performant UI

Donations

If you would like to support this project, please consider donating to 1BDpAKp8qqTA1ASXxK2ekk8b8metHcdTxj

tribeca's People

Contributors

0xdanr avatar ahalekelly avatar bappelt avatar benfavre avatar benmarten avatar blockchainhelp avatar camille92 avatar charles-rumley avatar ctubio avatar devanp92 avatar egasimus avatar gitter-badger avatar jimexist avatar josephfrazier avatar michaelgrosner avatar mikadily avatar mikehostetler avatar nonkreon avatar pascal66 avatar ricardohbin avatar shanejonas avatar waldyrious avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tribeca's Issues

browserify problems when building with Docker [Ubuntu 14.04]

I am running in a 14.04 Ubuntu VM.

Unfortunately I am having trouble building the docker image.

arthur@arthur:~/tribeca$ docker build -t tribeca .
Sending build context to Docker daemon 128.4 MB
Step 1 : FROM node:0.12.7
 ---> 8abbdb90df52
Step 2 : RUN apt-get update
 ---> Using cache
 ---> 017394ff2bcb
Step 3 : RUN apt-get install -y git
 ---> Using cache
 ---> 0945927a05a7
Step 4 : RUN git clone https://github.com/michaelgrosner/tribeca.git
 ---> Using cache
 ---> 47d9bc286cff
Step 5 : WORKDIR tribeca
 ---> Using cache
 ---> faf24c00cae6
Step 6 : RUN npm install -g grunt-cli tsd forever
 ---> Using cache
 ---> 6624c20e817b
Step 7 : RUN npm install
 ---> Using cache
 ---> 1e6ace9ea3d5
Step 8 : RUN tsd reinstall -s
 ---> Using cache
 ---> 0ac22675e174
Step 9 : RUN grunt compile
 ---> Running in c1bf96360915
Running "ts:service" (ts) task
Compiling...
### Fast Compile >>src/service/active-state.ts
### Fast Compile >>src/service/backtest.ts
### Fast Compile >>src/service/broker.ts
### Fast Compile >>src/service/config.ts
### Fast Compile >>src/service/fair-value.ts
### Fast Compile >>src/service/gateways/bitfinex.ts
### Fast Compile >>src/service/gateways/coinbase-api.ts
### Fast Compile >>src/service/gateways/coinbase.ts
### Fast Compile >>src/service/gateways/hitbtc.ts
### Fast Compile >>src/service/gateways/nullgw.ts
### Fast Compile >>src/service/gateways/okcoin.ts
### Fast Compile >>src/service/interfaces.ts
### Fast Compile >>src/service/main.ts
### Fast Compile >>src/service/market-filtration.ts
### Fast Compile >>src/service/markettrades.ts
### Fast Compile >>src/service/messages.ts
### Fast Compile >>src/service/persister.ts
### Fast Compile >>src/service/position-management.ts
### Fast Compile >>src/service/quote-sender.ts
### Fast Compile >>src/service/quoter.ts
### Fast Compile >>src/service/quoting-engine.ts
### Fast Compile >>src/service/quoting-parameters.ts
### Fast Compile >>src/service/quoting-styles/helpers.ts
### Fast Compile >>src/service/quoting-styles/mid-market.ts
### Fast Compile >>src/service/quoting-styles/style-registry.ts
### Fast Compile >>src/service/quoting-styles/top-join.ts
### Fast Compile >>src/service/safety.ts
### Fast Compile >>src/service/statistics.ts
### Fast Compile >>src/service/utils.ts
### Fast Compile >>src/service/web.ts
### Fast Compile >>src/common/messaging.ts
### Fast Compile >>src/common/models.ts
Using tsc v1.7.5



TypeScript compilation complete: 12.29s for 33 typescript files

Running "ts:admin" (ts) task
Compiling...
### Fast Compile >>src/admin/client.ts
### Fast Compile >>src/admin/market-quoting.ts
### Fast Compile >>src/admin/market-trades.ts
### Fast Compile >>src/admin/messages.ts
### Fast Compile >>src/admin/orderlist.ts
### Fast Compile >>src/admin/pair.ts
### Fast Compile >>src/admin/position.ts
### Fast Compile >>src/admin/shared_directives.ts
### Fast Compile >>src/admin/target-base-position.ts
### Fast Compile >>src/admin/trade-safety.ts
### Fast Compile >>src/admin/trades.ts
### Fast Compile >>src/common/messaging.ts
### Fast Compile >>src/common/models.ts
Using tsc v1.7.5



TypeScript compilation complete: 7.53s for 14 typescript files

Running "copy:main" (copy) task
Created 4 directories, copied 16 files

Running "browserify:dist" (browserify) task
>> Error: Cannot find module 'bufferutil' from '/tribeca/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib'
Warning: Error running grunt-browserify. Use --force to continue.

Aborted due to warnings.
The command '/bin/sh -c grunt compile' returned a non-zero code: 6

btc-e support?

Any plans to add btc-e.com support? It would be really nice. I'm honestly afraid to test this with my coinbase account for fear they will deactivate my account. But btc-e seems like the perfect playground.

Won't start with error - Cannot read property 'time' of null

I'm having trouble following docker installation guide. It works fine for bitfinex, but not okcoin or hitbtc (didn't try coinbase).

My sample Dockerfile:

FROM node:0.12.7
RUN apt-get update

RUN apt-get install -y git

RUN git clone https://github.com/michaelgrosner/tribeca.git

WORKDIR tribeca

RUN npm install -g grunt-cli tsd forever
RUN npm install

RUN tsd reinstall -s
RUN grunt compile

EXPOSE 3000 5000

# General config properties. Properties with `NULL` should be replaced with your own exchange account information.
ENV TRIBECA_MODE prod
ENV EXCHANGE hitbtc
ENV TradedPair BTC/USD
ENV WebClientUsername NULL
ENV WebClientPassword NULL
ENV WebClientListenPort 3000
# IP to access mongo instance. If you are on a mac, run `boot2docker ip` and replace `tribeca-mongo`.
ENV MongoDbUrl mongodb://tribeca-mongo:27017/tribeca

# DEV
## HitBtc
ENV HitBtcPullUrl http://api.hitbtc.com
ENV HitBtcOrderEntryUrl wss://api.hitbtc.com:8080
ENV HitBtcMarketDataUrl ws://api.hitbtc.com:80
ENV HitBtcSocketIoUrl https://api.hitbtc.com:8081
ENV HitBtcApiKey xxx
ENV HitBtcSecret xxx
ENV HitBtcOrderDestination HitBtc

WORKDIR tribeca/service
CMD ["forever", "main.js"]

And error I get:

info: 9/2/15 15:35:28,406       [tribeca:mtbroker]      loaded 0 market trades
error: Terminating! uncaughtException [TypeError: Cannot read property 'time' of null] TypeError: Cannot read property 'time' of null
    at LoaderSaver.saver (/tribeca/tribeca/service/persister.js:35:25)
    at Persister.MarketTradesLoaderSaver.saver [as _saver] (/tribeca/tribeca/service/markettrades.js:20:32)
    at Persister.persist (/tribeca/tribeca/service/persister.js:139:19)
    at EventEmitter.MarketTradeBroker.handleNewMarketTrade (/tribeca/tribeca/service/markettrades.js:58:30)
    at EventEmitter.emit (events.js:107:17)
    at Evt.trigger (/tribeca/tribeca/service/utils.js:41:62)
    at /tribeca/tribeca/service/gateways/hitbtc.js:109:35
    at Array.forEach (native)
    at Request._callback (/tribeca/tribeca/service/gateways/hitbtc.js:105:42)
    at Request.self.callback (/tribeca/node_modules/request/request.js:198:22)

What gives?

OKCoin unsuccessful message

OKCoin is producing unsuccessful error message, with error code 10015. Unable to compute EWMA.

See attached screenshot
capture

[Error: ETIMEDOUT] code: 'ETIMEDOUT'

My bot on bitfinex crashes once in a while, at random intervals. 'Forever' will restart it, but it leaves old orders hanging and it's not active - I need to click the red button (is there an autostart function?).

Crash log:

info: 9/3/15 05:53:49,503       [tribeca:gateway:BitfinexHTTP]  Error returned: url= https://api.bitfinex.com/v1/book/btcusd err= { 
[Error: ETIMEDOUT] code: 'ETIMEDOUT', connect: false }
error: Terminating! uncaughtException { [Error: ETIMEDOUT] code: 'ETIMEDOUT', connect: false } Error: ETIMEDOUT
    at null._onTimeout (/tribeca/node_modules/request/request.js:818:15)
    at Timer.listOnTimeout (timers.js:119:15)
Terminating! uncaughtException { [Error: ETIMEDOUT] code: 'ETIMEDOUT', connect: false } Error: ETIMEDOUT
    at null._onTimeout (/tribeca/node_modules/request/request.js:818:15)
    at Timer.listOnTimeout (timers.js:119:15)
error: Terminating! exit 1
Terminating! exit 1
error: Forever detected script exited with code: 1
error: Script restart attempt #348

Anything could be done about it?

Unable to connect to web interface

Hi, I have mongodb and tribeca up and running in docker, one instance on windows and one on ubuntu. Unfortunately on both platforms I cannot connect to the web interface. I tried all the addresses I could think of:
localhost:3000
127.0.0.1:3000
172.17.0.1:3000
172.17.0.3:3000
0.0.0.0:3000
and every time I'm getting an "Unable to connect" error.

There are no logs in the tribeca/service folder.
I pasted my tribeca configuration below in case it helps.
Thanks for your help.

d01d7773c00f tribeca "forever main.js" About an hour ago Up About a minute 0.0.0.0:3000->3000/tcp, 5000/tcp tribeca
207d9a3ba726 mongo "docker-entrypoint..." 3 hours ago Up About a minute 0.0.0.0:27017->27017/tcp tribeca-mongo

@ubuntu:~/Desktop/tribeca-master$ sudo docker inspect tribeca

[
{
"Id": "d01d7773c00f7d4fe546ae2d6e17f97be73bd1030017042afaa3eece9c68f668",
"Created": "2017-04-25T17:49:36.414552763Z",
"Path": "forever",
"Args": [
"main.js"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 4836,
"ExitCode": 0,
"Error": "",
"StartedAt": "2017-04-25T17:49:37.006643489Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:c975bc485f646cba3081e59c71f5f2435ee9d617340254e3589b8c8261819955",
"ResolvConfPath": "/var/lib/docker/containers/d01d7773c00f7d4fe546ae2d6e17f97be73bd1030017042afaa3eece9c68f668/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/d01d7773c00f7d4fe546ae2d6e17f97be73bd1030017042afaa3eece9c68f668/hostname",
"HostsPath": "/var/lib/docker/containers/d01d7773c00f7d4fe546ae2d6e17f97be73bd1030017042afaa3eece9c68f668/hosts",
"LogPath": "/var/lib/docker/containers/d01d7773c00f7d4fe546ae2d6e17f97be73bd1030017042afaa3eece9c68f668/d01d7773c00f7d4fe546ae2d6e17f97be73bd1030017042afaa3eece9c68f668-json.log",
"Name": "/tribeca",
"RestartCount": 0,
"Driver": "aufs",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {
"3000/tcp": [
{
"HostIp": "",
"HostPort": "3000"
}
]
},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "",
"Cgroup": "",
"Links": [
"/tribeca-mongo:/tribeca/mongo"
],
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DiskQuota": 0,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": -1,
"OomKillDisable": false,
"PidsLimit": 0,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0
},
"GraphDriver": {
"Name": "aufs",
"Data": null
},
"Mounts": [],
"Config": {
"Hostname": "d01d7773c00f",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"3000/tcp": {},
"5000/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NPM_CONFIG_LOGLEVEL=info",
"NODE_VERSION=7.9.0",
"YARN_VERSION=0.23.2",
"TRIBECA_MODE=dev",
"EXCHANGE=null",
"TradedPair=BTC/USD",
"WebClientUsername=NULL",
"WebClientPassword=NULL",
"WebClientListenPort=3000",
"MongoDbUrl=mongodb://tribeca-mongo:27017/tribeca",
"HitBtcPullUrl=http://demo-api.hitbtc.com",
"HitBtcOrderEntryUrl=ws://demo-api.hitbtc.com:8080",
"HitBtcMarketDataUrl=ws://demo-api.hitbtc.com:80",
"HitBtcSocketIoUrl=https://demo-api.hitbtc.com:8081",
"HitBtcApiKey=NULL",
"HitBtcSecret=NULL",
"HitBtcOrderDestination=HitBtc",
"CoinbaseRestUrl=https://api-public.sandbox.gdax.com",
"CoinbaseWebsocketUrl=wss://ws-feed-public.sandbox.gdax.com",
"CoinbasePassphrase=NULL",
"CoinbaseApiKey=NULL",
"CoinbaseSecret=NULL",
"CoinbaseOrderDestination=Coinbase",
"OkCoinWsUrl=wss://real.okcoin.com:10440/websocket/okcoinapi",
"OkCoinHttpUrl=https://www.okcoin.com/api/v1/",
"OkCoinApiKey=NULL",
"OkCoinSecretKey=NULL",
"OkCoinOrderDestination=OkCoin",
"BitfinexHttpUrl=https://api.bitfinex.com/v1",
"BitfinexKey=NULL",
"BitfinexSecret=NULL",
"BitfinexOrderDestination=Bitfinex"
],
"Cmd": [
"forever",
"main.js"
],
"ArgsEscaped": true,
"Image": "tribeca",
"Volumes": null,
"WorkingDir": "/tribeca/tribeca/service",
"Entrypoint": null,
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "e491745c6acb2f6e3d92b8d4c0557150676f4a9d1a256aa807eb2fbdb03b97ce",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"3000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "3000"
}
],
"5000/tcp": null
},
"SandboxKey": "/var/run/docker/netns/e491745c6acb",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "050432eb0b2cdd80461c30124a7dbc3eb889d91abab538d5bab51fd88ff302b3",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:03",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "db1d6f3bc8034c45d5f824d852df6316bef540cabd7b30930df1fda2e8c1b72e",
"EndpointID": "050432eb0b2cdd80461c30124a7dbc3eb889d91abab538d5bab51fd88ff302b3",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03"
}
}
}
}
]

Windows Guide

For the Remaining Noobs like myself can you please complete a Windows Guide

Error when I launch tribeca

C:\tribeca\node_modules\agentkeepalive\lib\agent.js:22
var debug = util.debuglog('http');
^
TypeError: Object # has no method 'debuglog'
at Object. (C:\Users\Pascal\Desktop\tribeca2\node_modules\agentke
epalive\lib\agent.js:22:18)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (C:\Users\Pascal\Desktop\tribeca2\node_modules\agentke
epalive\index.js:1:80)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
error: Forever detected script exited with code: 8

How to run tests

Hello, I was just wanting to know the process you use for running the tests. Sorry about opening an issue for this question, but I could not find a better way to contact you.

Gateway timeout with HitBTC

I'm not sure if this is something that's specifically related to Tribeca however I wanted to verify such and see if this behaviour has been experienced before by someone else.

Using Tribeca with HitBTC in production mode. Everything seemed to be working fine and then it suddenly disconnected and the BTC/USD button no longer turns green when pressed (currently red). I checked the logs and this is what I found:

info: 2/18/16 22:15:39,426      [tribeca:active]        updateParameters newMode =  true
info: 2/18/16 22:15:39,426      [tribeca:active]        Changed quoting mode to false
info: 2/18/16 22:15:39,427      [tribeca:exchangebroker:HitBtc] Connection status changed :: Disconnected :: (md: Connected) (oe: Disconnected)
info: 2/18/16 22:15:39,427      [tribeca:gateway:HitBtcOE]      close code=1000 msg=
info: 2/18/16 22:15:41,593      [tribeca:ewma]  New EMWA value: 423.201417213358
info: 2/18/16 22:16:19,900      [tribeca:active]        updateParameters newMode =  false
info: 2/18/16 22:16:19,901      [tribeca:exchangebroker:HitBtc] Connection status changed :: Disconnected :: (md: Disconnected) (oe: Disconnect
ed)
info: 2/18/16 22:16:19,901      [tribeca:gateway:HitBtcMD]      close code=1000 msg=
info: 2/18/16 22:16:32,360      [tribeca:gateway:HitBtcPG]      Error processing JSON response  <html>
<head><title>504 Gateway Time-out</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.6.3</center>
</body>
</html>

info: 2/18/16 22:16:41,595      [tribeca:ewma]  New EMWA value: 423.245932578089
info: 2/18/16 22:16:47,360      [tribeca:gateway:HitBtcPG]      Error processing JSON response  <html>
<head><title>504 Gateway Time-out</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.6.3</center>
</body>
</html>

info: 2/18/16 22:17:02,359      [tribeca:gateway:HitBtcPG]      Error processing JSON response  <html>
<head><title>504 Gateway Time-out</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.6.3</center>
</body>
</html>

info: 2/18/16 22:17:17,380      [tribeca:gateway:HitBtcPG]      Error processing JSON response  <html>
<head><title>504 Gateway Time-out</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.6.3</center>
</body>
</html>

Any ideas?

Problem with hitbtc?

After using tribeca on coinbase successfully, I decided to switch to hitbtc because they have contracts for market making.

However, my account balance shows all zero's, and when I try to manually exercise a trade in Tribeca I get an error "badPrice".

Any insight or debug I can perform?
badtrade
nobalance

Error in Tribeca build - Task "ts:service" failed error during 'grunt compile'

Hello,
I'm attempting to reinstall Tribeca with changes that have been implemented since January and I'm running into a problem on step 9 of the Tribeca build. I'm using the same Dockerfile I have previously with success and modified it to match the latest Dockerfile on the repo. Below is the error message I receive before it stops:

Step 9 : RUN grunt compile
---> Running in 2df7799d5d1a
Running "ts:service" (ts) task
Compiling...

Fast Compile >>src/service/active-state.ts

Fast Compile >>src/service/backtest.ts

Fast Compile >>src/service/broker.ts

Fast Compile >>src/service/config.ts

Fast Compile >>src/service/fair-value.ts

Fast Compile >>src/service/gateways/bitfinex.ts

Fast Compile >>src/service/gateways/coinbase-api.ts

Fast Compile >>src/service/gateways/coinbase.ts

Fast Compile >>src/service/gateways/hitbtc.ts

Fast Compile >>src/service/gateways/nullgw.ts

Fast Compile >>src/service/gateways/okcoin.ts

Fast Compile >>src/service/interfaces.ts

Fast Compile >>src/service/main.ts

Fast Compile >>src/service/market-filtration.ts

Fast Compile >>src/service/markettrades.ts

Fast Compile >>src/service/messages.ts

Fast Compile >>src/service/persister.ts

Fast Compile >>src/service/position-management.ts

Fast Compile >>src/service/quote-sender.ts

Fast Compile >>src/service/quoter.ts

Fast Compile >>src/service/quoting-engine.ts

Fast Compile >>src/service/quoting-parameters.ts

Fast Compile >>src/service/quoting-styles/helpers.ts

Fast Compile >>src/service/quoting-styles/mid-market.ts

Fast Compile >>src/service/quoting-styles/style-registry.ts

Fast Compile >>src/service/quoting-styles/top-join.ts

Fast Compile >>src/service/safety.ts

Fast Compile >>src/service/statistics.ts

Fast Compile >>src/service/utils.ts

Fast Compile >>src/service/web.ts

Fast Compile >>src/common/messaging.ts

Fast Compile >>src/common/models.ts

Using tsc v1.4.1
/tribeca/src/service/gateways/coinbase.ts(471,33): error TS1005: '=' expected.
/tribeca/src/service/gateways/coinbase.ts(471,36): error TS1005: ',' expected.
/tribeca/src/service/gateways/coinbase.ts(471,40): error TS1005: ',' expected.
/tribeca/typings/node/node.d.ts(128,29): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(128,32): error TS1005: ',' expected.
/tribeca/typings/node/node.d.ts(135,24): error TS1005: ',' expected.
/tribeca/typings/node/node.d.ts(135,33): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(143,22): error TS1005: ',' expected.
/tribeca/typings/node/node.d.ts(143,41): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(143,50): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(155,16): error TS1005: ',' expected.
/tribeca/typings/node/node.d.ts(155,40): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(155,49): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(159,17): error TS1005: ',' expected.
/tribeca/typings/node/node.d.ts(159,31): error TS1005: ',' expected.
/tribeca/typings/node/node.d.ts(159,40): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(160,1): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(417,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(417,23): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(417,26): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(417,47): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(417,50): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(457,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(457,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(457,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(457,24): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(457,29): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(458,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(458,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(458,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(458,21): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(458,26): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(459,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(459,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(459,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(459,24): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(459,29): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(620,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(620,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(620,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(620,23): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(620,28): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(621,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(621,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(621,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(621,24): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(621,29): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(667,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(667,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(667,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(667,24): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(667,29): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(774,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(774,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(774,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(774,21): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(774,26): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(775,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(775,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(775,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(775,24): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1778,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(1778,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(1778,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1778,24): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1778,29): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1936,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(1936,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(1936,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1936,21): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1936,26): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1952,5): error TS1128: Declaration or statement expected.
/tribeca/typings/node/node.d.ts(1952,12): error TS1109: Expression expected.
/tribeca/typings/node/node.d.ts(1952,17): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1952,24): error TS1005: ';' expected.
/tribeca/typings/node/node.d.ts(1952,29): error TS1005: ';' expected.

158 syntax errors
Error: tsc return code: 1
Warning: Task "ts:service" failed. Use --force to continue.

Aborted due to warnings.
The command '/bin/sh -c grunt compile' returned a non-zero code: 3

Any ideas?

Bitfinex WebSocket API Support

Bitfinex has added a WebSocket API (documentation), but tribeca currently doesn't support it. Would you be interested in reviewing/merging pull requests that add WebSocket support? I haven't yet familiarized myself with the code, but I thought I'd go ahead and ask before digging too far into it. Thanks!

Missing source

As I pointed out

src/service/main.ts(54,27): error TS2307: Cannot find module './promises'.

Maybe you forgot to stage a new file?

Enable Trading/Quoting on Start/Restart?

Hello,

I am wondering if I am just missing something or if there is a trick to enable quoting/trading automatically when running a forever start or forever restart.

I occasionally have to reboot the system tribeca is running on, or have to restart tribeca due to some other issue. I noticed that when this happens tribeca comes up in a disabled state, not in a quoting or active trading state. Is there a command line parameter, config file stanza, or maybe even just a rest call that will enable quoting/trading on a start or restart of tribeca?

I have had my server reboot on me a couple of times in the middle of night, and found in the morning that I have missed out on several hours of trading because it doesn't come back up in an active state.

Thanks!

E11000 duplicate key error collection: tribeca.qp-sub ...

Standard Tribeca docker installation with linked Mongo container.

Sometimes, after clicking "Save" button, you can see this type of error in the log:

{  
   "name":"tribeca:exchangebroker:repopersister",
   "hostname":"d3b31f5af6ba",
   "pid":50,
   "level":50,
   "err":{  
      "message":"E11000 duplicate key error collection: tribeca_okcoin_btc_usd.qp-sub index: _id_ dup key: { : \"57187fdead6caf32000383f1\" }",
      "name":"MongoError",
      "stack":"MongoError: E11000 duplicate key error collection: tribeca_okcoin_btc_usd.qp-sub index: _id_ dup key: { : \"57187fdead6caf32000383f1\" }\n    at Function.MongoError.create (/tribeca/node_modules/mongodb-core/lib/error.js:31:11)\n    at toError (/tribeca/node_modules/mongodb/lib/utils.js:114:22)\n    at /tribeca/node_modules/mongodb/lib/collection.js:701:67\n    at commandCallback (/tribeca/node_modules/mongodb-core/lib/topologies/server.js:1143:9)\n    at Callbacks.emit (/tribeca/node_modules/mongodb-core/lib/topologies/server.js:116:3)\n    at null.messageHandler (/tribeca/node_modules/mongodb-core/lib/topologies/server.js:291:23)\n    at Socket.<anonymous> (/tribeca/node_modules/mongodb-core/lib/connection/connection.js:285:22)\n    at emitOne (events.js:90:13)\n    at Socket.emit (events.js:182:7)\n    at readableAddChunk (_stream_readable.js:153:18)",
      "code":11000
   },
   "msg":"Unable to insert qp-sub { width: 0.1,\n  size: 0.05,\n  mode: 0,\n  fvModel: 0,\n  targetBasePosition: 0.21,\n  positionDivergence: 0.8,\n  ewmaProtection: false,\n  autoPositionMode: 1,\n  aggressivePositionRebalancing: false,\n  tradesPerMinute: 2.5,\n  tradeRateSeconds: 300,\n  longEwma: 0.095,\n  shortEwma: 0.19,\n  quotingEwma: 0.095,\n  aprMultiplier: 3,\n  stepOverSize: 0.1,\n  exchange: 2,\n  pair: { base: 1, quote: 0 },\n  _id: '57187fdead6caf32000383f1' }",
   "time":"2016-04-21T08:06:41.840Z",
   "v":0
}

Then, this error appears in log after every click on a "Save" button with same mongo object id.

Restart of Tribeca helps.

Tribeca with new currencies not working

Hi Michael,

I was trying to use Tribeca on the LTC/BTC market on Gdax.

However is doesn't seems to work here is the log I get:

{"name":"tribeca:gateway:CoinbaseOE","hostname":"a8eded981008","pid":14,"level":40,"msg":"NO EXCHANGE ID PROVIDED FOR ORDER ID: 7225bf30-2948-11e7-a845-a154ee269027 null { message: 'price must be greater than zero (0)' }","time":"2017-04-24T23:47:58.794Z","v":0}

I think it's not that much missing haha.

Best,
Camille

Improve logging "cannot compute a quote since no position report exists"

Usually this means the user's API credentials are incorrect. Perhaps make the logging more informative.

Is there a way to proactively check if API credentials are correct on start up on all the major exchanges tribeca supports?

Hello Michael and All --
I've got Tribeca running on an EC2 instance via AWS and all is working besides obtaining a position report
":"cannot compute a quote since no position report exists!",
Keeps coming up in the logs. I'm using coinbase as my exchange and prod (not dev) in the Dockerfile
I've double checked my API credentials are correct, any thoughts? Thanks so much for this project and your hard work

Add option width as a % of FV

Hi Michael hi everyone,

As you know, bitcoin market is very volatile and 1W amplitude is often above 10%.

With this high volatility it is easy to forget (or not having the time) to change your width to adapt to the new price. For users trading in exchanges with maker fees, that can result in important losses in case the market is suddenly going up, as their preset width would no longer cover for the broker fees.

In order to solve this problem I was thinking of a new way to calculate the width:

Width = (FV/100)*x

x being the value chosen by the user.

So if you chose a width of 0.15 and the market FV is $500 your width will be 0,75. If the market moves to $600 your new width will be 0,9.

Tell me what you think about it!

I would love to try to implement myself but my coding skills are close to 0. If someone is willing to help me, I would gladly pay you a beer!

Have a nice day and nice trading all,

Camille

Fails to startup

After I fixed issue #36, the below error is logged when I run the container:

info: 1/9/16 16:19:52,904 [tribeca:config] MongoDbUrl = mongodb://tribeca-mongo:27017/tribeca
info: 1/9/16 16:19:52,916 [tribeca:main] Listening to admins on *:3000
info: 1/9/16 16:19:52,958 [tribeca:config] TRIBECA_MODE = dev
error: Terminating! uncaughtException [TypeError: undefined is not a function] TypeError: undefined is not a function
at new Publisher (/tribeca/tribeca/common/messaging.js:41:34)
at getPublisher (/tribeca/tribeca/service/main.js:130:33)
at /tribeca/tribeca/service/main.js:190:9
at /tribeca/node_modules/q/q.js:1229:26
at _fulfilled (/tribeca/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/tribeca/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/tribeca/node_modules/q/q.js:796:13)
at /tribeca/node_modules/q/q.js:556:49
at runSingle (/tribeca/node_modules/q/q.js:137:13)
at flush (/tribeca/node_modules/q/q.js:125:13)

Box too short on UI

Cant read the 't'/'text' box content bellow 'market data and quote' in my screen

Please help me use this

Hello please I would like to use this bot I am new to all of this but I am trying my hardest to make this bot work for me and I'm having problem

I tried to box one, on my pc, in a new os on VM, on my laptop , didn't work , so I try this node way

I've followed the instructions to a T, I have cloned the thing on my computer,

I am on this step

In the cloned repository directory, npm install and then typings install to pull in all dependencies.

I get the same error I get as when I tried with Docker

`C:\Users\Admin\Desktop\GDAX BOT\trib test\tribeca>typings install
typings ERR! message Attempted to compile "lodash" as an ambient module, but it looks like an external module.

typings ERR! cwd C:\Users\Admin\Desktop\GDAX BOT\trib test\tribeca
typings ERR! system Windows_NT 10.0.14393
typings ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\Admin\AppData\Roaming\npm\node_modules\typings\dist\bin.js" "install"
typings ERR! node -v v6.10.2
typings ERR! typings -v 0.8.1

typings ERR! If you need help, you may report this error at:
typings ERR! https://github.com/typings/typings/issues
`

I tried googling my issue but it comes with one similar thing but this guy has instead of lodash, his problem is iscroll

Please I really awnt to get into botting but I have this roadblock but Iw ill not give up

Order list not working

I have Tribeca manually installed on an ubuntu 16.04 server.
Everything works fine except for the order list. It is simply not populating.
It is hooked up to GDAX via the coinbase api settings.
I'd like to paste a logfile, but there is alot of secure info there, us passwords, etc.

BitMex support

Are there any plans to add BitMex as an exchange? Seems like an ideal exchange for this considering their trading volumes and fee structure.

Recommended Upgrade Procedure

Hello, I was curious if there was a recommended upgrade procedure to upgrade an existing Tribeca installation. If so, can you point me to any documentation that describes it or outline it here?

Thank you!

No position report exists OkCoin and Bitfinex

When launching the program, it seems as though all trade data is going through. However my logs are spammed with:
[tribeca:quotingengine] cannot compute a quote since no position report exists!
and no trades are going through.

`typings install` fails on latest commit

Hey! Amazing work on this. Even without running it yet, I can see the level of work and attention put in.

I just noticed that the latest commit seems to break typings install:

typings ERR! message Attempted to compile "lodash" as an ambient module, but it looks like an external module.

I don't know a ton of TypeScript but it looks like this is important:
https://github.com/michaelgrosner/tribeca/blob/master/typings.json#L17

I played around for a little bit trying to see if I could fix it but I didn't manage to.

Let me know if I can help!

browserify problems with building with Docker [Windows 10]

I set up Docker correctly on Windows as well and tried to use the same command as in Ubuntu but unfortunately the exact same error message is manifesting.

Running "browserify:dist" (browserify) task
>> Error: Cannot find module 'bufferutil' from '/tribeca/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib'
Warning: Error running grunt-browserify. Used --force, continuing.
>> Error: Cannot find module 'utf-8-validate' from '/tribeca/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib'
Warning: Error running grunt-browserify. Used --force, continuing.
Fatal error: Callback was already called.
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
The command '/bin/sh -c grunt compile --force' returned a non-zero code: 3

Target Base Position is not updated

TBS on the top bar is not updated when settings are changed. Don't know if it's only a UI bugs.

If tribeca is relaunched the new TBS is displayed.

Docker/Tribeca installation - Web admin doesn't serve anything

I completed the Docker Tribeca installation following the instructions within the README file verbatim and I'm running into an issue. When I connect to port 3000 I get a blank page (zero content served). I'm positive that Tribeca is running and listening on port 3000. I've verified that the same behaviour occurs when connecting locally instead of remotely. The install is running on an Amazon EC2 micro instance if that makes any difference. I ensured to allow traffic to/from the EC2 instance on port 3000 within the Amazon EC2 admin interface and disabled local firewall for testing. I also tried disabling IPv6 system wide in the event that was causing a problem. Below is some output from Docker to show that Tribeca is running (along with MongoDB):

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63586d1f9a38 tribeca:latest forever main.js About an hour ago Up 5 seconds 5000/tcp, 0.0.0.0:3000->3000/tcp tribeca
84a36f5fa86a mongo:latest /entrypoint.sh mongo About an hour ago Up 34 minutes 0.0.0.0:27017->27017/tcp tribeca/mongo,tribeca-mongo

Any suggestions? Also, is there a log file I can look at to find additional info for troubleshooting purposes?

Any help is certainly appreciated :)

Unrounded bid.Px = askPrice

capture d ecran 2016-09-26 a 14 07 37

capture d ecran 2016-09-26 a 14 21 03

Like in those examples, the bot calculated bidPx / ask.Ps is equal to the AskPx/ BidPx of the market. Meaning the bot is willing to buy at market price.

Hopefully, In this situation the bot will not make any order but just stay blocked.

I think this error comes from the rounding somewhere in /src/service/quoting-engine.ts

I hope someone can help with this issue.

Happy trading everyone,

About how I use the bot:
I use the boomerang branch, ewma protection and a very small width.

Grunt Compile Error

I got this error after following all of the steps and then running 'grunt compile':

~/tribeca$ sudo grunt compile
module.js:338
throw err;
^
Error: Cannot find module './lexer'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object. (/tribeca/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/coffee-script.js:10:10)
at Object. (/tribeca/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/coffee-script.js:167:4)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)

I know my node is the correct version (0.12). The one weird thing is that I installed it under 'sudo' but it should still work... what is this 'lexer' module and why cant it be found?

No persistence OkChina orders Error code 10001

Hi I realized that after a few trades (about 5 for me) orders on Okchina (us) doesn't have any persistence and will be deleted within a second.

As a result of that, nearly no order is executed. I've been counting 4 orders in 24h in OkChina.

Here is a screen shot of the orders that never get to the "working"state:

capture d ecran 2016-08-17 a 12 03 02

Here are some logs of a trade that got killed in case that can help:
{"name":"quotesender","hostname":"11605eca37de","pid":13,"level":40,"msg":"crossing quote detected! gen quote at 565.24 would crossed with Bid quote at QuoteOrder {\n quote: Quote { price: 565.32, size: 0.04 },\n orderId: 'NJwebesKW' }","time":"2016-08-15T18:02:35.090Z","v":0} {"name":"quotesender","hostname":"11605eca37de","pid":13,"level":40,"msg":"crossing quote detected! gen quote at 565.24 would crossed with Bid quote at QuoteOrder {\n quote: Quote { price: 565.32, size: 0.04 },\n orderId: 'NJwebesKW' }","time":"2016-08-15T18:02:35.392Z","v":0} {"name":"quotesender","hostname":"11605eca37de","pid":13,"level":40,"msg":"crossing quote detected! gen quote at 565.24 would crossed with Bid quote at QuoteOrder {\n quote: Quote { price: 565.32, size: 0.04 },\n orderId: 'NJwebesKW' }","time":"2016-08-15T18:02:35.947Z","v":0} {"name":"quotesender","hostname":"11605eca37de","pid":13,"level":40,"msg":"crossing quote detected! gen quote at 565.24 would crossed with Bid quote at QuoteOrder {\n quote: Quote { price: 565.32, size: 0.04 },\n orderId: 'NJwebesKW' }","time":"2016-08-15T18:02:36.009Z","v":0} {"name":"quotesender","hostname":"11605eca37de","pid":13,"level":40,"msg":"crossing quote detected! gen quote at 565.24 would crossed with Bid quote at QuoteOrder {\n quote: Quote { price: 565.32, size: 0.04 },\n orderId: 'NJwebesKW' }","time":"2016-08-15T18:02:36.949Z","v":0} {"name":"quotesender","hostname":"11605eca37de","pid":13,"level":40,"msg":"crossing quote detected! gen quote at 565.24 would crossed with Bid quote at QuoteOrder {\n quote: Quote { price: 565.32, size: 0.04 },\n orderId: 'NJwebesKW' }","time":"2016-08-15T18:02:37.536Z","v":0} {"name":"quotesender","hostname":"11605eca37de","pid":13,"level":40,"msg":"crossing quote detected! gen quote at 565.24 would crossed with Bid quote at QuoteOrder {\n quote: Quote { price: 565.32, size: 0.04 },\n orderId: 'NJwebesKW' }","time":"2016-08-15T18:02:37.951Z","v":0} {"name":"oe:broker","hostname":"11605eca37de","pid":13,"level":30,"msg":"Deleting 317170336 late, oid: 4ygex-ljYb","time":"2016-08-15T18:02:38.123Z","v":0} {"name":"oe:broker","hostname":"11605eca37de","pid":13,"level":30,"msg":"Registered V1yymgoYb for late deletion","time":"2016-08-15T18:02:38.709Z","v":0} {"name":"oe:broker","hostname":"11605eca37de","pid":13,"level":30,"msg":"Deleting 317170354 late, oid: NJwebesKW","time":"2016-08-15T18:02:38.725Z","v":0} {"name":"oe:broker","hostname":"11605eca37de","pid":13,"level":30,"msg":"Registered VJ-J1mxiFW for late deletion","time":"2016-08-15T18:02:39.032Z","v":0} {"name":"oe:broker","hostname":"11605eca37de","pid":13,"level":30,"msg":"Deleting 317170356 late, oid: Vk_zbxiYW","time":"2016-08-15T18:02:39.089Z","v":0}

Some more descriptions:

Orders stay as "New" instead of being categorized as "working" and they don't appear on OkCoin console.

I've been experiencing the issue under osX and Ubuntu (14 and 16). The problem persists on the main branch and @ctubio boomerang branch.

If you have any idea where that can come from, I can try to have a look!

Have a nice day and happy trading,
Camille

[Question] tbp and pDiv how do they work?

As title says I am questioning my self about tbp and pDiv on how it works and functions. As for my self I am still fiddling around with this amazing bot and wondered what I should know about these values.

The thing I am wondering about:

  • How does the 'Static' goal works? Do you need to increase it over time?
  • What are optimal settings for it (for beginner traders with Tribeca)? (IE: Less Risky 0.1 BTC/EUR (Example))
  • What actual value is required/needed? And how do you calculate it?

Yours Faithfully,
RDash

Bot sells at a loss?

Should this be possible? Testing with settings:

  • Mode: Top
  • fv: wBBO
  • apMode: Off
  • Width: .02
  • Size: 1 (LTC)
  • tbp: 1
  • pDiv: 1
    trds/sec: 300/60
    screenshot 2017-05-07 18 28 14

Notice that original size was set to 0.1, as soon as it was increased and LTC prices dropped the bot started working with the new numbers, but for some reason sold at 28.72 (a price lower than any of those buy prices).

Does tribeca keep track of all buy fill prices in mongo and sell accordingly? Or is this just draining my cash supply...?

OKCoin not reporting correct ask orders

OKCoin is not reporting correct ask order in the mkt table. See for an example here
capture

Note the crossed orders on the ask side. The tribeca best ask price is typically > $1 than the actual best ask price reported via OKCoin

Strange behaviour on okcoin

Sometimes it requires a few times to start correctly (red bot screen etc.). When it starts normal behaviour last for few minutes - one or two rotating WORKING orders. Then order status screen gets filled with NEW and doesn't return to normal unless restarted.

screenshot from 2015-09-03 13 08 23

Also on a small VM (single core and 512M RAM) sometimes it hogs all the CPU, until crashes and restarts itself.

Bot going too fast?

Watching in Coinbase, it appears there is a lag between moving orders in which it does not appear there is an open order.

The bot moves very fast.

Is this a lag on Coinbase GUI part, or is there really a lag between? I would estimate it only appears that 10-25% of the time, there is actually an open order. The rest is the delay between canceling and reopening a new order.

However, this is only how it shows in Coinbase GUI. Thoughts?

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.