Agent-based artificial markets