In order to simplify things and make this method (CreateInternalInstrumentTransferOrders) less error prone we have removed the two properties AcquisitionPrice and AcquisitionPriceAccountCurrency. Instead we calculate these from their corresponding value-properties: AcquisitionValue and AcquisitionValueAccountCurrency.

But don’t worry, we will not make any breaking changes for you but instead deprecate these properties in the API method in the near future. Be aware though that these properties will not correspond to any functionality.

Since these values are strongly connected it seems unnecessary to set both of these and instead we calculate the two values according to these expressions:

AcquisitionPrice = AcquisitionValue / Units

and

AcquisitionPriceAccountCurrency = AcquisitionValueAccountCurrency / Units

We also let the user decide if they want the system to use a default behavior to set the Acquisition values or not. If the properties AcquisitionValue and AcquisitionValueAccountCurrency are submitted with any values apart from null we will use the formulas above to set their corresponding Acquisition prices on the order. However, if these values are submitted as null, the system will default these values on the order. The Acquisition values set on the order will be as follows:

The acquisition values on the transactions placed on the account where the asset is transferred from, will always be calculated from the acquisition price taken from its origin position.

The transactions on the account where the assets are transferred to will depend on whether the order will result in a technical trade or not.

If the order will result in a technical trade the acquisition values will be calculated from the current price of the asset that is transferred. An order that will not result in a technical trade will calculate its acquisition values from the current position and will therefore obtain the same values as for the transactions placed on the account where the asset was transferred from.