void addTrade(Position position, Trade trade) { if (position.isEntry(trade)) { positions.Add(position); positionsInfo.add(position); Action <Bar> onNewBar = bar => positionsInfo.get(position).add(simulator.pnlForPosition(position, 0.0)); simulator.addNewBarListener(position.symbol, onNewBar); position.onPositionClosed += () => { simulator.removeNewBarListener(position.symbol, onNewBar); positionsInfo.get(position).add(position.pnl(true, simulator.runInNativeCurrency())); }; } trades.Add(trade); }