Skip to content

Enterprise Features

FinanceLib v2.0 includes enterprise-grade features for institutional use.

Multi-Asset Universe

from financelib.enterprise import Asset, AssetClass, AssetUniverse

universe = AssetUniverse()
universe.add(Asset("THYAO.IS", AssetClass.EQUITY, "Turkish Airlines", "TRY", "BIST"))
universe.add(Asset("USDTRY", AssetClass.FX, "USD/TRY", "TRY"))
universe.add(Asset("BTC/USDT", AssetClass.CRYPTO, "Bitcoin", "USDT", "BINANCE"))
universe.add(Asset("TR10Y", AssetClass.BOND, "Turkey 10Y", "TRY"))
universe.add(Asset("GC=F", AssetClass.COMMODITY, "Gold", "USD", "COMEX"))

# Filter and group
equities = universe.filter_by_class(AssetClass.EQUITY)
try_assets = universe.filter_by_currency("TRY")
print(universe.summary())  # {'equity': 1, 'fx': 1, 'crypto': 1, ...}

Order Routing

from financelib.enterprise import OrderRouter, Exchange

router = OrderRouter()
router.add_exchange(Exchange("BIST", ["equity"], priority=1))
router.add_exchange(Exchange("BINANCE", ["crypto"], priority=1))

order = router.route("THYAO.IS", "buy", 100, price=175, asset_class="equity")
print(f"Routed to: {order.exchange}, Status: {order.status}")
print(f"FIX message: {order.fix_msg}")

Audit Trail

from financelib.enterprise import AuditTrail

audit = AuditTrail()
audit.log("ORDER_PLACED", "alice", {"symbol": "THYAO.IS", "side": "buy", "qty": 100})
audit.log("ORDER_FILLED", "alice", {"symbol": "THYAO.IS", "price": 175.0})

entries = audit.query(user_id="alice", action="ORDER_FILLED")
audit.export_to_file("audit_log.json")

Tax & Compliance Reporting

from financelib.enterprise import TaxReport, MiFIDReport
from financelib.enterprise.compliance import TradeForReport

# Capital gains tax (FIFO)
tax = TaxReport(year=2026)
tax.add_trade(TradeForReport(symbol="THYAO", side="buy", quantity=100, price=170))
tax.add_trade(TradeForReport(symbol="THYAO", side="sell", quantity=100, price=185))
report = tax.generate()
print(f"Net gain: {report['net_gain']} TRY")

# MiFID II transaction report
mifid = MiFIDReport(firm_id="FINLIB001", lei="TESTLEI123")
mifid.add_trade(TradeForReport(symbol="THYAO.IS", side="buy", quantity=100, price=175))
print(mifid.generate())

Role-Based Access Control

from financelib.enterprise import RBACManager, Permission

rbac = RBACManager()
rbac.assign_role("alice", "trader")
rbac.assign_role("bob", "viewer")
rbac.assign_role("admin_user", "admin")

assert rbac.check_permission("alice", Permission.TRADE) is True
assert rbac.check_permission("bob", Permission.TRADE) is False
assert rbac.check_permission("admin_user", Permission.MANAGE_USERS) is True

Plugin Architecture

from financelib.enterprise import PluginManager, BasePlugin

class MyDataPlugin(BasePlugin):
    @property
    def name(self): return "custom_data"
    @property
    def version(self): return "1.0"
    def initialize(self, config=None): print("Plugin started!")
    def shutdown(self): print("Plugin stopped!")

manager = PluginManager()
manager.register(MyDataPlugin)
manager.initialize_all()
print(manager.list_plugins())
manager.shutdown_all()