What IMHO is broken right now is that you're able to cause a tangible effect on people's balances without the need of any significant input and thus with only moderate risk. The moment the manipulator(s) are forced to do a significant amount of actual trading to cause any effect, I'd consider that issue as "fixed", as far as the platform is concerned.
I foresee two solutions, one may add to each other:
1. The boundaries will be set using weighted average USD/BTC rate multiplied by respective boundaries for that futures contract at CME exchange. This should provide a fair trading range for all.
Probably we'll need indeed a mix of measures, and what you propose sounds like a good approach. When the trading boundaries are tied more closely to the situation on the underlying market, this protects the opened positions against manipulations without actual market activity.
But we should also consider how the "current rate" is established in ICBIT.
It is an important fact of the platform's construction, that this "current rate" does have a
very tangible monetary effect once a day, at a time known to everyone in advance. Since the platform provides leverage, a comparatively small move of that "current rate" at the right time can yield either a huge pile of additional trading power, or in the other case, can disable a market contributor completely. Since when your available margin goes negative, you can't contribute actively in the market anymore. You're forced then either to close some position with loss, or to inject additional liquidity, or just to sit there and watch the market pass by. This bears the danger of producing an self-reinforcing avalanche effect of distortion.
While I am in no way criticising the basic behaviour (I think it is adequate and a defining feature of this platform), this creates an especially strong incentive for trying to game the engine. And this is what we see here.
Some thoughts:
- can you please revisit the way the "current rate" is calculated when there is no offer at all at one side? Several days in row we had now the situation that someone has bought away the whole ask side. I get the impression that in this case the engine picks the average of the highest bid and the upper bound of the trading range to establish the "current rate". This yields a value way too high.
- also it seems that this "current rate" is sensitive to the order of execution, especially it sticks to the last deal done. If someone buys away all (or a large number) of offers, the "current rate" thus sticks to the last transaction, which is always the transaction most off-centre. This does in no way conceptually reflect the "current rate", which should be close to the centre of activity. Especially when someone buys away the bids/asks set by some market making bot, this can cause a gross distortion
- would it be helpful not to base the mark-to-market on the "current rate"? Why not doing a mark-to-market, using the weighted average of the last trading session?
- another proposal: why not picking a random unpredictable time point for this mark-to-market operation? That would mean just to use trading sessions with a variable, randomly picked duration.
I think there are good manipulations and objectionable manipulations. I tend to see a manipulation as
acceptable, when it is
combined with actual market movement (even just in the futures market) and when it is
bears a substantial risk. On the other hand, a manipulation just
exploiting some technicalities of the engine without real market activity is objectionable and should be prevented by technical means.