Treasury.make_asset_accounts(['TGA']) Treasury.make_liability_accounts(['Treasury Securities']) # Primary Dealer Primary_Dealer.make_asset_accounts(['Deposits','Treasury Securities']) Primary_Dealer.make_liability_accounts(['Debts to Fed']) # Household Household.make_asset_accounts(['Deposits','Treasury Securities']) Household.make_liability_accounts(['Loans']) #Kod0 Banka, hanehalkına kredi verir. Bank.book(debit=[('Loans',100)],credit=[('Deposits',100)]) Household.book(debit=[('Deposits',100)],credit=[('Loans',100)]) display_svg(SVG(Bank.draw_balance_sheet("Bank", width=500))) display_svg(SVG(Household.draw_balance_sheet("Household", width=500))) #Kod1 """Fed,primary dealers ile repo işlemi yapar. Burada primary dealerslerin repo için teminat verdiği tahvilleri bilanço dışında gösterdiğini varsayıyoruz """ Fed.book(debit=[('Credits to Financial Institutions',200)],credit=[('Reserves',200)]) Bank.book(debit=[('Reserves',200)],credit=[('Deposits',200)])
depository_A = Ledger(residual_account_name="Equity") depository_B = Ledger(residual_account_name="Equity") broker_M = Ledger(residual_account_name="Equity") fi_J = Ledger(residual_account_name="Equity") fed.make_stock_accounts(['Securities Holdings','Securities belonging to Depository A','Securities belonging to Depository B','Reserves Depository A','Reserves Depository B','Assets']) depository_A.make_stock_accounts(['Securities Holdings','Securities belonging to Broker M','Reserves','Deposits by Broker M']) depository_B.make_stock_accounts(['Securities Holdings','Securities belonging to Financial Institution J','Reserves','Deposits by Financial Institution J']) broker_M.make_stock_accounts(['Securities Holdings','Securities belonging to Customers','Reserves with Depository A','Customer Deposits']) fi_J.make_stock_accounts(['Securities Holdings','Securities belonging to Customers','Reserves with Depository B','Customer Deposits']) """ --------------------------------------------------------------------------- Initialize balance sheets (all symmetric balance sheets with 0 equity, for simplicity) """ fed.book(debit=[('Securities Holdings',1000)],credit=[('Securities belonging to Depository A',500),('Securities belonging to Depository B',500)]) fed.book(debit=[('Assets',2000)],credit=[('Reserves Depository A',1000),('Reserves Depository B',1000)]) depository_A.book(debit=[('Securities Holdings',1000)],credit=[('Securities belonging to Broker M',1000)]) depository_A.book(debit=[('Reserves',1000)],credit=[('Deposits by Broker M',1000)]) depository_B.book(debit=[('Securities Holdings',1000)],credit=[('Securities belonging to Financial Institution J',1000)]) depository_B.book(debit=[('Reserves',1000)],credit=[('Deposits by Financial Institution J',1000)]) broker_M.book(debit=[('Securities Holdings',1000)],credit=[('Securities belonging to Customers',1000)]) broker_M.book(debit=[('Reserves with Depository A',1000)],credit=[('Customer Deposits',1000)]) fi_J.book(debit=[('Securities Holdings',1000)],credit=[('Securities belonging to Customers',1000)]) fi_J.book(debit=[('Reserves with Depository B',1000)],credit=[('Customer Deposits',1000)]) print('Initial balance sheets:') fed.print_balance_sheet() depository_A.print_balance_sheet() depository_B.print_balance_sheet() broker_M.print_balance_sheet()
# Bankaların varlık ve yükümlülük kalemleri tanımlanıyor. Xbankasi.make_asset_accounts(['Fixed Assets','Reserves']) Xbankasi.make_liability_accounts(['Goodlife Deposit','Equity']) Ybankasi.make_asset_accounts(['Reserves']) Ybankasi.make_liability_accounts(['Goodlife Deposit','Equity']) # Müşterilerin varlık ve yükümlülük kalemleri tanımlanıyor. MusteriA.make_asset_accounts(['Fixed Assets','Goodlife Deposit']) MusteriA.make_liability_accounts(['Equity']) #Başlangıç Xbankasi.book(debit=[('Reserves',100)],credit=[('Equity',100)]) Ybankasi.book(debit=[('Reserves',100)],credit=[('Equity',100)]) MusteriA.book(debit=[('Fixed Assets',100)],credit=[('Equity',100)]) #Başlangıç- Bilançolar display_svg(SVG(Xbankasi.draw_balance_sheet("JP Morgan", width=500))) display_svg(SVG(MusteriA.draw_balance_sheet("Goodlife", width=500))) display_svg(SVG(Ybankasi.draw_balance_sheet("Citibank", width=500))) #kod2 #Başlangıç Xbankasi.book(debit=[('Fixed Assets',100)],credit=[('Goodlife Deposit',100)]) MusteriA.book(debit=[('Goodlife Deposit',100)],credit=[('Fixed Assets',100)])
MusteriB.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili']) MusteriB.make_liability_accounts(['Kredi']) MusteriC.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili']) MusteriC.make_liability_accounts(['Kredi']) # Hazinenin varlık ve yükümlülük kalemleri tanımlanıyor. Hazine.make_asset_accounts(['Kamu Mevduatı','Dış Varlıklar']) # Bu satır eklendi. Hazine.make_liability_accounts(['Devlet Tahvili','Dış Borçlar']) # Bu satır eklendi. # Merkez Bankasının varlık ve yükümlülük kalemleri tanımlanıyor. Merkez_Bankasi.make_asset_accounts(['Dış Varlıklar','İç Varlıklar','Degerleme','APİ']) Merkez_Bankasi.make_liability_accounts(['Hazinenin Döviz Rezervleri','Emisyon','Kamu Mevduatı','Rezervler']) #Başlangıç MusteriA.book(debit=[('Mevduat',50)],credit=[('Kredi',50)]) Ybankasi.book(debit=[('Kredi',50)],credit=[('Müşteri A Mevduatı',50)]) Ybankasi.book(debit=[('Rezervler',50)],credit=[('Merkez Bankasına Borçlar',50)]) Xbankasi.book(debit=[('Rezervler',50)],credit=[('Merkez Bankasına Borçlar',50)]) Merkez_Bankasi.book(debit=[('APİ',100)],credit=[('Rezervler',100)]) #Başlangıç- Bilançolar display_svg(SVG(Xbankasi.draw_balance_sheet("Banka X", width=500))) display_svg(SVG(Ybankasi.draw_balance_sheet("Banka Y", width=500))) display_svg(SVG(MusteriA.draw_balance_sheet("Müşteri A", width=500))) display_svg(SVG(Merkez_Bankasi.draw_balance_sheet("Merkez Bankası", width=500))) """ Müşteri A, 30 TL vergi ödemesini Banka Y üzeriden yapıyor. Banka Y'den çıkan mevduat, Ziraat Bankasına (Banka X) gidiyor.
private_agent = Ledger(residual_account_name="Equity") central_bank = Ledger(residual_account_name="Equity") government = Ledger(residual_account_name="Equity") bank.make_stock_accounts([ 'Currency', 'Loans', 'Reserves', 'Bonds', 'Deposits', 'Government Deposits', 'Wholesale Deposits' ]) private_agent.make_stock_accounts(['Currency', 'Deposits', 'Loans', 'Bonds']) central_bank.make_stock_accounts( ['Assets', 'Reserves', 'Government Reserves', 'Currency']) government.make_stock_accounts(['Deposits', 'Bonds', 'Reserves']) """ --------------------------------------------------------------------------- Initialize agents' balance sheets """ private_agent.book(debit=[('Currency', 500)], credit=[('Equity', 500)]) bank.book(debit=[('Currency', 50)], credit=[('Equity', 50)]) central_bank.book(debit=[('Assets', 550)], credit=[('Currency', 550)]) private_agent.book(debit=[('Deposits', 500)], credit=[('Currency', 500)]) bank.book(debit=[('Currency', 500)], credit=[('Deposits', 500)]) bank.book(debit=[('Reserves', 550)], credit=[('Currency', 550)]) central_bank.book(debit=[('Currency', 550)], credit=[('Reserves', 550)]) """ --------------------------------------------------------------------------- Bank buys a government bond """ government.book(debit=[('Reserves', 400)], credit=[('Bonds', 400)]) bank.book(debit=[('Bonds', 400)], credit=[('Reserves', 400)]) central_bank.book(debit=[('Reserves', 400)], credit=[('Government Reserves', 400)])
MusteriC.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili']) MusteriC.make_liability_accounts(['Kredi']) # Hazinenin varlık ve yükümlülük kalemleri tanımlanıyor. Hazine.make_asset_accounts(['Kamu Mevduatı','Dış Varlıklar']) # Bu satır eklendi. Hazine.make_liability_accounts(['Devlet Tahvili','Dış Borçlar']) # Bu satır eklendi. # Merkez Bankasının varlık ve yükümlülük kalemleri tanımlanıyor. Merkez_Bankasi.make_asset_accounts(['Dış Varlıklar','İç Varlıklar','Degerleme','APİ']) Merkez_Bankasi.make_liability_accounts(['Bankaların Döviz Rezervleri','Hazinenin Döviz Rezervleri','Emisyon','Kamu Mevduatı','Rezervler']) #Başlangıç Xbankasi.book(debit=[('Dış Varlıklar',50)],credit=[('Sermaye',50)]) Xbankasi.book(debit=[('Devlet Tahvili',50)],credit=[('Sermaye',50)]) Merkez_Bankasi.book(debit=[('Dış Varlıklar',50)],credit=[('Sermaye',50)]) #Başlangıç- Bilançolar display_svg(SVG(Xbankasi.draw_balance_sheet("Banka X", width=500))) display_svg(SVG(Merkez_Bankasi.draw_balance_sheet("Merkez Bankası", width=500))) """ Kod1 https://paravefinans595106776.wordpress.com/2021/03/05/ bolum-ii-para-politikasi-islemlerinden-alacaklar-ve-borclar/
bank = Ledger(residual_account_name="equity") household = Ledger(residual_account_name="equity") bank_owner = Ledger(residual_account_name="equity") bank.make_stock_accounts(['loans','reserves','deposits']) household.make_stock_accounts(['money holdings','loan liabilities']) bank_owner.make_stock_accounts(['money holdings','participations']) bank.make_flow_accounts(['income','expenses']) household.make_flow_accounts(['income','expenses']) bank_owner.make_flow_accounts(['income','expenses']) """ --------------------------------------------------------------------------- Initialize balance sheets (outside money endowments) """ household.book(debit=[('money holdings',100)],credit=[('equity',100)],text='Initial endowment') bank.book(debit=[('reserves',100)],credit=([('deposits',100)]),text='Initial endowment') """ --------------------------------------------------------------------------- Granting of a loan """ bank.book(debit=[('loans',100)],credit=[('deposits',100)],text='Loan granting') household.book(debit=[('money holdings',100)],credit=[('loan liabilities',100)],text='Take out loan') """ --------------------------------------------------------------------------- Interest payment """ bank.book(debit=[('deposits',5)],credit=[('income',5)],text='Interest payment') household.book(debit=[('expenses',5)],credit=[('money holdings',5)],text='Interest payment') """ --------------------------------------------------------------------------- Principal repayment """ bank.book(debit=[('deposits',100)],credit=[('loans',100)],text='Principal repayment')
Fed.make_liability_accounts(['Reserves', 'Reverse Repo']) # HedgeFund HedgeFund.make_asset_accounts(['Deposits']) HedgeFund.make_liability_accounts(['Repo', 'Loans']) # Primary Dealer Primary_Dealer.make_asset_accounts(['Deposits', 'Reverse Repo']) Primary_Dealer.make_liability_accounts(['Repo']) # MMF MMF.make_asset_accounts(['Reverse Repo', 'Deposits']) MMF.make_liability_accounts(['Repo', 'Loans']) #Code0, Fed makes a repo with Primary Dealer. Fed.book(debit=[('Repo', 200)], credit=[('Reserves', 200)]) Bank.book(debit=[('Reserves', 200)], credit=[('Deposits', 200)]) Primary_Dealer.book(debit=[('Deposits', 200)], credit=[('Repo', 200)]) #Balance Sheet display_svg(SVG(Fed.draw_balance_sheet("Fed", width=500))) display_svg(SVG(Bank.draw_balance_sheet("Bank", width=500))) display_svg(SVG(Primary_Dealer.draw_balance_sheet("Primary Dealer", width=500))) #Code1, Fed makes a reverse repo with Primary Dealer Fed.book(debit=[('Reserves', 50)], credit=[('Reverse Repo', 50)]) Bank.book(debit=[('Deposits', 50)], credit=[('Reserves', 50)]) Primary_Dealer.book(debit=[('Reverse Repo', 50)], credit=[('Deposits', 50)]) #Balance Sheet
# Müşterilerin varlık ve yükümlülük kalemleri tanımlanıyor. MusteriA.make_asset_accounts( ['Nakit', 'Mevduat/TL', 'Mevduat/$', 'Banka Tahvili']) MusteriA.make_liability_accounts(['Kredi']) # Merkez Bankasının varlık ve yükümlülük kalemleri tanımlanıyor. Merkez_Bankasi.make_asset_accounts( ['Dış Varlıklar', 'İç Varlıklar', 'Degerleme', 'APİ']) Merkez_Bankasi.make_liability_accounts([ 'Hazinenin Döviz Rezervleri', 'Emisyon', 'Kamu Mevduatı/TL', 'Kamu Mevduatı/$', 'Rezervler' ]) #Başlangıç MusteriA.book(debit=[('Mevduat/TL', 100)], credit=[('Kredi', 100)]) Xbankasi.book(debit=[('Rezervler', 100)], credit=[('Kamu Mevduatı/$', 100)]) Xbankasi.book(debit=[('Kredi', 100)], credit=[('Botaş Mevduatı/TL', 100)]) Merkez_Bankasi.book(debit=[('Dış Varlıklar', 100)], credit=[('Rezervler', 100)]) Merkez_Bankasi.book(debit=[('İç Varlıklar', 100)], credit=[('Kamu Mevduatı/TL', 100)]) Merkez_Bankasi.book(debit=[('Dış Varlıklar', 100)], credit=[('Kamu Mevduatı/$', 100)]) #Başlangıç- Bilançolar display_svg(SVG(Xbankasi.draw_balance_sheet("Banka X", width=500))) display_svg(SVG(MusteriA.draw_balance_sheet("Botaş", width=500))) display_svg(SVG(Merkez_Bankasi.draw_balance_sheet("Merkez Bankası", width=500))) """
def test_banking(): bank = Ledger(residual_account_name="equity") household = Ledger(residual_account_name="equity") bank.make_stock_accounts(['reserves','claims','security holdings','deposits','wholesale refinancing']) household.make_stock_accounts(['money holdings','loan liabilities']) bank.make_flow_accounts(['interest income','interest expense']) household.make_flow_accounts(['income','expenses']) """ --------------------------------------------------------------------------- Initialize balance sheets (outside money endowments) """ household.book(debit=[('money holdings',100)],credit=[('equity',100)],text='Initial endowment') bank.book(debit=[('reserves',100)],credit=([('deposits',100)]),text='Initial endowment') print('Bank initial balance sheet') bank.print_balance_sheet() print('Household initial balance sheet') household.print_balance_sheet() """ --------------------------------------------------------------------------- Granting of a loan """ bank.book(debit=[('claims',10)],credit=[('deposits',10)],text='Loan') household.book(debit=[('money holdings',10)],credit=[('loan liabilities',10)],text='Loan') print('Bank balance sheet after granting a loan') bank.print_balance_sheet() print('Household balance sheet after granting a loan') household.print_balance_sheet() """ --------------------------------------------------------------------------- Interest payment """ bank.book(debit=[('deposits',1)],credit=[('interest income',1)],text='Interest payment') household.book(debit=[('expenses',1)],credit=[('money holdings',1)],text='Interest payment') print('Bank PnL after interest payment') bank.print_profit_and_loss() print('Household PnL after interest payment') household.print_profit_and_loss() bank.book_end_of_period() household.book_end_of_period() print('Bank balance sheet after interest payment') bank.print_balance_sheet() print('Household balance sheet after interest payment') household.print_balance_sheet() """ --------------------------------------------------------------------------- Principal repayment """ bank.book(debit=[('deposits',10)],credit=[('claims',10)],text='Principal repayment') household.book(debit=[('loan liabilities',10)],credit=[('money holdings',10)],text='Principal repayment') print('Bank balance sheet after principal repayment') bank.print_balance_sheet() print('Household balance sheet after principal repayment') household.print_balance_sheet() """ --------------------------------------------------------------------------- Dividend payment """ bank.book(debit=[('equity',1)],credit=[('deposits',1)],text='Dividend payment') household.book(debit=[('money holdings',1)],credit=[('income',1)],text='Dividend payment') print('Bank PnL after interest payment') bank.print_profit_and_loss() print('Household PnL after interest payment') household.print_profit_and_loss() bank.book_end_of_period() household.book_end_of_period() print('Bank balance sheet after dividend payment') bank.print_balance_sheet() print('Household balance sheet after dividend payment') household.print_balance_sheet()
# Müşterilerin varlık ve yükümlülük kalemleri tanımlanıyor. MusteriA.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili','Altın']) MusteriA.make_liability_accounts(['Kredi']) MusteriB.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili','Altın']) MusteriB.make_liability_accounts(['Kredi']) MusteriC.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili','Altın']) MusteriC.make_liability_accounts(['Kredi']) # Merkez Bankasının varlık ve yükümlülük kalemleri tanımlanıyor. Merkez_Bankasi.make_asset_accounts(['Devlet Tahvili','Bankalara Verilen Krediler']) Merkez_Bankasi.make_liability_accounts(['Nakit','Rezervler']) #Başlangıç Xbankasi.book(debit=[('Nakit',50), ('Altın',20)],credit=[('Sermaye',70)]) Ybankasi.book(debit=[('Nakit',50), ('Altın',20)],credit=[('Sermaye',70)]) MusteriA.book(debit=[('Nakit',100),('Altın',0)],credit=[('Sermaye',100)]) Merkez_Bankasi.book(debit=[('Devlet Tahvili',200)],credit=[('Nakit',200)]) #Başlangıç- Bilançolar display_svg(SVG(Xbankasi.draw_balance_sheet("Banka X", width=500))) display_svg(SVG(Ybankasi.draw_balance_sheet("Banka Y", width=500))) display_svg(SVG(MusteriA.draw_balance_sheet("Müşteri A", width=500))) display_svg(SVG(Merkez_Bankasi.draw_balance_sheet("Merkez Bankası", width=500))) #Başlangıç- Para Arzı print_money_stocks()
def test_tdd(): accounts = Ledger('equity') accounts.make_stock_accounts(['cash', 'claims', 'inventory']) accounts.make_flow_accounts(['expenditure', 'revenue', 'cost of goods sold', 'depreciation']) accounts.book( debit=[('cash', 50), ('claims', 50)], credit=[('equity', 100)], text="Start with owners' equity, partially paid in") assert accounts._check_debit_eq_credit() assert accounts.get_total_assets() == 100 assert accounts['cash'].get_balance() == (AccountSide.DEBIT, 50) assert accounts['claims'].get_balance() == (AccountSide.DEBIT, 50) assert accounts['equity'].get_balance() == (AccountSide.CREDIT, 100) #print('Initial balance') #accounts.print_balance_sheet() #print('Some purchases and operating expenses') accounts.book(debit=[('expenditure', 20)], credit=[('cash', 20)],text="General expenses") assert accounts.get_total_assets() == 80, accounts.get_total_assets() accounts.book(debit=[('inventory',20)],credit=[('cash',20)],text="Purchase of equipment") accounts.book(debit=[('depreciation',2)],credit=[('inventory',2)],text="Depreciation") #accounts.print_profit_and_loss() #print('Balance sheet after first period') accounts.book_end_of_period() #accounts.print_balance_sheet() assert accounts['equity'].get_balance() == (AccountSide.CREDIT, 78) assert accounts['cash'].get_balance() == (AccountSide.DEBIT, 10),accounts['cash'].get_balance() #print('Profitable sale') accounts.book(debit=[('cash',40)],credit=[('revenue',40)],text="Sale of goods") accounts.book(debit=[('cost of goods sold',10)],credit=[('inventory',10)],text="Sale of goods") #accounts.print_profit_and_loss() assert accounts['inventory'].get_balance() == (AccountSide.DEBIT, 8) #print('Balance sheet after second period') accounts.book_end_of_period() #accounts.print_balance_sheet() assert accounts['equity'].get_balance() == (AccountSide.CREDIT, 108)
MusteriC.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili']) MusteriC.make_liability_accounts(['Kredi']) # Merkez Bankasının varlık ve yükümlülük kalemleri tanımlanıyor. Merkez_Bankasi.make_asset_accounts(['Devlet Tahvili','Bankalara Verilen Krediler']) Merkez_Bankasi.make_liability_accounts(['Nakit','Rezervler','Kamu Mevduatı']) # Kamu Mevduatı eklendi. # Hazinenin varlık ve yükümlülük kalemleri tanımlanıyor. Hazine.make_asset_accounts(['Kamu Mevduatı']) # Bu satır eklendi. Hazine.make_liability_accounts(['Devlet Tahvili']) # Bu satır eklendi. #Banka Y, M.B'dan Borç Alır. Ybankasi.book(debit=[('Rezervler',100)],credit=[('Merkez Bankasına Borçlar',100)]) Merkez_Bankasi.book(debit=[('Bankalara Verilen Krediler',100)],credit=[('Rezervler',100)]) #Bilançolar display_svg(SVG(Ybankasi.draw_balance_sheet("Banka Y", width=500))) display_svg(SVG(Merkez_Bankasi.draw_balance_sheet("Merkez Bankası", width=500))) #Para Arzı print_money_stocks() #kod2 Banka Y, Hazineden "Devlet Tahvili" alır. #Banka Y, Hazineden "Devlet Tahvili" alır. Ybankasi.book(debit=[('Devlet Tahvili',100)],credit=[('Rezervler',100)]) Hazine.book(debit=[('Kamu Mevduatı',100)],credit=[('Devlet Tahvili',100)]) Merkez_Bankasi.book(debit=[('Rezervler',100)],credit=[('Kamu Mevduatı',100)])
MusteriB.make_liability_accounts(['Kredi']) MusteriC.make_asset_accounts(['Nakit','Mevduat','Banka Tahvili']) MusteriC.make_liability_accounts(['Kredi']) # Merkez Bankasının varlık ve yükümlülük kalemleri tanımlanıyor. Merkez_Bankasi.make_asset_accounts(['Devlet Tahvili','Bankalara Verilen Krediler']) Merkez_Bankasi.make_liability_accounts(['Nakit','Rezervler','Kamu Mevduatı']) # Kamu Mevduatı eklendi. # Hazinenin varlık ve yükümlülük kalemleri tanımlanıyor. Hazine.make_asset_accounts(['Kamu Mevduatı']) #Bu satırı ekledik. Hazine.make_liability_accounts(['Devlet Tahvili']) #Bu satırı ekledik. #Hazine’nin TCMB’den Borçlanması İşlemi Hazine.book(debit=[('Kamu Mevduatı',100)],credit=[('Devlet Tahvili',100)]) #Bu satırı ekledik. Merkez_Bankasi.book(debit=[('Devlet Tahvili',100)],credit=[('Kamu Mevduatı',100)]) #Bu satırı ekledik. #Başlangıç- Bilançolar display_svg(SVG(Hazine.draw_balance_sheet("Hazine", width=500))) display_svg(SVG(Merkez_Bankasi.draw_balance_sheet("Merkez Bankası", width=500))) #Başlangıç- Para Arzı print_money_stocks() #kod2 Hazine Müşteri A'ya ödeme yapar #Hazine Müşteri A'ya ödeme yapar. Hazine.book(debit=[('Sermaye',100)],credit=[('Kamu Mevduatı',100)]) Merkez_Bankasi.book(debit=[('Kamu Mevduatı',100)],credit=[('Rezervler',100)]) Xbankasi.book(debit=[('Rezervler',100)],credit=[('Müşteri A Mevduatı',100)])