Trading screen and dynamic commands - improvement


I started playing a few days ago and I would like to ask about 6. TRADING screen and CPX commands in general.
In 6. TRADING screen there are several windows configured with RAT commodity as default. I think that it’s completely impractical if I have to switch those 3 windows to see details about another commodity.

I can see that most/all windows/commands are static but I would like to propose a set of commodity exchange related commands change or a set of new commands not to break existing ones as those might still be valid (if someone wants to see just one commodity details).

So my idea is that if now we have let’s say CXPC RAT.NC1 command we could have also CXPC X.NC1 (where x means that commodity ticket will be changing). Such window would register itself as a listener/observer to commodity selection event. Then whether only on CX.NC1 or on any commodity selection there would be an APEX wide event raised and each window which has registered (including buffers) would switch to showing that particular commodity.

This would make 6. TRADING screen more practical to use as on each commodity click in CX.NC1 each three of the commodity details windows would be updated with that commodity details.

So for example when I open 6. TRADING screen and click on DW commodity icon or DW commodity row or commodity select button (could be added next to info?) I would see DW Chart, Place Order and Order Book without having to manualy replace those windows.

This idea of dynamic commands could be applied to various other windows like CXL row click could update CX.NC1 to CX.IC1 or whichever exchange has been clicked.

I am sure there would be more examples in other parts of the game as well.

  1. RAT.NC1 selected as default (or last selection)
  2. Click on Drinking Water commodity in Exchange
    (I cannot add another picture but all three CXPC RAT.NC1, CXPO RAT.NC1 and CXOB RAT.NC1 changed to DW)

The functionality you’re talking about probably looks like this.

Where all of the modules are “linked” together and changing one of them changes all of the linked modules.

While possible, this is quite complex behavior especially to implement on how APEX uses it’s module system compared to this software (Cryptowatch).

Personally, I don’t interact with the markets at all like how you describe. I have way, way, way too many items to manually try and keep some sort of base sheet for it. I just have CXOS and CX NC1 permanently pinned on my screen. I can access everything that is needed in one or two clicks from those two modules. I would actually still use it like this even if APEX had the above functionality.

The video you posted sums it up nicely. I know this feature might not be needed by everyone but if someone does a lot of trading and/or tried to leverage price spread between different Exchanges this might be usefull.

I actually had an initial idea of how to implement this (of course without any knowledge of how the game is actually implemented but just on my programming experience so this might be flawed)

So for example there could be a command CXPC X.NC1 and the only thing that it would do is to register as a listener to Commodity clicked (or whatever event it would end up being) and then as window body it would display the real static command i.e. CXPC RAT.NC1 (if RAT has been clicked) and then on another event it would just change the command of underlying window. So this new command would need only to register for events and display command constructed from value received in the event.

Some pseudocode:

trackedCommodity; // initial tracked could be the last one used (persisted) or some default like RAT 

init() {
    commodityEventObservable.subscribe( ticker => {
        trackedCommodity = ticker;

render() {
 render("CXPC " + trackedCommodity + ".NC1"); // NC1 could also be tracked by another event type

I know this might be totaly not achievable depending on code architecture but maybe it is especially that in CXPC command ticker seems to be a param anyway.

I think something similar to this would be a huge boon. I personally don’t buy anything on the CX without opening both a CXOB HSS.AI1, clicking the CXPO, and usually readjusting both windows. Simply clicking the bid/ask “set” buttons is nice, but not really helpful because you don’t know how much of each product is available at the lowest ask price… and flying away from the CX with only half my bfabs because I didn’t notice half my order turned into a buy order is not great.

I’ve taken to setting arbitrarily high prices in my price limit, and letting the quantity sort itself out, but that’s obviously not a great habit. :smiley:

I’d love to be able to provide something like CXOB [KOM ALE PWO EXO].AI1 and have it open 4 windows. As players are getting to higher and higher base counts, the number of CX interactions increases. I just checked my FIO, and there’s 46 commodities I regularly purchase, probably half of them from the CX. Any reduction in the friction / repetitious clicking is a huge boon!