I just went to accept a trade offer which was set at a certain % from market price. I noticed that between starting the process and confirming my offer the market price change - but my trade still appeared to go through at the original market price.
Isn’t this a possible vector for gaming the system, by starting lots of trades but only confirming if the market moves in your direction, so you effectively get a discount on market price as long as the other person doesn’t realize and cancel?
With the current spreads this probably isn’t a major issue, but if spreads tightened more I think it could possibly become a problem. Wouldn’t it make more sense to alert the person accepting the trade offer that the market price has moved and then prompt them to accept the new price?
The % based market price will be checked at the other trader as well. There is a min. tolerance allowed as both market price feeds are not synchronized, so there might be a small difference. In cases of high volatility the difference might exceed the tolerance and then the other peer will reject the “take-offer” request. The price feed is requested every 90 sec. So usually that should be ok. I got only one case reported yet with a rejected take offer request. The only problem in such a case is that the take-offer fee is already paid, but that can happen in very rare cases as well when the offerer goes offline in that very narrow time window.
The taker can try again after 1 minute and chances are then high that their market price is more in sync.
Oh I see, thanks for the info.
From using online forex exchanges this can be an annoyance, especially during times of high volatility. But it sounds like the logic to release the take offer fee isn’t right, that should only happen after the other peer accepts. This would fix both errors as long as you included a timeout as well to detect them going offline.
If I remember right that check is done before the take offer fee is paid. And again just before the trade is executed. Usually thats a timewindow of a few 100 ms. With slow intenet though it might take 1-2 seconds but I think not more (connection is already established and the exchanged data packets are small).
There had been in the past a few such cases but since I fixed it and moved the check before the fee payment I did not get reported a case where a user lost his take offer fee.