class Government(Agent):
self.breed = "Government"
def step(self) -> None:
'''
ABMPC Government Functions (each and every iteration):
1 Distrubute pure expenditure to producers.
2 Pay interest, if any, on bills held in the economy. (t-1)
3 Calculate the amount of Treasury bills for offer. (t)
'''
class Producer(Agent):
self.breed = "Producer"
def step(self) -> None:
'''
ABMPC Producer Functions (each and every iteration):
1 Account for government demands.
2 Account for household demands.
3 Communicate to employed household agents their wage this iteration.
'''
class Household(Agent):
self.breed = "Household"
def step(self) -> None:
'''
ABMPC Household Functions (each and every iteration):
1 Calculate disposable income, the wage & interest received minus tax.
2 Consumption Decision: Decide how much to save out of income.
3 Portfolio Decision: Calculate wealth and allocate between money and bills.
Two Traditions:
Quantity theory of money: Link money balances to the flow of income.
Liquidity preference: Make money balances some proportion of wealth.
'''
# 2
'''
G&L Equations, p104:
α1 : Propensity to consume out of regular income.
α2 : Propensity to consume out of past wealth.
λ : Reaction parameters in the portfolio choice of households.
λ0 : Proportion of wealth held in bills.
(1 - λ0) : Proportion of wealth held in central bank deposits (high-powered money).
(4.4) V = V_-1 + (YD - C): New wealth is past wealth plus disposable income minus consumption.
(4.5) C = α1 * YD + α2 * V_-1: Propensity to consume out of disposable income + propensity to consume out of past wealth.
(4.6) Hh = V - Bh
(4.7) Bh/V = λ0 + λ1 * r - λ2 * (YD/V)
'''
# 3
'''
Proportion of money balances modulated by two elements:
1: The rate of return r on bills.
2: The level of disposable income (YD) relative to wealth.
G&L p104: The share of wealth which agents wish to hold in the form of money deposits
is negatively related to the interest rate and positively related to disposable income.
Reverse: The share of wealth which agents wish to hold in the form of bills
is positively related to the interest rate and negatively related to disposable income.
(Translation: 1. The share of wealth an agent will wish to hold as bills will increase with a higher
interest rate. Therefore, a lower proportion of wealth will be held as deposits. If the interest rate decreases,
an agent will lower the proportion of their wealth held as bills, which will increase, as a residual, the
proportion held as deposits.)
(Translation: 2. The lower the level of disposable income to wealth, the higher the proportion
of their wealth an agent will wish to hold as bills. The higher the level of disposable income to
wealth, the lower the proportion of their wealth an agent will wish to hold as bills, and as a
residual, the higher will be the proportion held as deposits.)
'''
class CentralBank(Agent):
self.breed = "CentralBank"
def step(self) -> None:
'''
ABMPC CentralBank Functions (each and every iteration):
1 Set the rate of interest on bills.
2 Distribute profit on Government bills back to the Government. (t-1)
3 Purchase government bills surplus to household requirements. (t)
'''