accumulate_distribute/util/has_ob_requirement.js

'use strict'

/**
 * Utility function that checks if a set of execution parameters require order
 * book data for price cap or offset calculation.
 *
 * @memberOf module:AccumulateDistribute
 * @param {object} args - instance execution parameters
 * @returns {boolean} hasOBRequirement
 */
const hasOBRequirement = (args = {}) => {
  const { relativeOffset = {}, relativeCap = {} } = args
  const offsetType = relativeOffset.type
  const capType = relativeCap.type

  return (
    (offsetType === 'bid' || offsetType === 'ask' || offsetType === 'mid') ||
    (capType === 'bid' || capType === 'ask' || capType === 'mid')
  )
}

module.exports = hasOBRequirement