@Override public TradingAgentExecutionHandle createExecution( TradingAgentBindingHandle bindingHandle, ExecutionType type) throws ExecutionCreationException { TradingAgentBinding binding = retrieveBinding(bindingHandle); ITradingAgentExecution execution; ITradingAgent tradingAgent = binding.getConfiguration().newTradingAgent(); if (type == ExecutionType.LIVE) { if (liveExecutionService == null) { throw new ExecutionCreationException("Live execution service not available"); } execution = new TradingAgentExecution(tradingAgent, liveExecutionService); } else { if (simulatedExecutionServiceFactory == null) { throw new ExecutionCreationException("Simulated execution service factory not available"); } execution = new SimulatedTradingAgentExecution( tradingAgent, simulatedExecutionServiceFactory.createSimulatedExecutionService()); } String executionOutputSeriesId = "output-" + execution.toString(); LinkedListSeries<Date, Double, ISeriesPoint<Date, Double>> outputSeries = new LinkedListSeries<Date, Double, ISeriesPoint<Date, Double>>( executionOutputSeriesId, false); execution.wire(binding.getInputSeries(), outputSeries); TradingAgentExecutionHandle handle = new TradingAgentExecutionHandle(execution.toString()); hierarchyContainer.putTradingAgentExecution(handle, execution, bindingHandle); return handle; }
@Override public void removeExecution(TradingAgentExecutionHandle executionHandle) { ITradingAgentExecution execution = hierarchyContainer.removeTradingAgentExecution(executionHandle); if (execution == null) { throw new IllegalArgumentException( "Handle: " + executionHandle + " does not correspont to an object"); } execution.kill(); }