purr changed the topic of #elliottcable to: you
fwg has quit [Ping timeout: 260 seconds]
alexgordon has quit [Ping timeout: 246 seconds]
niggler has quit [Quit: Computer has gone to sleep.]
alextgordon has joined #elliottcable
niggler has joined #elliottcable
<joelteon> note of the day
<joelteon> yum is not interruptible
<cuttle> what is that credit card thing
<cuttle> like
<cuttle> takes a small cut, lets people just put in their credit card and give you money
<cuttle> not physical
<cuttle> not square
dnyy has joined #elliottcable
<cuttle> joelteon: do you know
<joelteon> no
<cuttle> ok
<cuttle> stripe!
<jesusabdullah> I wanna break in this bong but I have to wait until like next sursday
alextgordon has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
sharkbot has quit [Remote host closed the connection]
sharkbot has joined #elliottcable
<devyn> whitequark: well when I'm usually around it's like midday in Moscow
<devyn> I mean I guess I could wake up early
<devyn> whitequark: where is that server hosted btw? latency is really, really great from here
<devyn> (by great I mean good; low)
<whitequark> devyn: DO. and from here, it's total shit
<whitequark> aka DigitalOctober
<whitequark> okay
<whitequark> wanna sketch up a plan?
<whitequark> er
<whitequark> DigitalOcean
<whitequark> and more specifically San Francisco
<devyn> ah that's why
<devyn> SF is only like 1,500 km away
<whitequark> 9500 from here
<whitequark> lemme check what the lightspeed lag would be
<devyn> well there's significantly more than lightspeed lag heh
<whitequark> not that significantly
<whitequark> lightspeed RTT=64ms, ping RTT=210ms
<devyn> really? well that's depressing then
<devyn> nah that's pretty significant
<whitequark> (god bless wolfram alpha)
<devyn> <3 wa
<purr> Let it be known that devyn hearts wa.
<devyn> -- wa
<purr> Let it be known that devyn is indifferent to wa.
<devyn> <3 wolfram|alpha
<purr> Let it be known that devyn hearts wolfram|alpha.
<whitequark> it even suggests "light in fiber"
<whitequark> so more like lightspeed RTT=88ms
<whitequark> almost half
<whitequark> oh wait, look at the map
<whitequark> that is not how the cable is laid I am sure
<devyn> I'm sure all of the various switches along the way add a bit of latency?
<devyn> and yes, I'm sure it's not that direct
<devyn> heh
<whitequark> definitely
<whitequark> but, I'm still interested in true lightspeed RTT
<whitequark> switches don't add *that* much. 0.1ms to 1ms is reasonable for core routers afaik
<devyn> but a typical traceroute shows a good 14 hops or so IIRC
<whitequark> ok, assuming cables cross US/Europe directly and it goes to Moscow via Sweden
<whitequark> which it does, because telia.net is in traceroute
<whitequark> well, finland, not much difference for my purpose
<whitequark> devyn: what you see in traceroute has about zero relationship to the actual routing
<devyn> out of curiosity, where did you get my SSH pubkey from? (I mean, it's publicly accessible and all; I'm just curious)
<whitequark> well, it does, but to a very little degree. case in point: https://gist.github.com/whitequark/7dbab21c13b2a0838c69
<whitequark> so I see "within moscow" and "within teliasonera from helsinki to some other nordic city because no sane person names a city with something abbreviating to sjo"
<whitequark> there's no "across europe" or "across US" parts
<whitequark> (ssh pubkey) http://github.com/devyn.keys
<devyn> oh, that's awesome, where is that feature documented
<whitequark> nowhere
<gkatsev> their blog?
<whitequark> I learned about it accidentally
<devyn> gkatsev: y u no use 4096-bit keys :P
<whitequark> devyn: ok so, I used http://www.submarinecablemap.com/ and google maps
<whitequark> so actual lightspeed RTT is closer to 140ms
<devyn> okay
<whitequark> oh, my bad, you can actually see this in the traceroute this time
<whitequark> 13 nyk-bb1-link.telia.net (80.91.247.115) 120.411 ms
<gkatsev> lol
<purr> lol
<whitequark> I guess this is new york
<devyn> whitequark: honestly I think the main thing that's stopping me from working on the trader is learning OCaml and LWT lol
<devyn> feels like maybe I need to actually do something for myself in them to get the experience before I actually grok what's going on
<whitequark> devyn: pair programming on trader ?
<whitequark> (idk never tried it in the past)
<devyn> idk whether that would help
<devyn> I think I just need to suck it up and work on it
<devyn> haha
<whitequark> devyn: okay
<whitequark> so what I did was, I wrote a tiny widget library over OCaml's X11 interface, wrote a candle chart widget with it
<whitequark> made it work, then looked at the resulting code in disgust, remembered I fucking hate GUIs, ragequit and erased the hell out of it
<whitequark> all in the span of two days
<whitequark> you can still find it in history.
<devyn> haha
<devyn> well chart.ml is still there
<devyn> it's huge o_o
<whitequark> it's somewhat overengineered
<whitequark> and the axis code is shit
<whitequark> ok so what I'm going to do is write a handler for btc-e trading APIs, perhaps the market depth pipe (not sure if it's very useful, and delta compression can be a bitch)
<whitequark> and accounting module which would tell you if the operation you're attempting to do is remotely profitable
<devyn> I was just going to do something in <canvas>; throw a little HTTP server in there with some static resources and an event stream
<devyn> GUI-wise
<whitequark> oh and your stream map-fold-whatever combinator idea was neat, I'll implement it as well
<whitequark> hm, ok
<devyn> yes, please do; I don't know enough OCaml/LWT to get that done IMO
<devyn> I'd have to have the motivation heh
<whitequark> oh and after all that, I'll probably add stop-loss/take-profit orders for btc-e, that would validate the internal structure
<devyn> it's useful for this because you often need to store the moving averages but also produce results
<whitequark> and actually be useful
<whitequark> hmm
<whitequark> see, my approach to data storage, everywhere, is: don't toss raw data until you can't
<whitequark> and hard drives are cheap
<whitequark> so in ocamltrader, I want to store just the raw trade data and calculate everything else on demand
<whitequark> while caching it, of course.
<devyn> I agree but generating a moving average for the entirety of history isn't a good idea obviously
<whitequark> no?
<devyn> every time* I mean
<whitequark> well, it'll get cached once
<devyn> you can get the new moving average easily just based on the most recent moving average and the new value
<whitequark> and updated when there's more of the history
<devyn> which is what my indicators.ml is set up for
<devyn> though it only has StochRSI
<whitequark> yep, it's totally possible with my Binary_index thing
<devyn> also probably want MACD as well
<whitequark> also I've watched stochrsi for quite some time (bitcoinwisdom has it)
<whitequark> it can actually predict the market to some degree, I'm impressed
<whitequark> though it only does so very locally (understandably)
<whitequark> devyn: ok so, which kind of events do you want to get?
<joelteon> round-trip min/avg/max/stddev = 29.451/1766.714/3446.561/1003.699 ms
<joelteon> i love the internet in my room
<whitequark> I was thinking about a rather simple interface, basically this:
<whitequark> 1. there are entities. entity = single trade, aggregated trades, indicator value, ... for a point/period of time.
<devyn> whitequark: yeah, StochRSI is perfect for when things are very volatile; I've used it very effectively
<devyn> and BTC-e follows the patterns StochRSI is very good at predicting quite well
<whitequark> 2. you can request archived entities for unixtime A through B for pipe P through a control channel and they'll get delivered
<whitequark> each inside its own SSE frame
<whitequark> 3. or alternatively, you can request live entities for pipe P
<whitequark> in either case, you only specify the entity configuration, i.e. exchange, currency pair, ...
<whitequark> and the server-side part takes care of setting up combinators, caching as needed, etc
<whitequark> (where P = a parameter you pass to the SSE stream)
<devyn> request live entities?
<devyn> as in a live stream?
<whitequark> yeah
<devyn> which interface are we talking about, specifically?
<whitequark> server-sent events
<devyn> oh ok
<whitequark> websockets are fine too
<whitequark> but SSE is way simpler
<devyn> SSE is way simpler and it doesn't cost much to have HTTP requests for the other direction
<devyn> that's what I generally do
<whitequark> and I already know how SSE works :p
<devyn> well you can learn how it works in like a minute anyway
<devyn> :p
<whitequark> yeah
<whitequark> okay so, I think you'll have a preliminary server to test against in ~8 hours
<whitequark> if nothing happens
<whitequark> you free today?
<devyn> in 8 hours I'll probably still be sleeping but I'll try to wake up early
<devyn> I am free though
<whitequark> cool
<whitequark> btw, a guy I know is interested in the bot too, OK to give him github access?
<devyn> yeah as long as you trust him
<whitequark> I do, he's fine
<devyn> then absolutely
<devyn> we just don't want this code getting into too many hands, of course
<whitequark> maybe even will contribute something. chances are rather slim though
<whitequark> prolly will just use it, on a small scale
<devyn> which is fine
eligrey has quit [Quit: Leaving]
alextgordon has joined #elliottcable
fwg has joined #elliottcable
fwg has quit [Client Quit]
yorick has joined #elliottcable
eligrey has joined #elliottcable
niggler has quit [*.net *.split]
<Navarr> does anyone want/need an IRCCloud invite?
niggler has joined #elliottcable
duckinator has quit [Ping timeout: 240 seconds]
duckinator has joined #elliottcable
whitequark has quit [Quit: leaving]
whitequark has joined #elliottcable