'use strict'
/**
* Converts a raw parameters Object received from an UI into a parameters
* Object which can be used by an MACrossover instance for execution.
*
* Part of the `meta` handler section.
*
* @memberOf module:MACrossover
* @param {object} data - raw parameters from an UI
* @returns {object} parameters - ready to be passed to a fresh instance
*/
const processParams = (data) => {
const params = { ...data }
if (params._symbol) {
params.symbol = params._symbol
delete params._symbol
}
if (!params._futures) {
delete params.lev
}
if (!params.cancelDelay) {
params.cancelDelay = 1500
}
if (!params.submitDelay) {
params.submitDelay = 5000
}
params.long = { type: params.longType.toLowerCase() }
params.short = { type: params.shortType.toLowerCase() }
if (params.long.type === 'ema') {
params.long.candlePrice = params.longEMAPrice.toLowerCase()
params.long.candleTimeFrame = params.longEMATF
params.long.args = [+params.longEMAPeriod]
} else {
params.long.candlePrice = params.longMAPrice.toLowerCase()
params.long.candleTimeFrame = params.longMATF
params.long.args = [+params.longMAPeriod]
}
if (params.short.type === 'ema') {
params.short.candlePrice = params.shortEMAPrice.toLowerCase()
params.short.candleTimeFrame = params.shortEMATF
params.short.args = [+params.shortEMAPeriod]
} else {
params.short.candlePrice = params.shortMAPrice.toLowerCase()
params.short.candleTimeFrame = params.shortMATF
params.short.args = [+params.shortMAPeriod]
}
if (params.action) {
if (params.action === 'Sell') {
params.amount = (+params.amount) * -1
}
delete params.action
}
return params
}
module.exports = processParams