该用户的聊天记录定位。
frustrating
frustrating
Yes - if so it seems to help validate my theory that the batch endpoint is just a layer over the standard create order endpoint
Yes - if so it seems to help validate my theory that the batch endpoint is just a layer over the standard create order endpoint
One more reason I don’t use batch I guess
One more reason I don’t use batch I guess
You are thinking that the counting of the limit occurs as each one of the batch orders is passed to the matching engine rather than at initial receipt of the request, right? I would hope they are doing it at initial receipt but I could honestly see them doing it the other way (just to make our lives more difficult)
You are thinking that the counting of the limit occurs as each one of the batch orders is passed to the matching engine rather than at initial receipt of the request, right? I would hope they are doing it at initial receipt but I could honestly see them doing it the other way (just to make our lives more difficult)
So if you are sharing a runtime/server - good luck
So if you are sharing a runtime/server - good luck
Unauth endpoints go off of IP
Unauth endpoints go off of IP
Authenticated limits don't apply to unauthenticated endpoints. That being said, I would guess it is still likely your rate limiter is not working correctly - I would review that - it just might be that you aren't trying to do the volume of calls on auth routes compared to non-auth and so that datapoint is a red herring. Lastly - you no longer apply for Advanced Access - there is an API endpoint to grant you that - use that instead
Authenticated limits don't apply to unauthenticated endpoints. That being said, I would guess it is still likely your rate limiter is not working correctly - I would review that - it just might be that you aren't trying to do the volume of calls on auth routes compared to non-auth and so that datapoint is a red herring. Lastly - you no longer apply for Advanced Access - there is an API endpoint to grant you that - use that instead
If you are seeing back pressure now it’s only because you cleared out the dumpster fire impeding your main functions which made backpressure (or lack thereof) irrelevant
If you are seeing back pressure now it’s only because you cleared out the dumpster fire impeding your main functions which made backpressure (or lack thereof) irrelevant
It’s the amend order api endpoint - likely not a closed socket on <@351839065919979530> end - possible but unlikely
It’s the amend order api endpoint - likely not a closed socket on <@351839065919979530> end - possible but unlikely
On iOS I only even bother looking at port and cash balance and leaderboard volume (as a proxy for general activity) - that’s as much of the dumpster fire I am willing to tolerate
On iOS I only even bother looking at port and cash balance and leaderboard volume (as a proxy for general activity) - that’s as much of the dumpster fire I am willing to tolerate
If it was regulated as any other financial institution it would be under a letter of consent right now
If it was regulated as any other financial institution it would be under a letter of consent right now
Yeah - it’s 10x better but still buggy and it was near unusable for an unacceptably long time
Yeah - it’s 10x better but still buggy and it was near unusable for an unacceptably long time
Oh, its loads of fun! I couldn't view more than 5-10 events the History tab before it crashed in portfolio for 14 months - that is now fixed. About two months ago, the iOS app was unusable for about 30 days. The portfolio page used to crash within about 2 minutes every time - now fixed although it is a LOT slower to scroll through the full list. The tax document page requires me to close all other apps and tabs to load without crashing. Currently if I use the iOS app and want to see my cash balance, I need to open the app, click on the portfolio balance, wait for the app to crash, reload the app, click on the portfolio balance again and then I can see the cash balance but I need to look quick because the app will crash within a couple seconds.
Oh, its loads of fun! I couldn't view more than 5-10 events the History tab before it crashed in portfolio for 14 months - that is now fixed. About two months ago, the iOS app was unusable for about 30 days. The portfolio page used to crash within about 2 minutes every time - now fixed although it is a LOT slower to scroll through the full list. The tax document page requires me to close all other apps and tabs to load without crashing. Currently if I use the iOS app and want to see my cash balance, I need to open the app, click on the portfolio balance, wait for the app to crash, reload the app, click on the portfolio balance again and then I can see the cash balance but I need to look quick because the app will crash within a couple seconds.
I don't use amend - if you haven't seen it before, then possibly. It looks like an internal error in retrieving some data it needed to process your request - its kinda a toss up (without knowing more detail from Kalshi) on it being a runtime hiccup on their end (ie your request was properly formed) or that your request had an issue that prompted it to try to do something it shouldn't have,
I don't use amend - if you haven't seen it before, then possibly. It looks like an internal error in retrieving some data it needed to process your request - its kinda a toss up (without knowing more detail from Kalshi) on it being a runtime hiccup on their end (ie your request was properly formed) or that your request had an issue that prompted it to try to do something it shouldn't have,
What endpoint?
What endpoint?
That is a very rude thing for them to call you
That is a very rude thing for them to call you
for now - I'm working on a couple ideas 😀
for now - I'm working on a couple ideas 😀
In my experience with banking cores, the cross AZ/region is usually a replication so on a fail of the main server the failover server is as up to date as it can be (possibly even fully). So you really do have redundancy, just only one runtime is up at a time
In my experience with banking cores, the cross AZ/region is usually a replication so on a fail of the main server the failover server is as up to date as it can be (possibly even fully). So you really do have redundancy, just only one runtime is up at a time
I've worked with a few banking cores and they tend to be monolithic servers (cloud on on-prem) for this reason - coordination is really tough (maybe impossible) if you want to spread it out
I've worked with a few banking cores and they tend to be monolithic servers (cloud on on-prem) for this reason - coordination is really tough (maybe impossible) if you want to spread it out
It likely has redundant fallbacks in multiple AZs (and probably regions) but there would be some heavy technical issues in splitting their runtime in multiple AZs - there are datapoints that are shared across the exchange that would create real latency issues if they were shared across data centers (eg account balance and positions) - waiting 1-2 ms to post a transaction on a market because you need to get the account balance from an endpoint in a datacenter 20 miles away is gonna severely limit the number of transactions you can process. This isn't a situation of just spinning up multiple servers with a shared datastore - there can only be one source of truth and it needs to be fast - the ability to distribute is limited.
It likely has redundant fallbacks in multiple AZs (and probably regions) but there would be some heavy technical issues in splitting their runtime in multiple AZs - there are datapoints that are shared across the exchange that would create real latency issues if they were shared across data centers (eg account balance and positions) - waiting 1-2 ms to post a transaction on a market because you need to get the account balance from an endpoint in a datacenter 20 miles away is gonna severely limit the number of transactions you can process. This isn't a situation of just spinning up multiple servers with a shared datastore - there can only be one source of truth and it needs to be fast - the ability to distribute is limited.
Kalshi bounce
Kalshi bounce
You have been for the last 45 minutes
You have been for the last 45 minutes
Ouch
Ouch
I just ran the idea through Claude and it thinks it is a great idea (for YOU to do and great in terms of MY PnL)
I just ran the idea through Claude and it thinks it is a great idea (for YOU to do and great in terms of MY PnL)
maybe instead of feeding it actual WS data, you should just feed it made up WS data - if it performs best on bad data, then you shouldn't be using good data
maybe instead of feeding it actual WS data, you should just feed it made up WS data - if it performs best on bad data, then you shouldn't be using good data
Then you wouldn't get to have any fun
Then you wouldn't get to have any fun
I'm gonna go have a beer and hope it works when I am done - no trading on bad data
I'm gonna go have a beer and hope it works when I am done - no trading on bad data
Looks like the WS feed is acting up again - maybe cached/stale values as it was before or maybe something else (I don't have that logging on). Not saying your code isn't broken tho - you'll have to find out later
Looks like the WS feed is acting up again - maybe cached/stale values as it was before or maybe something else (I don't have that logging on). Not saying your code isn't broken tho - you'll have to find out later
Anyone else notice some weird lag issues that started at 5 pm Eastern?
Anyone else notice some weird lag issues that started at 5 pm Eastern?
you can apply for more - I think I got a $300 credit after 6 months by applying for it
you can apply for more - I think I got a $300 credit after 6 months by applying for it
really? I think their pricing is actually pretty good - granted, I am purposefully over-provisioned now but in the past I had a pretty fast setup for a whole lot less than $400/mo
really? I think their pricing is actually pretty good - granted, I am purposefully over-provisioned now but in the past I had a pretty fast setup for a whole lot less than $400/mo
Which is why you could still hit backpressure issues with enough message velocity. Although I think if you wrote your own WS library you could likely skip the deserialization (at least most of it since you still need to quickly respond to pings) - most likely not worth the effort
Which is why you could still hit backpressure issues with enough message velocity. Although I think if you wrote your own WS library you could likely skip the deserialization (at least most of it since you still need to quickly respond to pings) - most likely not worth the effort
Local deployers shouldn't brag about speed
Local deployers shouldn't brag about speed
Then its not cheap memory - its not a storage queue - it's eating RAM. Still have all the deserialization on your WS messages - that adds up
Then its not cheap memory - its not a storage queue - it's eating RAM. Still have all the deserialization on your WS messages - that adds up
All markets or just MVE?
All markets or just MVE?
I handle in thread (just to update an internal orderbook state) but that is because I don't want the extra latency on pushing to another thread - which is why I have lots of WS threads.
I handle in thread (just to update an internal orderbook state) but that is because I don't want the extra latency on pushing to another thread - which is why I have lots of WS threads.
quick tip - just drop the conn and resub - you will get all new snapshots - easier than catchup
quick tip - just drop the conn and resub - you will get all new snapshots - easier than catchup
2mbit?
2mbit?
Remember rule #1 - never talk people out of making bad coding decisions (that may make me money)
Remember rule #1 - never talk people out of making bad coding decisions (that may make me money)
If you are subbed to enough markets with enough message velocity it likely does not solve the backpressure issue - it may help but you are still de-serializing that data out of the WS and then re-serializing to the storage queue. If you have top tier infra, maybe, but you are likely going to bottleneck on enough messages. Just because your process only involves three lines of code, does not mean the libraries/functions you are calling have zero overhead.
If you are subbed to enough markets with enough message velocity it likely does not solve the backpressure issue - it may help but you are still de-serializing that data out of the WS and then re-serializing to the storage queue. If you have top tier infra, maybe, but you are likely going to bottleneck on enough messages. Just because your process only involves three lines of code, does not mean the libraries/functions you are calling have zero overhead.
Good luck - a lot of bots already on the same AZ - probably not the edge you think is (although it will likely help)
Good luck - a lot of bots already on the same AZ - probably not the edge you think is (although it will likely help)
https://tenor.com/view/keep-secret-secret-pas-un-mot-stand-by-me-no-word-gif-21201403
https://tenor.com/view/keep-secret-secret-pas-un-mot-stand-by-me-no-word-gif-21201403
Yeah - most speed issues are gonna be in your code - its always worth looking at optimizing those where you can without much effort - I agree most are not going to optimize speed to the extent I do
Yeah - most speed issues are gonna be in your code - its always worth looking at optimizing those where you can without much effort - I agree most are not going to optimize speed to the extent I do
I measure process and latency in microseconds - not saying I do multiple transactions per millisecond - but with my Premier status I guess I could get close if I wanted. You are very incorrect on the latency to the exchange piece.
I measure process and latency in microseconds - not saying I do multiple transactions per millisecond - but with my Premier status I guess I could get close if I wanted. You are very incorrect on the latency to the exchange piece.
I will try my best
I will try my best
You were the one who brought up separate boxes - I don't think anyone else was jumping behind you on that path. At the end of the day, inter-process communication requires either blocking message work or shared memory. If you are serializing, you are reserializing data over and over even when part hasn't changed - that causes overhead - 1ms of wasted overhead is too much. If it is shared memory then there is contention - something to be mindful of and optimize code to avoid. I think we just have different views on latency - I usually measure in microseconds - your strat seems to be more comfortable in milliseconds - what works for you may not work for me and what works for me may be overkill for you.
You were the one who brought up separate boxes - I don't think anyone else was jumping behind you on that path. At the end of the day, inter-process communication requires either blocking message work or shared memory. If you are serializing, you are reserializing data over and over even when part hasn't changed - that causes overhead - 1ms of wasted overhead is too much. If it is shared memory then there is contention - something to be mindful of and optimize code to avoid. I think we just have different views on latency - I usually measure in microseconds - your strat seems to be more comfortable in milliseconds - what works for you may not work for me and what works for me may be overkill for you.
yes
yes
trust the process 😁
trust the process 😁
packing and unpacking causes a good deal of overhead. Especially if you need to do it every time it is triggered. It may not seem like much but it all adds up
packing and unpacking causes a good deal of overhead. Especially if you need to do it every time it is triggered. It may not seem like much but it all adds up
Preassignment is gonna be an issue - you have to create some type of grab-and-go dynamic triggers for threads
Preassignment is gonna be an issue - you have to create some type of grab-and-go dynamic triggers for threads