michaelgrosner / tribeca Goto Github PK
View Code? Open in Web Editor NEWA high frequency, market making cryptocurrency trading platform in node.js
License: Other
A high frequency, market making cryptocurrency trading platform in node.js
License: Other
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.
It says:
npm ERR! notsup Not compatible with your operating system or architecture: fseve
[email protected]
fsevents is mac only?
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!
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!
Support Ethereum
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:
Yours Faithfully,
RDash
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?
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.
Also on a small VM (single core and 512M RAM) sometimes it hogs all the CPU, until crashes and restarts itself.
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!
Are there any plans to add BitMex as an exchange? Seems like an ideal exchange for this considering their trading volumes and fee structure.
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
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:
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
Should this be possible? Testing with settings:
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...?
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.
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?
For the Remaining Noobs like myself can you please complete a Windows Guide
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
instead BTC only and FIAT only
(like LTC/DOGE or anything available)
If typings >0.8.1 is used, the command typings install
will fail.
This is because the meaning of ambientDependencies has changed.
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
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.
26/08/15 BTC-e code API update
(source btce)
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.
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)
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.
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!
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?
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
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
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 :)
Readme and wiki page says that Tribeca packaged with backtesting mode. But how to run and use it?
As I pointed out
src/service/main.ts(54,27): error TS2307: Cannot find module './promises'.
Maybe you forgot to stage a new file?
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?
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
Cant read the 't'/'text' box content bellow 'market data and quote' in my screen
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?
TSD is deprecated in favor of Typings (https://github.com/typings/typings)
This will cause much interest and further development by Canadians, since QuadrigaCX is one of the largest Canadian Bitcoin (and Ether) exchanges.
Hi,
does tribeca automate cex.io trades?
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"
}
}
}
}
]
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?
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.
Would be usefull to quickly remember clear explanation
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
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.
Hi everyone,
In some cases, tbp will go over the total assets of Bitcoin and stay blocked there when using EwmaBasic calculation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.