1) I believe you can't create an asset that is exchangeable but not transferable.
2) If you're using one account to represent 2 users, it doesn't make sense to do an exchange with yourself. Even if that was possible (I don't know if the protocol allows that), the account would end up the same as it was before (minus fees).
If you have an Stellar account representing more than 1 user you should perform trades inside your own system/software/database, not touching the Stellar network for that. Or you can have one Stellar account for each user.