No es necesario fijar una moneda. Cada vez que se realice una nueva transacción se modifican mínimamente los valores de intercambio de cada producto, a partes iguales. No es del todo correcto para una única transacción, pero cuando añades transacciones de todas los demás mercancías, se va corrigiendo. Lo he probado.
Veamos. Si cambias 180 carbones x 400 troncos, le llamo valores de intercambio a los números 180 y 400. Dicho con álgebra, cambio a.A x b.B. O más correctamente a*A = b*B = c*C = ...
Imaginemos que el precio actual es a=180, b=400, como en el ejemplo. Y alguien realiza una nueva venta, en la que se cambian 200 A x 400 B. Esto quiere decir que, o bien sube el precio de B, o bien baja el de A, o ambas cosas. Para que las cosas no se descuadren mucho, y que las variaciones estén equilibradas, propongo repartir la variación entre ambos productos. De tal modo 'a' subirá una cantidad 'x' y 'b' bajará la misma cantidad. En los precios actuales a/b = 180/400, el nuevo precio tendría una proporción de a/b = 200/400. A la variación le llamo D = (a/b)nuevo - (a/b)actual. Podemos trabajar con D, o con una fracción de D, por ejemplo D/1000, para que el cambio sea más paulatino, de modo que la aparición de gangas no estropee la media.
En este caso D = 20/400. O bien D_lenta = 20/400000.
La cantidad 'x' se calcula con el cociente:
x = ( b*D / (1 + a/b + D) ) = 13,333
Y los nuevos valores de intercambio se calculan:
a = a + x = 180 +13,333 = 193,333
b = b - x = 400 - 13,333 = 386,666
Si dividimos los nuevos valores de 'a' y 'b', nos sale el cociente 0,5, lo mismo que 200/400. Pero si hacemos los cálculos con D_lenta, los valores saldrán algo así como (a = 180,1) y (b = 399,9), es decir, varían en la dirección que marca la nueva transacción, pero muy lentamente. Si se siguen repitiendo los mismos precios unas 1000 veces, se alcanzarán los valores indicados por el primer cálculo.
En el caso expuesto x es negativa, 'a' sube de valor (lo que quiere decir que la mercancía A es menos valiosa), 'b' baja. Si bien es posible que, en realidad, sólo se haya modificado el valor de una de las mercancías, las diferencias se corregirán cuando se realicen los mismos cálculos para transacciones con otras mercancías. He hecho varias pruebas y el resultado es que los valores convergen a los nuevos precios de mercado.
Si resulta que, en realidad, ha variado el precio de A, pero no ha variado el de B, cuando existan transacciones de A con C, subirá el precio de C y bajará el de A, ya que el precio de A no estaba lo suficientemente bajo, y cuando existan transacciones de B con C bajará el precio de C ya que B estaba incorrectamente alto. Al final tanto el precio de B como el de C se quedarán como estaban y sólo habrá bajado el precio de A, que era lo correcto. Cuanto mayor sea el número de transacciones y más variadas (cosa que no parece complicada en este juego), más exacto será el cálculo de los precios.