<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def moveOrder(self, orderNumber, rate, amount=None, postOnly=None, immediateOrCancel=None):
 """Cancels an order and places a new one of the same type in a single atomic transaction, meaning either both operations will succeed or both will fail. Required POST parameters are "orderNumber" and "rate"; you may optionally specify "amount" if you wish to change the amount of the new order. "postOnly" or "immediateOrCancel" may be specified for exchange orders, but will have no effect on margin orders. """

        return self._private('moveOrder', orderNumber=orderNumber, rate=rate,
                             amount=amount, postOnly=postOnly,
                             immediateOrCancel=immediateOrCancel)