In response to this thread:
http://www.europa-universalis.com/forum/showthread.php?s=&threadid=116058&perpage=25&pagenumber=8
Without reading the posts on the last to pages of this thread (I cannot spend my day reading the whole of it (I'll continue later), I'll add how I'd have designed the world market. It basically covers how the world market should behave, and it does not solve the issue of the massive deflation what would occur without new money entering the system. I will return later with more thoughts on this issue, but at least my world market does not print new money out of thin air by selling excess supply to a black hole.
Worthy of notice is also that this concept seems to be easy, but the implementation (especially of the economic AI), is extremely tricky.
A quick thing before I start; I'd have done a system where goods were produced every month, and not every day. This would greatly have cut down on the execution times needed, because I guess this constant economic updating is the reason why Victoria lags a lot of my computer.
I would still have this simplified world market, with perfect information between demand and supply. Every country would be able to specify buying and selling orders just like now. However, no goods would actually be stored in the world market like now. Neither would prices be determined by anything else than the buyers of sellers in the market. Each order would have a price tag on it, and the amount of goods availble for sale.
Now the real fun comes in. All orders would be arranged into two huge lists sorted by price; one list for demand, and one list for supply. At the end of every month these two lists would be compared to each other. For every good the demand orders would be checked from highest price to lowest price. If any two or more orders had the equal price, the prestige of the country buying would determine the priority of the order. After this task was done all selling orders would be sorted by price from lowest to highest, and prestige could be used as a final sorting parameter as well.
Once all lists have been sorted, both lists would be gone through a first time simultaneously, and the supply and demand at each price would be compared. If there was an excess in demand, the orders would be dealt with the most prestigous countries buying first until supply was depleted. During this "opening call" (a term from the stock market), excess equal orders could easily be filtered away. Of course this part of the WM needs to have it so that prices only can be set a fixed levels (every integer from 1 to 100 for example), so that orders can be somewhat equal.
After the opening call the order list for demand would be iterated from as it was sorted, that is from highest to lowest price. Countries with higher prestige would go first here within each price group. For each buying order the supply list would be iterated through for selling orders have a price of less than the buying order, but still from lowest to the highest possible price. If the quantity of the selling orders on one price level were not enough, the orders of the next price level are taken into consideration.
All of this might sound confusing, but consider the example scenario I have made beneith:
Fictional market for wheat, with very few orders and without the prestige factor (= simplification):
Initial orders:
Buying orders (quantity, price):
B1: 100, 15
B2: 150, 13
B3: 100, 12
B4: 200, 10
Buying price: 15
Selling orders (quantity, price):
S1: 100, 16
S2: 200, 14
S3: 200, 12
S4: 50, 11
Selling price: 11
Orders after opening call:
Buying orders (quantity, price):
B1: 100, 15
B2: 150, 13
B3: 200, 10
Selling orders (quantity, price):
S1: 100, 16
S2: 200, 14
S3: 100, 12
S4: 50, 11
Left-over orders after the second order handling phase:
Buying orders (quantity, price):
B1: 100, 13
B3: 200, 10
Selling orders (quantity, price):
S1: 100, 16
S2: 200, 14
As can be seen from the highly simplified example above, the only remaining orders are the ones of the countries that did not offer particulary attracting orders in their respective categories. In order to get the most goods sold at the next month's world market, prices would have to converge to a very few levels (except with a few distinguished orders that are needed to be instantaneous).
How does my world market system solve the excess supply in some areas? Well, basically if there is too much supply, AIs and players will have to decrease prices to compete. When prices drop less profit from the excess products will be received, and might even be turned into losses. This will in turn force the most inefficient producers to shut down, because they will be making the most losses. The end result is that supply will decrease and prices stop falling, to eventually rise again if demand grows.
http://www.europa-universalis.com/forum/showthread.php?s=&threadid=116058&perpage=25&pagenumber=8
Without reading the posts on the last to pages of this thread (I cannot spend my day reading the whole of it (I'll continue later), I'll add how I'd have designed the world market. It basically covers how the world market should behave, and it does not solve the issue of the massive deflation what would occur without new money entering the system. I will return later with more thoughts on this issue, but at least my world market does not print new money out of thin air by selling excess supply to a black hole.
Worthy of notice is also that this concept seems to be easy, but the implementation (especially of the economic AI), is extremely tricky.
A quick thing before I start; I'd have done a system where goods were produced every month, and not every day. This would greatly have cut down on the execution times needed, because I guess this constant economic updating is the reason why Victoria lags a lot of my computer.
I would still have this simplified world market, with perfect information between demand and supply. Every country would be able to specify buying and selling orders just like now. However, no goods would actually be stored in the world market like now. Neither would prices be determined by anything else than the buyers of sellers in the market. Each order would have a price tag on it, and the amount of goods availble for sale.
Now the real fun comes in. All orders would be arranged into two huge lists sorted by price; one list for demand, and one list for supply. At the end of every month these two lists would be compared to each other. For every good the demand orders would be checked from highest price to lowest price. If any two or more orders had the equal price, the prestige of the country buying would determine the priority of the order. After this task was done all selling orders would be sorted by price from lowest to highest, and prestige could be used as a final sorting parameter as well.
Once all lists have been sorted, both lists would be gone through a first time simultaneously, and the supply and demand at each price would be compared. If there was an excess in demand, the orders would be dealt with the most prestigous countries buying first until supply was depleted. During this "opening call" (a term from the stock market), excess equal orders could easily be filtered away. Of course this part of the WM needs to have it so that prices only can be set a fixed levels (every integer from 1 to 100 for example), so that orders can be somewhat equal.
After the opening call the order list for demand would be iterated from as it was sorted, that is from highest to lowest price. Countries with higher prestige would go first here within each price group. For each buying order the supply list would be iterated through for selling orders have a price of less than the buying order, but still from lowest to the highest possible price. If the quantity of the selling orders on one price level were not enough, the orders of the next price level are taken into consideration.
All of this might sound confusing, but consider the example scenario I have made beneith:
Fictional market for wheat, with very few orders and without the prestige factor (= simplification):
Initial orders:
Buying orders (quantity, price):
B1: 100, 15
B2: 150, 13
B3: 100, 12
B4: 200, 10
Buying price: 15
Selling orders (quantity, price):
S1: 100, 16
S2: 200, 14
S3: 200, 12
S4: 50, 11
Selling price: 11
Orders after opening call:
Buying orders (quantity, price):
B1: 100, 15
B2: 150, 13
B3: 200, 10
Selling orders (quantity, price):
S1: 100, 16
S2: 200, 14
S3: 100, 12
S4: 50, 11
Left-over orders after the second order handling phase:
Buying orders (quantity, price):
B1: 100, 13
B3: 200, 10
Selling orders (quantity, price):
S1: 100, 16
S2: 200, 14
As can be seen from the highly simplified example above, the only remaining orders are the ones of the countries that did not offer particulary attracting orders in their respective categories. In order to get the most goods sold at the next month's world market, prices would have to converge to a very few levels (except with a few distinguished orders that are needed to be instantaneous).
How does my world market system solve the excess supply in some areas? Well, basically if there is too much supply, AIs and players will have to decrease prices to compete. When prices drop less profit from the excess products will be received, and might even be turned into losses. This will in turn force the most inefficient producers to shut down, because they will be making the most losses. The end result is that supply will decrease and prices stop falling, to eventually rise again if demand grows.