


agent = NoiseAgent(
symbol=symbol,
init_price=100000,
interval_seconds=1,
start_time=start_time,
end_time=end_time,
)
env = Env(exchange, description="Noise agent simulation")
env.register_agent(agent)
env.push_events(create_exchange_events(config))
for observation in env.env():
action = observation.agent.get_action(observation)
env.step(action)
class TransState(State):
def __init__(self) -> None:
super().__init__()
self.transactons: List[Transaction] = []
def on_trading(self, trade_info: TradeInfo):
super().on_trading(trade_info)
self.transactons.extend(trade_info.transactions)
def on_open(self, cancel_transactions: List[Transaction], lob_snapshot: LobSnapshot, match_trans: Optional[Transaction] = None):
super().on_open(cancel_transactions=cancel_transactions, lob_snapshot=lob_snapshot, match_trans=match_trans)
self.transactons.extend(cancel_transactions)
if match_trans:
self.transactons.append(match_trans)
def on_close(self, close_orderbook: Orderbook, lob_snapshot: LobSnapshot, match_trans: Optional[Transaction] = None):
super().on_close(match_trans=match_trans, close_orderbook=close_orderbook, lob_snapshot=lob_snapshot)
if match_trans:
self.transactons.append(match_trans)
-
trans_state
包含所有交易。 -
trade_info_state
包含所有交易信息
🕹️ 示例:
python market_simulation/examples/run_simulation.py
https://github.com/microsoft/MarS/
MarS: a Financial Market Simulation Engine Powered by Generative Foundation Model
https://arxiv.org/abs/2409.07486
(文:PaperAgent)